This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Generating namespace declarations in output documents: How?


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]