- From: Michael Kay <mike@saxonica.com>
- Date: Tue, 16 Nov 2004 18:42:40 -0000
- To: "'Jim Stanley'" <JimS@Media-Services.Com>, <xmlschema-dev@w3.org>
If you use a literal result element:
<root pageSizeUnits="{@pageSizeUnits}"
dayBreakPosition="{@dayBreakPosition}">
or
<root>
<xsl:copy-of select="@pageSizeUnits|@dayBreakPosition"/>
then the namespaces in scope for the <root> element in the stylesheet are
copied into the result tree.
If you use <xsl:element name="root"> they are not.
It's difficult to create explicit namespace nodes when you use <xsl:element>
in XSLT 1.0. It's easier in 2.0, because there is an <xsl:namespace>
instruction for the purpose.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: xmlschema-dev-request@w3.org
> [mailto:xmlschema-dev-request@w3.org] On Behalf Of Jim Stanley
> Sent: 16 November 2004 16:09
> To: xmlschema-dev@w3.org
> Subject: RE: Getting Namespaces into a Transform
>
>
> >If you put exactly that in your stylesheet, then you should
> get exactly
> that
> >in your result tree.
>
> My first thought was, "Wow, am I stupid for missing the obvious!"
> (This is undoubtedly still true.) But when I looked at the transform
> file I'm still mystified.
>
> I'm putting in all the elements programatically:
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
> <xsl:template match="root">
> <xsl:element name="root">
> <xsl:attribute name="pageSizeUnits"><xsl:value-of
> select="@pageSizeUnits"/></xsl:attribute>
> <xsl:attribute name="dayBreakPosition"><xsl:value-of
> select="@dayBreakPosition"/></xsl:attribute>
>
> So there are several attributes to the root besides the namespace
> declaration. Since I declare the root element
> programatically, what do
> I need to do to stick literals in there?
>
> Thanks again for putting up with the inexperience.
>
> Jim Stanley
> Media Services, Inc.
>
>
Received on Tuesday, 16 November 2004 18:42:43 UTC