You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by bu...@apache.org on 2002/03/27 20:00:32 UTC
DO NOT REPLY [Bug 7528] New: -
'preceding-sibling' axis not updating correctly during template processing
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7528>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7528
'preceding-sibling' axis not updating correctly during template processing
Summary: 'preceding-sibling' axis not updating correctly during
template processing
Product: XalanJ2
Version: 2.3
Platform: PC
OS/Version: Windows NT/2K
Status: NEW
Severity: Major
Priority: Other
Component: Xalan-CmdLine
AssignedTo: xalan-dev@xml.apache.org
ReportedBy: steve.heil@fishersci.com
'preceding-sibling' values (including child element values & attribute values)
are not being updated after the second sibling node during processing of a set
of multiple sibling nodes.
e.g. during processing of 4 sibling nodes, for 1st node, 'preceding-sibling'
values are null (as expected), for 2nd node, 'preceding-sibling' values are
values from 1st sibling node (as expected), for 3rd and subsequent
nodes, 'preceding-sibling' values are always values from 1st sibling node.
XML Sample:
===========
<?xml version="1.0" encoding="UTF-8"?>
<Document>
<PartList>
<Part index="1">
<PartNumber>11111-11</PartNumber>
<Description>My Part</Description>
</Part>
<Part index="2">
<PartNumber>22222-22</PartNumber>
<Description>Your Part</Description>
</Part>
<Part index="3">
<PartNumber>33333-33</PartNumber>
<Description>Any Part</Description>
</Part>
<Part index="4">
<PartNumber>44444-44</PartNumber>
<Description>A Part</Description>
</Part>
</PartList>
</Document>
XSL Sample:
===========
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version
= "1.0">
<xsl:output method="text" omit-xml-declaration="no" encoding="UTF-8"
indent="yes"/>
<xsl:template match="Document">
<xsl:apply-templates select="PartList"/>
</xsl:template>
<xsl:template match="PartList">
<xsl:apply-templates select="Part"/>
</xsl:template>
<xsl:template match="Part">
<xsl:text>preceding-sibling index = </xsl:text><xsl:value-of
select="string(preceding-sibling::*/@index)"/>
<xsl:text> </xsl:text>|
<xsl:text>current index = </xsl:text><xsl:value-of select="string
(@index)"/>
<xsl:text> </xsl:text>|
<xsl:text>following-sibling index = </xsl:text><xsl:value-of
select="string(following-sibling::*/@index)"/>
<xsl:text> </xsl:text>|
<xsl:text>preceding-sibling PartNumber = </xsl:text><xsl:value-of
select="string(preceding-sibling::*/PartNumber)"/>
<xsl:text> </xsl:text>|
<xsl:text>current PartNumber = </xsl:text><xsl:value-of select="string
(./PartNumber)"/>
<xsl:text> </xsl:text>|
<xsl:text>following-sibling PartNumber = </xsl:text><xsl:value-of
select="string(following-sibling::*/PartNumber)"/>
<xsl:text> </xsl:text>||
</xsl:template>
</xsl:stylesheet>
Actual Output (XJ2 v2.3.1):
===========================
preceding-sibling index = |
current index = 1 |
following-sibling index = 2 |
preceding-sibling PartNumber = |
current PartNumber = 11111-11 |
following-sibling PartNumber = 22222-22 ||
preceding-sibling index = 1 |
current index = 2 |
following-sibling index = 3 |
preceding-sibling PartNumber = 11111-11 |
current PartNumber = 22222-22 |
following-sibling PartNumber = 33333-33 ||
preceding-sibling index = 1 |
current index = 3 |
following-sibling index = 4 |
preceding-sibling PartNumber = 11111-11 |
current PartNumber = 33333-33 |
following-sibling PartNumber = 44444-44 ||
preceding-sibling index = 1 |
current index = 4 |
following-sibling index = |
preceding-sibling PartNumber = 11111-11 |
current PartNumber = 44444-44 |
following-sibling PartNumber = ||
Expected Output:
================
preceding-sibling index = |
current index = 1 |
following-sibling index = 2 |
preceding-sibling PartNumber = |
current PartNumber = 11111-11 |
following-sibling PartNumber = 22222-22 ||
preceding-sibling index = 1 |
current index = 2 |
following-sibling index = 3 |
preceding-sibling PartNumber = 11111-11 |
current PartNumber = 22222-22 |
following-sibling PartNumber = 33333-33 ||
preceding-sibling index = 2 |
current index = 3 |
following-sibling index = 4 |
preceding-sibling PartNumber = 22222-22 |
current PartNumber = 33333-33 |
following-sibling PartNumber = 44444-44 ||
preceding-sibling index = 3 |
current index = 4 |
following-sibling index = |
preceding-sibling PartNumber = 33333-33 |
current PartNumber = 44444-44 |
following-sibling PartNumber = ||