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

Post on 18-Apr-2015

104 views 0 download

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

Extensible Stylesheet Language (XSL)

Renata Pontin de Mattos Fortes

SCE-225 Hipermídia2°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) &lt (menor que) != (diferente) &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