180 likes | 390 Views
Technol ógie XML. XSLT (XSL Transformations) September , 2011. Cieľ XSLT. Pôvodným cieľom bola podpora formátovacích objektov ... ... ale výsledkom môže byť ľubovoľný textový formát ( xml , txt , html, tex , ...). XML. XSL: FO. PDF. XSLT procesor. Zobra- zovací procesor. XSLT štýl.
E N D
Technológie XML XSLT (XSL Transformations) September, 2011 Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Cieľ XSLT • Pôvodným cieľom bola podpora formátovacích objektov ... • ... ale výsledkom môže byť ľubovoľný textový formát • (xml, txt, html, tex, ...) XML XSL: FO PDF XSLT procesor Zobra- zovací procesor XSLT štýl Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Vlastnosti XSLT • XSL = Extensible Stylesheet Language • SGML => XML DSSSL => XSLT • Aplikácia XML (používa syntax XML) • Založené na XPath pre adresovanie častí dokumentu • Možné použitie: • zmena formátu (xml => xml pre iný model, xml => iný formát) • generovanie textu (závislého od obsahu vstupného súboru) • extrakcia informácií z xml súboru Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Stav XSLT • Spravovaný W3C (http://www.w3.org) • XSLTransformations 1.0 (štandard v 1. edícii) • W3C recommendation – november 1999 • XSLTransformations 1.1 (obsolete) • W3C working draft – august 2001 • XSL Transformations 2.0 (štandard v 1. edícii) • W3C recommendation – január 2007 • W3C proposed recommendation – 2.edícia – apríl 2009 • XSL Transformations 2.1 • W3C working draft – máj 2010 Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Štruktúra značkovania ... Objavovanie znalostí 6 P P-2 CN-1 PP-1 Technológie XML 6 PV P-1 CL-2 Cudzí jazyk 0 V S-2 rozvrh predmet meno kredity typ forma p c s pp Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Značkovaný dokument <?xml version="1.0"?> <rozvrh> <predmettyp="P" kredity="6”> <meno>Objavovanie znalostí</meno> <forma><p>2</p><c>1</c><pp>1</pp></forma> </predmet> <predmettyp="PV" kredity="6”> <meno>Technológie XML</meno> <forma><p>1</p><c>2</c></forma> </predmet> <predmettyp="V"> <meno>Cudzí jazyk</meno> <forma><s>2</s></forma> </predmet> </rozvrh> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Stromová reprezentácia / rozvrh ... predmet ... kredity forma typ meno p c pp text text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Minimálny štýl • Prázdny štýl <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> </xsl:stylesheet> • Implicitné chovanie • Prechod stromom (v smere „do hĺbky“) • Výpis obsahu textových uzlov forma meno p c pp text text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Šablóny • XSLT štýl = množina šablón • buď je štýl prázdny alebo obsahuje šablóny • Štruktúra šablóny – dve časti: • kontext šablóny – na ktorú časť vstupného dokumentu má byť použitá (XPath výraz) • transformačný predpis – aký obsah má byť generovaný do výstupného súboru (voliteľná časť) • Šablóna je definovaná značkou „template“ <xsl:template match=" … "> … </xsl:template> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Spracovanie uzlov • Prechod uzlami dokumentu, pre každý uzol sa hľadá zodpovedajúca šablóna • šablóna nenájdená – pokračuje sa v implicitnom prechádzaní podstromu pod daným uzlom • šablóna existuje – spracovanie uzla a príslušného podstromu podľa nájdenej šablóny • generovanie textu ({ne}závislého na danom uzle) • spracovanie iba uzla • spracovanie všetkých uzlov pod daným uzlom • spracovanie vybraných uzlov Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Riadenie skúmania uzlov • Blokovanie podstromu <xsl:template match="forma"> <kuk>kuk</kuk> </xsl:template> • Spracovanie poduzlov <xsl:template match="forma"> <xsl:apply-templates/> </xsl:template> • Selektívne spracovanie <xsl:template match="forma"> <xsl:apply-templates select="p"/> </xsl:template> forma p c pp text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Preberanie hodnôt zo vstupného súboru <xsl:template match="predmet"> <xsl:value-ofselect="@typ"/> <xsl:value-ofselect="meno"/> <xsl:value-ofselect="name()"/> <xsl:value-ofselect="position()"/> </xsl:template> <xsl:template match="meno"> <xsl:value-ofselect="."/> </xsl:template> <xsl:template match="/rozvrh/predmet"> <xsl:value-ofselect="sum(forma/*)"/> </xsl:template> predmet typ meno text forma p c pp text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Vetvenie <xsl:template match="predmet"> <xsl:choose> <xsl:whentest="@typ = 'P' ">povinny</xsl:when> <xsl:whentest="@typ = 'PV' ">povinne volitelny</xsl:when> <xsl:otherwise>volitelny</xsl:otherwise> </xsl:choose> <xsl:iftest="not(forma/pp)"> nevyžaduje za projekt</xsl:if> </xsl:template> <xsl:template match="predmet[@kredity > '6']"> … </xsl:template> <xsl:template match="predmet[not(@kredity > '6')]"> </xsl:template> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Iterácia <xsl:template match="//forma"> <xsl:for-eachselect="*"> <xsl:value-of select="name()"/> <xsl:if test="not( position() = last() )"> <xsl:text>, </xsl:text> </xsl:if> </xsl:for-each> </xsl:template> forma p c pp text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Vytváranie atribútov <xsl:template match="predmet"> <TR> <xsl:attributename="style"> color:red </xsl:attribute> </TR> </xsl:template> <xsl:template match="predmet“> <xsl:template match="predmet"> <TR ID="{meno}“> <TR ID="<xsl:value-ofselect='meno'/>"> </TR> </TR> </xsl:template> </xsl:template> Chybové hlásenie Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Rôzne <xsl:template match="rozvrh"> <xsl:apply-templates> <xsl:sortorder="descending" select="@typ"/> </xsl:apply-templates> </xsl:template> <xsl:strip-space elements="*"/> <xsl:template match="predmet"> <xsl:value-of select="position()"/> </xsl:template> rozvrh predmet predmet predmet text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Cieľový formát Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Realizácia transformácie • Samostatný XSLT procesor • samostatný program (CLI alebo GUI) xsltproc vstupný-xml-súborxslt-štýl> výstupný-súbor • Vo vnútri klientského programu • príkladom je webový prehliadač • musí v xml súbore byť väzba na štýl, ktorý sa má použiť <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="meno-xslt-súboru"?> <rozvrh> • Súčasť serverového riešenia • server používa transformáciu dokumentov Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach