1<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 2 xmlns="my::namespace"> 3 4<xsl:variable name="var">baz</xsl:variable> 5 6<xsl:output indent="yes"/> 7 8<xsl:template match="/"> 9 <root> <!-- This is in the correct namespace "my::namespace" --> 10 <foo>...</foo> <!-- OK. --> 11 <xsl:element name="bar">...</xsl:element> <!-- Still okay. --> 12 13 <!-- Wrong! These are without namespace. --> 14 <xsl:element name="{concat('foo', 'bar')}">...</xsl:element> 15 <xsl:element name="{$var}">...</xsl:element> 16 <xsl:element name="{local-name(*)}">...</xsl:element> 17 18 <!-- Explicitly setting the namespace fixes this. --> 19 <xsl:element name="{$var}" namespace="my::namespace">...</xsl:element> 20 </root> 21</xsl:template> 22 23</xsl:stylesheet> 24 25