Introdução ao XSL

Informática

31/10/2008

XSL ou EXtensible Stylesheet Language (XSL = XML Style Sheets)

Surgiu devido a necessidade de se criar uma folha de estilos para liguagem XML. Ele descreve a forma como um documento xml deve ser exibido.


Consiste de 3 partes:

  • XSLT - linguagem para transformar documentos XML
  • XPath - linguagem para navegar em documentos XML
  • XSL-FO - linguagem de formatação de documentos XML

Irei abordar aqui um pouco sobre XSLT
   
XSLT é usado para transformar um documento XML em outro documento XML, ou  outro tipo de documento, que será reconhecido por um navegador, como o HTML e XHTML.
Normalmente XSLT transforma cada elemento XML em um elemento (X) HTML.

Com a XSLT que você pode adicionar / remover elementos e atributos.
Você também pode reorganizar e ordenar elementos, realizar testes e tomar decisões sobre quais elementos irá esconder e mostrar.

XSLT usa o XPath para definir os padrões combinantes para as transformações.

No processo de transformação o XSLT usa XPath para definir partes do documento de origem que combinam com um ou mais moldes. Quando uma combinação é encontrada, XSLT transformará a  parte combinante do documento de origem no documento de resultado. As partes do documento de  origem que não combinam com um molde permanecerão sem modificações no documento de resultado.

Declaração correta da folha de estilos.

O elemento raiz que declara o documento a ser uma folha de estilos XSL é <xsl:stylesheet> ou <xsl:transform>.

A maneira correta de declarar uma folha de estilos XSL de acordo com a Recomendação W3C XSLT é:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

ou

<xsl:transform version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

OBS:O xmlns:xsl="http://www.w3.org/1999/XSL/Transform" identifica a Recomendação Namespace
oficial W3C XSL. Se você usa este namespace, você também deve incluir o atributo version="1.0".


Exemplo prático:

Nós queremos transformar o seguinte documento XML ("cdcatalog.xml") em XHTML:

<?xml version="1.0" encoding="ISO-8859-1"?>
  <catalog>
    <cd>
      <title>Empire Burlesque</title>
      <artist>Bob Dylan</artist>
      <country>USA</country>
      <company>Columbia</company>
      <price>10.90</price>
      <year>1985</year>
    </cd>
  .
  .
  .
  </catalog>


Criando uma folha de estilos:

<?xml version="1.0" encoding="ISO-8859-1"?>
 
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
  <xsl:template match="/">
    <html>
      <body>
        <h2>My CD Collection</h2>
        <table border="1">
          <tr bgcolor="#9acd32">
            <th align="left">Title</th>
            <th align="left">Artist</th>
          </tr>
          <xsl:for-each select="catalog/cd">
          <tr>
            <td><xsl:value-of select="title"/></td>
            <td><xsl:value-of select="artist"/></td>
          </tr>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
 
  </xsl:stylesheet>

Juntando a folha de estilos ao xsl.

  <?xml version="1.0" encoding="ISO-8859-1"?>
  <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
  <catalog>
    <cd>
      <title>Empire Burlesque</title>
      <artist>Bob Dylan</artist>
      <country>USA</country>
      <company>Columbia</company>
      <price>10.90</price>
      <year>1985</year>
    </cd>
  .
  .
  .
  </catalog>

Esta apresentação reflete a opinião pessoal do autor sobre o tema, podendo não refletir a posição oficial do Portal Educação.


Colunista Portal - Educação

por Colunista Portal - Educação

O Portal Educação possui uma equipe focada no trabalho de curadoria de conteúdo. Artigos em diversas áreas do conhecimento são produzidos e disponibilizados para profissionais, acadêmicos e interessados em adquirir conhecimento qualificado. O departamento de Conteúdo e Comunicação leva ao leitor informações de alto nível, recebidas e publicadas de colunistas externos e internos.

Portal Educação

UOL CURSOS TECNOLOGIA EDUCACIONAL LTDA, com sede na cidade de São Paulo, SP, na Alameda Barão de Limeira, 425, 7º andar - Santa Cecília CEP 01202-001 CNPJ: 17.543.049/0001-93