I&#39;m applying a transform to SVG documents, to make them validate against the SVG RNG schema.  I have everything working EXCEPT the name spaces on the SVG element itself.  These SVG documents where edited in Adobe Illistrator, and the original SVG element is:<br>
<br>&lt;svg xmlns=&quot;<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>&quot; xmlns:a=&quot;<a href="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/">http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/</a>&quot; xmlns:graph=&quot;<a href="http://ns.adobe.com/Graphs/1.0/">http://ns.adobe.com/Graphs/1.0/</a>&quot; xmlns:i=&quot;<a href="http://ns.adobe.com/AdobeIllustrator/10.0/">http://ns.adobe.com/AdobeIllustrator/10.0/</a>&quot; xmlns:x=&quot;<a href="http://ns.adobe.com/Extensibility/1.0/">http://ns.adobe.com/Extensibility/1.0/</a>&quot; xmlns:xlink=&quot;<a href="http://www.w3.org/1999/xlink">http://www.w3.org/1999/xlink</a>&quot;&gt;<br>
<br><br>and what I want is:<br><br>&lt;svg xmlns=&quot;<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>&quot; xmlns:xlink=&quot;<a href="http://www.w3.org/1999/xlink">http://www.w3.org/1999/xlink</a>&quot;&gt;<br>
<br>The stylesheet starts:<br>&lt;xsl:stylesheet xmlns:xsl=&quot;<a href="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform</a>&quot;<br>    xmlns:xs=&quot;<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>&quot;<br>
    xmlns:xd=&quot;<a href="http://www.oxygenxml.com/ns/doc/xsl">http://www.oxygenxml.com/ns/doc/xsl</a>&quot;<br>    xmlns:i=&quot;<a href="http://ns.adobe.com/AdobeIllustrator/10.0/">http://ns.adobe.com/AdobeIllustrator/10.0/</a>&quot;<br>
    xmlns:a=&quot;<a href="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/">http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/</a>&quot;<br>    xmlns:graph=&quot;<a href="http://ns.adobe.com/Graphs/1.0/">http://ns.adobe.com/Graphs/1.0/</a>&quot; <br>
    xmlns:x=&quot;<a href="http://ns.adobe.com/Extensibility/1.0/">http://ns.adobe.com/Extensibility/1.0/</a>&quot;<br>    exclude-result-prefixes=&quot;xs xd a x graph&quot;<br>    xpath-default-namespace=&quot;<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>&quot;<br>
    version=&quot;2.0&quot;&gt;<br><br><br>My understanding is that &#39;exclude-result-prefixes=&quot;xs xd a x graph&quot;&#39; should not copy over the namespaces identified, but a, x, and graph are still there in the output.   My main template is below, and it keeps the namespace &amp; extensions off of the child elements of SVG, just not the SVG node itself.<br>
<br>   &lt;xsl:template match=&quot;@*|node()&quot;&gt;<br>      &lt;xsl:choose&gt;<br>         &lt;xsl:when test=&quot;. = //i:pgf&quot;/&gt; &lt;!-- This is the BLOB --&gt;<br>         &lt;xsl:when test=&quot;. = //@i:*&quot; /&gt; &lt;!-- These three are all of the Adobe extensions --&gt;<br>
         &lt;xsl:when test=&quot;. = //metadata&quot;/&gt;<br>         &lt;xsl:when test=&quot;. = //foreignObject&quot;/&gt;<br>         &lt;xsl:when test=&quot;. = //switch&quot;&gt; &lt;!-- We do not want the switch elements, just their text nodes. --&gt;<br>
            &lt;xsl:apply-templates select=&quot;node()&quot;/&gt;<br>         &lt;/xsl:when&gt;<br>         &lt;xsl:otherwise&gt;<br>            &lt;xsl:copy&gt;<br>               &lt;xsl:apply-templates select=&quot;@*|node()&quot;/&gt;<br>
            &lt;/xsl:copy&gt;<br>         &lt;/xsl:otherwise&gt;<br>      &lt;/xsl:choose&gt;<br>   &lt;/xsl:template&gt;<br> <br><br>Any ideas?<br>