Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre...

25
Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003

Transcript of Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre...

Page 1: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

Extensible Stylesheet Language (XSL)

Renata Pontin de Mattos Fortes

SCE-225 Hipermídia2°Semestre 2003

Page 2: 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.

Page 3: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

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.

Page 4: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

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.

Page 5: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

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.

Page 6: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

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.

Page 7: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

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.

Page 8: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

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.

Page 9: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

XSL-Transformation (XSLT)

Maneiras corretas de se declarar uma folha de estilo XSL:

ou

Page 10: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

Tranformando um documento XML em XHTML

Page 11: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

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>

Page 12: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

A folha de estilo XSL... (cdcatalog.xsl)

Page 13: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

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>

Page 14: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

Explicando...

Page 15: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<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.

Page 16: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<xsl:template> (2/2)match = “/” associa um

template à raiz do documento XML fonte

Page 17: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<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”/>

Page 18: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<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>

Page 19: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<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) &lt (menor que) != (diferente) &gt (maior que)

Page 20: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<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>

Page 21: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<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>

Page 22: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<xsl:choose> (1/2)

O elemento <xsl:choose> é usado em conjunto com <xsl:when> e <xsl:otherwise> para expressar múltiplos testes condicionais.

Page 23: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<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>

Page 24: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.

<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

Page 25: Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.