<xsl:namespace-alias> | |
Mit Hilfe dieser Anweisung können Sie ein Alias für einen Namensraum definieren, wenn eine direkte Verwendung des Namensraums die Verarbeitung komplizieren würde. Dieses selten verwendete Element ist die einfachste Art, ein Stylesheet zu schreiben, das ein anderes Stylesheet erzeugt. | |
Kategorie | |
Element der obersten Ebene |
|
Obligatorische Attribute | |
|
|
Optionale Attribute | |
Keine |
|
Inhalt | |
Keiner. <xsl:namespace-alias> ist ein leeres Element. |
|
Übergeordnetes Element | |
<xsl:stylesheet>. <xsl:namespace-alias> ist ein Element der obersten Ebene und kann nur dem Element <xsl:stylesheet> untergeordnet werden. |
|
Definition | |
XSLT-Abschnitt 7.1.1, Literale Ergebniselemente. |
|
Beispiel | |
Dieses Element wird nicht oft eingesetzt und die Gründe für sein Vorhandensein basieren auf dem etwas obskuren Fall, dass mit Hilfe eines XSLT-Stylesheets ein anderes XSLT-Stylesheet erzeugt wird. Im Beispiel wird ein Stylesheet erzeugt, das eine Identitätstransformation erzeugt, ein Stylesheet, das das Eingabedokument einfach in den Ergebnisbaum kopiert. Hier das ursprüngliche Stylesheet, das das Namensraumalias verwendet: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslout="(the namespace URI doesn't matter here)"> <xsl:output method="xml" indent="yes"/> <xsl:namespace-alias stylesheet-prefix="xslout" result-prefix="xsl"/> <xsl:template match="/"> <xslout:stylesheet version="1.0"> <xslout:output method="xml"/> <xslout:template match="/"> <xslout:copy-of select="."/> </xslout:template> </xslout:stylesheet> </xsl:template> </xsl:stylesheet> Wenn Sie dieses Stylesheet auf ein beliebiges XML-Dokument anwenden, erhalten Sie ein neues Stylesheet: <?xml version="1.0" encoding="UTF-8"?> <xslout:stylesheet xmlns:xslout="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xslout:output method="xml"/> <xslout:template match="/"> <xslout:copy-of select="."/> </xslout:template> </xslout:stylesheet> Mit Hilfe dieses erzeugten Stylesheets können Sie ein beliebiges XML-Dokument kopieren. Im ursprünglichen Stylesheet wird ein <xsl:namespace-alias> verwendet, da es keine andere Möglichkeit gibt, dem XSLT-Prozessor mitzuteilen, welche XSLT-Elemente verarbeitet und welche als Literale an die Ausgabe übergeben werden sollen. Durch die Verwendung eines Namensraumalias lassen sich die XSLT-Elemente erzeugen, die in der Ausgabe benötigt werden. Beachten Sie im Ergebnisdokument, dass der korrekte Namensraumwert automatisch für das <xslout:stylesheet>-Element deklariert worden ist. |