xsl-list
[Top] [All Lists]

RE: Differing behavior of Xalan and Saxon with namespaces. Who's right?

2003-03-14 02:44:50
The output you are expecting is the correct output, and is the output
that I get from all the versions of Saxon that I have tried it on.

Please add to your stylesheet the line:

<xsl:value-of select="system-property('xsl:vendor')"/>

which will confirm which XSLT processor you are using when you get the
incorrect behavior. I don't believe that it is any recent release of
Saxon.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 



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



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



<Prev in Thread] Current Thread [Next in Thread>