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

Dynamically generated namespaces

Also namespaces can be generated on the fly.
XSLT

      <xsl:stylesheet
                  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">
                  <xsl:apply-templates  select="*"/>
            </xsl:template>

            <xsl:template  match="*">
                  <xsl:element  name="{name()}:fff"
                              namespace="namespace-{position()}"/>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb/>
            <ccc/>
            <ddd/>
      </aaa>
Output

      <bbb:fff
                  xmlns:bbb="namespace-1"/>
      <ccc:fff
                  xmlns:ccc="namespace-2"/>
      <ddd:fff
                  xmlns:ddd="namespace-3"/>


Previous chapter: Multiple Outputs
Next chapter: Keys
Previous page: Dynamically generated elements in some namespace
Next page: Creating attributes in some namespace