Subject: Re: [xsl] Namespace problem From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Thu, 24 Sep 2009 16:47:53 +0200 |
My root elements used to have local attributes, but now, thanks to the miracle of XSD, they have two additional attributes, e.g. <document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../xml_utils/hcdocs.xsd" index="N" mark="Y">
The stylesheet generating the output XML creates the DTD declaration with <xsl:output doctype-system="../../xml_utils/fmdocs.dtd" method="xml" encoding="UTF-8" />
and has some null templates suppressing attributes which are not needed in the output documents, eg: <xsl:template match="@indx|@mark|@formatted" /> <xsl:template match="@rowspan[string(.)='1']" /> <xsl:template match="@colspan[string(.)='1']" /> <xsl:template match="@xml:space" />
Using the last of these as a "template" :-) I added two new lines to the stylesheet doing this job for the schema version of the input: <xsl:template match="@xsi:noNamespaceSchemaLocation" /> <xsl:template match="@xmlns:xsi" />
These generate an error, because I haven't declared the namespaces, so I added xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xmlns=""
to the <xsl:stylesheet> declaration, thinking this would drop both attributes. I wasn't sure what to put in the xmlns:xmlns one, as xmlns seems to be a bit of a special case. However whatever I try isn't helping: the xsi:noNamespaceSchemaLocattion attribute is being dropped, but the xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attribute is not.
Martin Honnen http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Namespace problem, Trevor Nicholls | Thread | RE: [xsl] Namespace problem, Trevor Nicholls |
[xsl] Namespace problem, Trevor Nicholls | Date | Re: [xsl] Namespace problem, Christopher R. Maden |
Month |