250 likes | 321 Views
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:
E N D
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
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>
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>
<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) < (menor que) != (diferente) > (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 > 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 > 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