XSLT a jmenné prostory Doplňková prezentace
Roman Malo
XSLT a jmenné prostory
Při využití XSLT nad XML s jmennými prostory je potřeba jednotlivé názvy uzlů (elementy a atributy) uvádět včetně prefixu Prefix musí být asociován se stejným identifikátorem Při použití implicitních jmenných prostorů v XML je nutné v rámci XSLT specifikovat prefix
XML aplikace
2
XML bez jmenných prostorů
Ing. <jmeno>Roman <prijmeni>Malo Ph.D. Zemědělská 1 <mesto>Brno 61300 <stat>Česká republika XML aplikace
3
XSLT pro XML bez jmenných prostorů <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes" method="xml" encoding="windows-1250" /> <xsl:template match="osoba"> <xsl:variable name="jmeno"> <xsl:value-of select="jmeno"/> <xsl:variable name="prijmeni"> <xsl:value-of select="prijmeni"/>
<xsl:for-each select="adresa/*"> <xsl:value-of select="."/> <xsl:text>
XML aplikace
4
XML s jmennými prostory
Ing. Roman Malo Ph.D. Zemědělská 1 <mesto>Brno 61300 <stat>Česká republika
XML aplikace
5
XSLT pro XML s jmennými prostory <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:o="urn:osoba"> <xsl:output indent="yes" method="xml" encoding="windows-1250" /> <xsl:template match="o:osoba"> <xsl:variable name="jmeno"> <xsl:value-of select="o:jmeno"/> <xsl:variable name="prijmeni"> <xsl:value-of select="o:prijmeni"/>
<xsl:for-each select="adresa/*"> <xsl:value-of select="."/><xsl:text>
XML aplikace
6
XML s jmennými prostory (defaultní)
Ing. Roman Malo Ph.D. Zemědělská 1 <mesto>Brno 61300 <stat>Česká republika
XML aplikace
7
XSLT pro XML s jmennými prostory (defaultní) <xsl:stylesheet version="1.0„ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:o="urn:osoba" xmlns:a="urn:adresa" > <xsl:output indent="yes" method="xml" encoding="windows-1250" /> <xsl:template match="o:osoba"> <xsl:variable name="jmeno"> <xsl:value-of select="o:jmeno"/> <xsl:variable name="prijmeni"> <xsl:value-of select="o:prijmeni"/>
<xsl:for-each select="a:adresa/*"> <xsl:value-of select="."/> <xsl:text> XML aplikace
8
XML s jmennými prostory (defaultní, atribut)
Ing. Roman Malo Ph.D. Zemědělská 1 <mesto>Brno 61300 <stat>Česká republika
XML aplikace
9
XSLT pro XML s jmennými prostory (defaultní, atribut) <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:o="urn:osoba" xmlns:a="urn:adresa" xmlns:i="urn:identifikace"> <xsl:output indent="yes" method="xml" encoding="windows-1250" /> <xsl:template match="o:osoba"> <xsl:variable name="jmeno"> <xsl:value-of select="o:jmeno"/> <xsl:variable name="prijmeni"> <xsl:value-of select="o:prijmeni"/>
<xsl:for-each select="a:adresa/*"> <xsl:value-of select="."/><xsl:text>
XML aplikace
10
Výsledek transformace – zákaz vložení jmenných prostorů
Zemědělská 1 Brno 61300 Česká republika
Použité jmenné prostory se nám defaultně vkládají do výstupního XML (HTML) Zakázat vkládání lze atributem exclude-resultprefixes, jehož hodnotou jsou prefixy, které nechceme uvést ve výstupu (oddělené mezerou) <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:o="urn:osoba" xmlns:i="urn:identifikace" xmlns:a="urn:adresa" exclude-resultprefixes="a i o">
XML aplikace
11