XSL (e X tensible S tylesheet Language ) este o familie de recomandări de la consorțiul W3C care descrie limbaje pentru transformarea și redarea documentelor XML . Constă din trei părți:
Cu XSL, puteți transforma un document XML în orice formă, fie că este HTML , WML , RTF , PDF , SQL sau chiar SWF (flash runner), precum și XSL. XSL conține informații despre modul în care va fi formatat documentul, unde și cum ar trebui să fie localizate datele.
Pentru a procesa un document XML folosind XSL, este necesar să scrieți următoarea declarație în documentul XML:
<?xml-stylesheet type="text/xsl" href="my-style.xsl"?>Limbajul XSLT este format din 35 de instrucțiuni, toate având o formă comună:
<prefix:instruction-name [ attribute= "value" [ attribute= "value" ]] > </prefix:instruction-name> ,unde префиксeste de obicei „xsl”, dar pot fi folosite altele.
Un document XSLT este întotdeauna un document XML bine format ( sau valid ) și are următoarea structură:
<?xml version="1.0"?> <xsl:stylesheet version= "1.0" xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" > <xsl:template match= "/" > <!-- set de instrucțiuni --> </xsl:template> <!-- ... --> </xsl:stylesheet>xsl:stylesheeteste elementul rădăcină pentru orice document XSL. Poate imbrica etichete de nivel superior ( xsl:transformeste un sinonim învechit pentru xsl:stylesheet).
În prezent, cel mai disponibil procesor XSLT pentru Microsoft Windows este MSXML (livrat cu Internet Explorer începând cu versiunea 4.5), pentru sistemele bazate pe GNU este xsltproc.
Un exemplu de document XSL-FO (luat din Tutorialul de formatare a obiectelor XSL ):
<?xml version="1.0" encoding="iso-8859-1"?> <fo:root xmlns:fo= "http://www.w3.org/1999/XSL/Format" > <fo:layout-master-set> <fo:simple-page-master master-name= "my- pagină" > <fo:region-body margin= "1in" /> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference= "my-page" > <fo:flow flow-name= "xsl-region-body" > <fo:block> Bună, lume! </fo:block> </fo:flow> </fo:page-sequence> </fo:root>XML:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="for.xsl"?> <root/>pentru.xsl:
<?xml version="1.0"?> <xsl:stylesheet version= "1.0" xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" > <xsl:template match= "rădăcină" > <HTML> <CORP> <xsl:call-template name= "pentru" > <xsl:with-param name= "i" select= "1" /> <xsl:with-param name= "n" select= "5" /> </xsl:call-template> </CORP> </HTML> </xsl:template> <xsl:template name= "pentru" > <xsl:paramname = "i" /> <xsl:paramname = "n" /> <xsl:value-of select= "$i" /> <xsl:if test= "$i < $n" > <xsl:text> , </xsl:text> <xsl:call-template name= "pentru" > <xsl:with-param name= "i" select= "$i+1" /> <xsl:with-param name= "n" select= "$n" /> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet>Rezultat:
1, 2, 3, 4, 5
XML:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="years.xsl"?> <root> <object year= "2003" /> <object year= "2001" /> <object year= "2005" /> <object year= "2005" /> <object year= "2003" /> <object year= "2006" /> <object year= "2006" /> < object year = "2006" /> <object year= "2006" /> = "2006" /> <object year= "2005" /> <object year= "2001" /> </root>ani.xsl:
<?xml version="1.0"?> <xsl:stylesheet version= "1.0" xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" > <xsl:key name= "ani" match= "/root/object" use= "@year" /> <xsl:template match= "root" priority= "-1" > <HTML> <BODY> <xsl:for-each select= "obiect[generate -id()=generate-id(key('years',@year))]" > <xsl:sort select= "@year" order= "descendent" /> <xsl:value-of select= "@year" " /> <xsl:if test= "position()!=last()" > <xsl:text> , </xsl:text> </xsl:if> </xsl:for-each> </BODY> </HTML> </xsl:template> </xsl:stylesheet>Rezultat:
2006, 2005, 2003, 2001
XSL | |
---|---|
Limbi pentru foile de stil ( compara , list ) | |
---|---|
Moduri |
|
Standard | |
non-standard |
|
Consorțiul World Wide Web (W3C) | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Produse și standarde |
| ||||||||||||||
Organizații |
| ||||||||||||||
PE |
| ||||||||||||||
Conferințe |
|