XSL

Az XSL (e X tensible S tylesheet Language ) a W3C konzorcium ajánlásainak családja, amely az XML dokumentumok átalakításához és megjelenítéséhez szükséges nyelveket írja le . Három részből áll:

Fő különbségek a CSS -hez képest

Az XSL család

XSL transzformáció

Az XSL segítségével egy XML -dokumentumot bármilyen formára átalakíthat, legyen az HTML , WML , RTF , PDF , SQL vagy akár SWF (flash runner), valamint XSL. Az XSL információkat tartalmaz arról, hogy a dokumentum hogyan lesz formázva, hol és hogyan kell az adatokat elhelyezni.

Egy XML dokumentum XSL használatával történő feldolgozásához a következő utasítást kell beírni az XML dokumentumba:

<?xml-stylesheet type="text/xsl" href="my-style.xsl"?>

XSLT

Az XSLT nyelv 35 utasításból áll, amelyek mindegyikének közös formája van:

<prefix:utasításnév [ attribútum= "érték" [ attribútum= "érték" ]] > </prefix:utasításnév> ,

ahol префиксáltalában az "xsl", de más is használható.

Az XSLT-dokumentum mindig jól formázott ( vagy érvényes ) XML-dokumentum, és a következő szerkezettel rendelkezik:

<?xml version="1.0"?> <xsl:stylesheet version= "1.0" xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" > <xsl:template match= "/" > <!-- utasításkészlet --> </xsl:template> <!-- ... --> </xsl:stylesheet>

xsl:stylesheetbármely XSL dokumentum gyökéreleme. Felső szintű címkéket tud beágyazni ( xsl:transforma szó elavult szinonimája xsl:stylesheet).

Jelenleg a Microsoft Windows rendszerhez leginkább elérhető XSLT processzor az MSXML (a 4.5-ös verzió óta az Internet Explorerrel szállítjuk ), a GNU alapú rendszereken pedig az xsltproc.

XSL-FO

Példa egy XSL-FO dokumentumra (az XSL Formatting Objects Tutorialból vettük ):

<?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= "saját- page" > <fo:region-body margin= "1in" /> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference= "saját oldalam" > <fo:flow flow-name= "xsl-region-body" > <fo:block> Hello, világ! </fo:block> </fo:flow> </fo:page-sequence> </fo:root>

Példák

Rekurzív ciklus

XML:

<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="for.xsl"?> <root/>

for.xsl:

<?xml version="1.0"?> <xsl:stylesheet version= "1.0" xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" > <xsl:template match= "root" > <HTML> <BODY> <xsl:call-template name= "for" > <xsl:with-param name= "i" select= "1" /> <xsl:with-param name= "n" select= "5" /> </xsl:call-template> </BODY> </HTML> </xsl:template> <xsl:template name= "for" > <xsl:paramname = "i" /> <xsl:paramname = "n" /> <xsl:value-of select= "$i" /> <xsl:if test= "$i < $n" > <xsl:text> , </xsl:text> <xsl:call-template name= "for" > <xsl:with-param name= "i" select= "$i+1" /> <xsl:with-param name= "n" select= "$n" /> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet>

Eredmény:

1, 2, 3, 4, 5

Értékek csoportosítása és rendezése

XML:

<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="years.xsl"?> <root> <object year= "2003" /> <object year= "2001" /> <objektum év= "2005" /> <objektum év= "2005" /> <objektum év= "2003" /> <objektum év= "2006" /> <objektum év= "2006" /> <objektum év = "2006" /> <object year= "2005" /> <object year= "2001" /> </root>

years.xsl:

<?xml version="1.0"?> <xsl:stylesheet version= "1.0" xmlns:xsl= "http://www.w3.org/1999/XSL/Transform" > <xsl:key name= "years" match= "/root/object" use= "@year" /> <xsl:template match= "root" priority= "-1" > <HTML> <BODY> <xsl:for-each select= "object[generate" -id()=generate-id(key('years',@year))]" > <xsl:sort select= "@year" order= "csökkenő" /> <xsl:value-of select= " @év " /> <xsl:if test= "position()!=last()" > <xsl:text> , </xsl:text> </xsl:if> </xsl:for-each> </BODY> </HTML> </xsl:template> </xsl:stylesheet>

Eredmény:

2006, 2005, 2003, 2001

Lásd még

Linkek