250 likes | 323 Views
Learn XSL, the Extensible Stylesheet Language for transforming XML into various formats with XSLT, XPath, and XSL Formatting Objects. Explore correct XSLT declaration ways, templates, looping, sorting, conditional statements, and connecting XSL stylesheets to XML documents. Optimize data presentation for different devices using XSL. Dive into examples and understand the workings of XSL in web browsers. Explore transforming XML to XHTML with real-world examples and discover the power of XSL in modern web development.
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