<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
stylesheet-prefix Definiert das Präfix, das verwendet wird, um im Stylesheet auf den Namensraum zu verweisen. result-prefix Definiert das Präfix für den Namensraum, auf den von dem Alias verwiesen wird. Dieses Präfix muss im Stylesheet deklariert werden, und zwar unabhängig davon, ob irgendwelche Elemente im Stylesheet dieses Präfix überhaupt verwenden.
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.