======WEB - xml, DTD, XSLT====== =====XML===== eXtensible Markup Language ===XML dokument=== <?xml veraion="1.0"?> ... specifikace XML verze\\ =====XSL===== [[http://www.w3.org/Style/XSL/|xsl]] - eXtensible Stylesheet Language - transformace xml xsltproc [[xml/test.xsl|test.xsl]] [[xml/test.xml|test.xml]] ... transformace xml podle vzoru\\ ====DTD==== ====XML==== cat a.xml | xmllint --xpath "string(//*[name()='ManagedObjectReference'])" - ... vypise hodnotu uzlu ManagedObjectReference\\ cat a.xml | xmllint --xpath "string(//*[name()='ManagedObjectReference'][$i]/@type)" - ... vypise prepinac "type" z i-teho uzlu ManagedObjectReference\\ =====XSLT===== [[https://www.w3schools.com/xml/xsl_intro.asp|XLST tutorial na w3schools]]\\ [[http://wiht.link/XSLT-intro|XLST info na whoishostingthis]]\\ ==Konverzni programy== xsltproc
saxon
4SXLT
Xalan
eXtensible Stylesheet Language Transformations ... cast specifikace XSL pro transformace XML do jinych formatu (XML, HTML, txt, csv, pdf, ...) ==Hlavicka== <?xml veraion="1.0"?> ... specifikace XML verze, pripadny parametr encoding (UTF-8, windows-1250, ...) pro kodovani znaku\\ <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform"> ... Specifikace XSLT\\ <xsl:stylesheet type="text/css" href="first.css"> ... Specifikace kaskadoveho stylu\\ ==Telo - obvykle prikazy== <xsl:template match="/PLANETS"> ... vzor pro vsechny nalezene bloky PLANETS v korenu\\ <xsl:template match="PLANET"> ... vzor pro vsechny nalezene bloky PLANET v aktualnim bloku\\ \\ <xsl:value-of select="NAME"/> ... Vlozi obsah podbloku NAME\\ <xsl:value-of select="."/> ... Vlozi obsah aktualniho bloku\\ <xsl:value-of select="@COLOR"/> ... Vlozi obsah argumentu COLOR u aktualniho bloku (.) - napriklad pro <PLANET COLOR="red" NAME="MARS">\\ \\ <xsl:apply-templates> ... Instrukce pro nalezeni vhodneho vzoru (template) a jeho implementaci\\ <xsl:apply-templates select="DISTANCE"> ... Instrukce pro nalezeni vzoru (template) DISTANCE a jeho implementaci\\ \\ <xsl:text> ... Vlozi dany text (mezery, tabulatoru atd.)\\ <xsl:text disable-output-escaping="yes">&!lt;DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional//EN"&gt; ... Vlozi dany text pricemz preklada & znaky\\ \\ <xsl:output indent="yes"> ... definice vystupu - vystupni hodnoty budou odsazeny podle bloku\\ <xsl:output method="xml"> ... definice vystupu - vystupni hodnoty budou v jazyce (specifikaci) XML - vytvori hlavicku verze XML\\ ==Telo - specialni vyrazy== <xsl:copy> ... zkopiruje (vypise) aktualni uzel (viz. [[xsl/copy.xsl|copy.xsl]])\\ <xsl:strip-space elements="*"> ... smaze vsechny prazdne uzly (viz. [[xsl/copy.xsl|copy.xsl]]) a smaze prebytecna bila mista (tabulatory, mezery, nove radky)\\ <xsl:preserve-space elements="MASS DISTANCE"> ... zanechan vsechny prazdne uzly a bila mista (prebije strip-space pro dane uzly) u uzlu MASS a DISTANCE\\ =====XPath===== [[http://www.w3schools.com/xsl/xpath_intro.asp|XPath na w3schools]] ... prochazeni a filtrovani XML\\ =====XQuery===== [[http://www.w3schools.com/xsl/xquery_intro.asp|XQuery na w3schools]] ... vyhledavani v XML jako v SQL (for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title\\