Extensible Stylesheet Language (XSL)
Renata Pontin de Mattos Fortes
SCE-225 Hipermídia
2°Semestre 2003
Introdução
 XSL é a linguagem para expressar
folhas de estilo.
 Descreve como um documento XML
deve ser apresentado.
XSL
 Consiste de três partes:
 XSLT (XSL Transformation) – uma
linguagem para transformar documentos
XML.
 XPath – uma linguagem para definir
partes de um documento XML.
 XSL
Formatting
Objects
–
um
vocabulário para formatar documentos
XML.
Esclarecendo...
 Pense em XML com sendo uma linguagem
que:
Pode transformar XML em XHTML.
Pode filtrar e classificar dados XML.
Define partes de um documento XML.
Pode formatar dados XML com base nos
valores dos dados, como mostrar valores
negativos em vermelho.
 Pode exibir dados XML em diferentes
dispositivos, como tela, papel ou voz.




XSLT e XPath
 XSLT será utilizada para definir as
transformações XML.
 XPath será utilizada para definir
padrões
compatíveis
para
as
tranformações.
XSLT
 É utilizada para transformar documentos
XML em outros documentos XML , ou em
outro tipo de documento que é reconhecido
por um browser.
 Pode acrescentar ou remover elementos ao
arquivo de saída, re-arranjar os elementos,
e tomar decisões sobre quais elementos
apresentar ou não.
XSLT – Como funciona?
 Utiliza a XPath para definir as partes
do documento fonte que “casam” com
um ou mais templates pré-definidos.
 XSLT transforma a parte que “casou”
do documento fonte
em um
documento resultante.
Browsers e XSL
 Internet Explorer (IE):
 As versões IE 5 e IE 5.5 não são 100%
compatíveis com a recomendação oficial
W3C da XSL.
 O IE 6 é completamente compatível com
a recomendação oficial.
 Netscape:
 O Netscape 6 não oferece suporte
completo para a recomendação oficial
W3C da XSL.
XSL-Transformation (XSLT)
Maneiras corretas de se declarar uma
folha de estilo XSL:
ou
Tranformando um documento
XML em XHTML
O documento XML... (cdcatalog.xml)
<?xml version=“1.0” encoding=“ISO-8859-1”?>
<catalog>
<cd>
<title>How The West Was Won</title>
<artist> Led Zeppelin </artist>
<company> Warner </company>
<price> 61,90 </price>
<year> 2003 </year>
</cd>
</catalog>
A folha de estilo XSL...
(cdcatalog.xsl)
Ligando a folha de estilo XSL ao
documento XML
<?xml version=“1.0” encoding=“ISO-8859-1”?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<catalog>
<cd>
<title>How The West Was Won</title>
<artist> Led Zeppelin </artist>
<company> Warner </company>
<price> 61,90 </price>
<year> 2003 </year>
</cd>
</catalog>
Explicando...
<xsl:template>
(1/2)
 Uma folha de estilo XSL consiste de
um conjunto de regras chamadas
templates.
 O elemento <xsl: template> contém
regras a serem aplicadas quando um
nó específico “casa”.
 O atributo match é utilizado para
associar o template com um elemento
XML.
<xsl:template>
(2/2)
match = “/” associa um
template à raiz do
documento XML fonte
<xsl:value-of>
 O elemento <xsl:value-of> pode ser
usado para selecionar o valor de um
elemento XML e o apresentar na saída
da transformação.
 Exemplo:
<xsl: value-of select=“catalog/cd/title”/>
<xsl: value-of select=“catalog/cd/artist”/>
<xsl:for-each> (1/2)
 O elemento <xsl:for-each> permite
realizar loops na XSL.
 Pode ser utilizado para selecionar
todo elemento XML de um conjunto
de nós específicos.
 Exemplo:
<xsl:for-each select=“catalog/cd”>
<xsl:value-of select=“title”/>
<xsl:value-of select=“artist”/>
</xsl:for-each>
<xsl:for-each> (2/2)
 Pode-se filtrar a saída acrescentando um
critério ao atributo selecionado no
elemento <xsl:for-each>:
<xsl:for-each
select=“catalog/cd[artist=‘Led Zeppelin’]”>
 Operadores de filtro:
= (igual)
!= (diferente)
&lt (menor que)
&gt (maior que)
<xsl:sort>
 O elemento <xsl:sort> é utilizado para
ordenar a saída.
 Exemplo:
<xsl:for-each select=“catalog/cd”>
<xsl:sort select=“artist”/>
<xsl:value-of select=“title”/>
<xsl:value-of select=“artist”/>
</xsl:for-each>
<xsl:if>
 O elemento <xsl:if> contém um template
que será aplicado somente se uma condição
específica for verdadeira.
 Exemplo:
<xsl:for-each select=“catalog/cd”>
<xsl:if test=“price &gt; 30”/>
<xsl:value-of select=“title”/>
<xsl:value-of select=“artist”/>
</xsl:if>
</xsl:for-each>
<xsl:choose> (1/2)
 O elemento <xsl:choose> é usado em
conjunto com <xsl:when> e <xsl:otherwise>
para
expressar
múltiplos
testes
condicionais.
<xsl:choose> (2/2)
 Exemplo:
<xsl:for-each select="catalog/cd">
<xsl:value-of select="title"/>
<xsl:choose>
<xsl:when test="price &gt; 30">
<xsl:value-of select="artist"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="company"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:apply-templates>
 O elemento <xsl:apply-templates>
aplica uma regra de template ao
elemento atual ou aos seus nós filhos.
 Exemplo:
Próximo slide
Download

Document