Usando a Extensible Style Language - XSL


No artigo - XML - Introdução - abordamos os conceitos básicos sobre a linguagem XML . Muita água já rolou depois disto e o a utilização da XML vem crescendo como uma bola de neve , por isso é bom você conhecer mais sobre esta 'linguagem'.

O que é a XSL - Extensible Style Language e para que ela serve ?

Bem , para responder esta pergunta você deve primeiro criar um arquivo XML e tentar exibí-lo no seu Navegador. Tente e veja o resultado. Vou usar o arquivo boletim.xml (simplificado) do artigo acima citado. Vejamos o jeitão do arquivo boletim.xml e o resultado de sua exibição :

<?xml version="1.0"?>
<boletim>
<aluno>
     <nome>JANICE</nome>
     <portugues>7</portugues>
     <matematica>8</matematica>
     <ciencias>6</ciencias>
</aluno>
<aluno>
     <nome>JEFFERSON</nome>
     <portugues>5</portugues>
     <matematica>8</matematica>
     <ciencias>7</ciencias>
</aluno>
</boletim>
O arquivo boletim.xml
A exibição do arquivo boletim.xml no IE

Obs: O arquivo boletim.xml pode ser criado em qualquer editor de texto.Para exibir o arquivo bsta clicar duas vezes sobre o arquivo.

Gostou do resultado ? Pois esta é a forma padrão de apresentação dos dados de um arquivo XML em um Navegador.

Então a XSL-Extensible Style Language foi criada para permitir uma forma prática de exibir dados XML em um Navegador , ou seja , ela permite apresentar os dados de uma maneira mais inteligível. (Podemos usar a CSS - Cascade Style Sheet em conjunto com a XSL para apresentar os dados de um arquivo XML)

Esquematizando temos:

Podemos dizer também que a XSL contém informações que permite converter um documento XML para outro formato ( HTML , RTF , etc...) , permitindo assim múltiplas apresentações de um mesmo documento.

O XSL é formato de Templates e cada template possui duas partes :

Assim como a XML a XSL é uma recomendação da W3C e é formada assim :

Formatando um documento XML com XSL

Vamos mostrar como formatar o documento boletim.xml e exibir os dados no formato de um arquivo HTML , uma tabela onde devemos ter:

nome
portugues
matematica
ciências
Janice
7
8
6
Jefferson
5
8
7

A primeira coisa a fazer para formatar um documento XML é incluir uma linha no documento XML a ser formatado que indique o arquivo XSL que irá formatar os dados que serão exibidos no Navegador. A sintaxe da declaração a ser incluída é :

<?xml-stylesheet type="text/xsl" href="arquivo.xsl"?>

Vamos formatar o arquivo boletim.xml . Para isso temos que incluir uma declaração dentro do arquivo boletim.xml , veja abaixo:

<?xml-stylesheet type="text/xsl" href="boletim.xsl"?>
<boletim>
 <aluno>
        <nome>JANICE</nome>
        <portugues>7</portugues>
        <matematica>8</matematica>
        <ciencias>6</ciencias>
 </aluno>
 <aluno>
        <nome>JEFFERSON</nome>
        <portugues>5</portugues>
        <matematica>8</matematica>
        <ciencias>7</ciencias>
   </aluno>
</boletim>
O arquivo boletim.xml com a declaração para o arquivo XSL - Boletim.xsl

Obs: O arquivo XSL é um arquivo externo que será usado para formatar o documento.

Vamos mostrar agora o arquivo boletim.xls que irá formatar o documento boletim.xml:

<?xml version="1.0" ?> 
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<BODY>
          <TABLE BORDER="1" CELLPADDING="2">
                <tr>
                   <td>nome</td>
                   <td>portugues</td>
                   <td>matematica</td>
                   <td>ciencias</td>
                </tr>
              <xsl:for-each select="boletim/aluno">
		<TR>
		<TD>	
                     <xsl:value-of select="nome"/>	
		</TD>
                <TD>	
                     <xsl:value-of select="portugues"/>
		</TD>
  		<TD>	
                     <xsl:value-of select="matematica"/>	
		</TD>
 		<TD>	
                     <xsl:value-of select="ciencias"/>	
		</TD>
		</TR>
             </xsl:for-each>	
           </TABLE>
      
</BODY>
</HTML>
O arquivo Boletim.xsl

Os arquivos boletim.xml e boletim.xsl devem ser salvos na pasta do diretório padrão do seu servidor Web. Como estamos usando o PWS vamos salvar os arquivos no diretório x:\inetpub\wwwroot. Para exibir o arquivo boletim.xml na foramatação desejada abra o Internet Explorer e digitar http://localhost/boletim.xml ( Pode digitar também http://127.0.0.1/boletim.xml ou o nome do seu servidor). O resultado , para o nosso caso , é exibido a seguir:

Agora vamos explicar como as coisas funcionam. A seguir o código do arquivo boletim.xsl comentado:

1- <?xml version="1.0" ?>

A primeira tag indica que o arquivo XSL utiliza o padrão XML para representar os dados

2- <HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">

Esta é a declaração XSL do documento sendo obrigatória.

3- A seguir temos código HTML que irá criar uma tabela. O cabeçalho é definido assim:

<tr>
<td>nome</td>
<td>portugues</td>
<td>matematica</td>
<td>ciencias</td>
</tr>

4- <xsl:for-each select="boletim/aluno">

Esta tag é muito importante pois ele irá selecionar o conteúdo que esta em <Boletim><aluno> do arquivo boletim.xml

5- Dentro de cada célula HTML ( <td> </td> ) inserimos a tag que irá selecionar as informações representadas no arqruivo boletim.xml : Assim temos :

<TD>
<xsl:value-of select="nome"/>
</TD>
<TD>
<xsl:value-of select="portugues"/>
</TD>
<TD>
<xsl:value-of select="matematica"/>
</TD>
<TD>
<xsl:value-of select="ciencias"/>
</TD>

Note que temos um loop equivalente ao comando for/next entre:

<xsl:for-each select="inicio"> 
    <xsl:value-of select="nome do campo"/> 
</xsl:for-each> 

a XSL percorre todos os dados do arquivo XML entre as tags realizando a formatação e exibindo os dados na tabela HTML.

Lembre-se que o arquivo boletim.xml possui uma referência ao arquivo boletim.xsl usado nesta formatação.

Acabei . Retornaremos a este assunto em breve ...


José Carlos Macoratti