Re: [xsl] Differing behavior of Xalan and Saxon with namespaces. Who's right?

Subject: Re: [xsl] Differing behavior of Xalan and Saxon with namespaces. Who's right?
From: "Roger L. Costello" <costello@xxxxxxxxx>
Date: Thu, 13 Mar 2003 16:55:28 -0500
"Passin, Tom" wrote:
> > Thanks Tom.  Suppose that I do want Saxon to carry the namespace
> > declaration from the stylesheet over to the result document.  How do 
> > I do it?  /Roger
> >
> 
> You have to be more specific, Roger.  What is the input and what 
> output do you want?  I'm not clear on what you mean by "carry over"  
> the namespace declaration.

Sorry for being vague Tom.  Here's the input:

<?xml version="1.0"?>
<FitnessCenter>
        <Member level="platinum">
                <Name>Jeff</Name>
                <Phone type="home">555-1234</Phone>
                <Phone type="work">555-4321</Phone>
                <FavoriteColor>lightgrey</FavoriteColor>
        </Member>
        ...
</FitnessCenter>

Here's the stylesheet:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                xmlns:fit="http://www.keeping-fit.org";
                version="1.0">
 
    <xsl:output method="xml"/>

    <xsl:template match="FitnessCenter">
        <FitnessCenter>
            <xsl:apply-templates/>
        </FitnessCenter>
    </xsl:template>

    <xsl:template match="*">
        <xsl:element name="{name(.)}">
            <xsl:for-each select="@*">
                <xsl:attribute name="{name(.)}">
                    <xsl:value-of select="."/>
                </xsl:attribute>
            </xsl:for-each>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>

</xsl:stylesheet>

Note the namespace declaration at the top of the stylesheet:

    xmlns:fit="http://www.keeping-fit.org";

Here's what I want the output to look like (and this is what Xalan
gives, but not Saxon):

<?xml version="1.0" encoding="UTF-8"?>
<FitnessCenter xmlns:fit="http://www.keeping-fit.org";>
        <Member level="platinum">
                <Name>Jeff</Name>
                <Phone type="home">555-1234</Phone>
                <Phone type="work">555-4321</Phone>
                <FavoriteColor>lightgrey</FavoriteColor>
        </Member>
        ...
</FitnessCenter>

Notice how the namespace declaration from the stylesheet has been
"carried over" to the result document (again, only with Xalan, but not
Saxon).  How do I get Saxon to "carry over" the namespace declaration to
the result file?  /Roger


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread