Subject: RE: [xsl] XML with Default Namespace From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 2 Aug 2007 09:25:09 +0100 |
> Ok, some progress, but I can't seem to get rid of the > attribute, xmlns:o. First, don't think of it as an attribute. It looks like an attribute in lexical XML, but XSLT doesn't see it that way. It's there because an element in your tree has a namespace node that binds the prefix o to the namespace urn:schemas-microsoft-com:office:office. There are four ways a namespace can find its way into your result document, and the way you prevent it depends on how it got there. (a) If you use a literal result element in the stylesheet then all namespaces declared in the stylesheet that are in scope for that element are copied to the result document. You can prevent this using exclude-result-prefixes. (b) If you use xsl:copy or xsl:copy-of to copy an element from the source document, then all its in-scope namespaces are copied from the source document. You can prevent this in XSLT 2.0 using copy-namespaces="no". In 1.0 the only remedy is to switch to using xsl:element. (c) If you create an element or attribute in the result tree, by any means, and the element or attribute name is in a namespace, then a namespace binding will automatically be created to ensure that this namespace is properly declared. There is no way of preventing this, because the document would be ill-formed if the namespace were not declared. (d) (Rare) You can also explicitly create or copy a namespace node using xsl:copy[-of] applied to a namespace node in the source document, or (in XSLT 2.0) xsl:namespace. If you don't want the namespace then remove the instruction that creates it... Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XML with Default Namespac, Andrew Welch | Thread | Re: [xsl] XML with Default Namespac, Karl Stubsjoen |
Re: [xsl] XML with Default Namespac, Andrew Welch | Date | Re: [xsl] Identity transform on nod, Abel Braaksma |
Month |