Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Namespaces (7/11) >

Namespace propagation from source to result

Namespaces declared in the source document or in the stylesheet propagate to the output even if they are not used in the output.

XSLT

      <xsl:stylesheet
                  xmlns:o="oooooo"
                  xmlns:s="ssssss"
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:template  match="/aaa">
                  <zzz>
                        <xsl:apply-templates  select="*"/>
                  </zzz>
            </xsl:template>

            <xsl:template  match="*">
                  <xsl:copy-of  select="."/>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa
                  xmlns:o="oooooo"
                  xmlns:p="pppppp"
                  xmlns:v="vvvvvv">
            <o:bbb/>
            <o:ddd/>
      </aaa>
Output

      <zzz
                  xmlns:o="oooooo"
                  xmlns:s="ssssss">
            <o:bbb
                        xmlns:p="pppppp"
                        xmlns:v="vvvvvv"/>
            <o:ddd
                        xmlns:p="pppppp"
                        xmlns:v="vvvvvv"/>
      </zzz>


Previous chapter: Multiple Outputs
Next chapter: Keys
Previous page: Matching all elements in selected namespace
Next page: Removal of unwanted namespace declarations