This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
xsl and schemas - getting rid of the xsi namespace
- From: "Mario Michlits" <mario dot michlits at hico dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 11 Jul 2002 18:14:19 +0200
- Subject: [xsl] xsl and schemas - getting rid of the xsi namespace
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi
I would like to transform an XML document with a referenced schema like this:
<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="mySchema.xsd">
<documentcontent/>
</doc>
into a document like this
<!DOCTYPE doc SYSTEM "myDTD.dtd">
<doc>
<documentcontent/>
<someothertags/>
</doc>
I wrote an XSLT file like this
<!-- copies all the nodes to the result doc -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="xsi">
<xsl:output method="xml" doctype-system="myDTD.dtd"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<!-- removes @xsi:noNamespaceSchemaLocation from output -->
<xsl:template match="@xsi:noNamespaceSchemaLocation"/>
This works fine. The only problem I still have is to remove the namespace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" from the output document, because the parser validating against the DTD produces the error "attribute xmlns:xsi not defined in Document Type Definition".
<!DOCTYPE doc SYSTEM "myDTD.dtd">
<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<documentcontent/>
<someothertags/>
</doc>
Any help will be appreciated.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list