xsl-list
[Top] [All Lists]

Problem with Saxon 7.9.1 xsl:variable and selecting additional elements from variable value

2005-10-12 02:36:51
Hi,

I'm using Saxon 7.9.1 to transform some xml. Within this transformation
I set a variable to a node. Somewhat later I try to select a value from
a subnode of this variable node, but it gives me nothing. With the
XML-Spy engine this works for me, but not with Saxon 7.9.1 (which I have
to use for some other reasons).
So If someone could give me an advice how to do this with saxon 7.9.1 or
what else to do.
I would be very grateful if someone could help me.

Regards
Olaf


This is my XML file:
--------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="tinytest.xsl"?>
<document xmlns="http://www.example.com/NameSpace"; >
        <main>
                <section>
                        <name>my section</name>
                        <id>100</id>
                </section>
                <content>
                        <id>contentid 2</id>
                        <text>the content itself</text>
                </content>
        </main>
</document>

======================
This is the tinytest.xsl xml style sheet:
-----------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
        xmlns:myns="http://www.example.com/NameSpace";>
        <xsl:template match="/">
                <myNexDoc>
                <version>
                version: <xsl:value-of select="system-property('xsl:version')" 
/>
                vendor: <xsl:value-of select="system-property('xsl:vendor')" />
                vendor-url: <xsl:value-of 
select="system-property('xsl:vendor-url')" />
                product: <xsl:value-of select="system-property('xsl:product')" 
/>
                product-version: <xsl:value-of
select="system-property('xsl:product-version')" />
                </version>
                <xsl:apply-templates select="//myns:content" mode="content" />
                </myNexDoc>
        </xsl:template>   
        
        <xsl:template match="myns:content" mode="content">
                <xsl:variable name="thissection" >
                        <xsl:sequence select="../myns:section"/>
                </xsl:variable>
                <mysection>
                        <xsl:attribute name="origSectionId">
                                <xsl:value-of select="$thissection/myns:id"/>
                        </xsl:attribute>
                </mysection>
                <somedummy>dummy content</somedummy>
        </xsl:template>
        
</xsl:stylesheet>

==========================
Here is the XML-Spy result (pritty print)(which is what I'm expecting):
With the right value for mysection/@origSectionId
---------------------------
<?xml version="1.0" encoding="UTF-8"?>
<myNexDoc xmlns:myns="http://www.example.com/NameSpace";>
        <version>
                version: 2.0
                vendor: Altova GmbH
                vendor-url: http://www.altova.com
                product:
                product-version: </version>
        <mysection origSectionId="100" />
        <somedummy>dummy content</somedummy>
</myNexDoc>

===========================
Here is the Saxon result (pritty print)
With the empty value for mysection/@origSectionId
--------------------------
<?xml version="1.0" encoding="UTF-8"?>
<myNexDoc xmlns:myns="http://www.example.com/NameSpace";>
        <version>
                version: 2.0
                vendor: SAXON 7.9.1 from Saxonica
                vendor-url: http://saxon.sf.net/
                product:
                product-version: 7.9.1</version>
        <mysection origSectionId=""/>
        <somedummy>dummy content</somedummy>
</myNexDoc>

============================



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--