This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Generating namespace declarations in output documents: How?
- To: xsl-list at lists dot mulberrytech dot com
- Subject: RE: [xsl] Generating namespace declarations in output documents: How?
- From: Jarno dot Elovirta at nokia dot com
- Date: Thu, 6 Sep 2001 06:10:01 +0300
- Reply-To: xsl-list at lists dot mulberrytech dot com
> So I've got this document more or less of the form
>
> <foo>
> ...some elements...
> </foo>
>
> and I need to transform it into
>
> <bar xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="[somewhere]">
> ...some elements...
> </bar>
>
> (yes, the transformation from foo to bar is pretty trivial at
> the moment, but it's expected to get nastier later).
>
> Of course the first thing I tried (since this is the first time
> I've used XSL) is exactly what they tell you not to do in
> section 7.1.3 of the XSLT spec --
>
> <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> <xsl:template match="foo">
> <xsl:element name="bar">
> <xsl:attribute name="xmlns:xsi">
> http://www.w3.org/2000/10/XMLSchema-instance
> </xsl:attribute>
> <xsl:attribute name="xsi:noNamespaceSchemaLocation">
> [somewhere]
> </xsl:attribute>
> <xsl:apply-templates/>
> </xsl:template>
> ...some templates...
> </xsl:transform>
>
> -- you know, the part where it says "Thus, while it is not an error
> to do [what I just did], it will not result in a namespace declaration
> being output."
>
> So what *will* result in a namespace declaration being output?
Let the XSLT engine worry about outputing the namespace declarations - just
do
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
version="1.0">
<xsl:template match="foo">
<xsl:element name="bar">
<xsl:attribute name="xsi:noNamespaceSchemaLocation">
[somewhere]
</xsl:attribute>
</xsl:element>
<xsl:apply-templates/>
</xsl:template>
</xsl:transform>
Jarno
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list