Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.0
-
None
-
Security Level: No security risk; visible to anyone (Ordinary problems in Xalan projects. Anybody can view the issue.)
-
None
-
Operating System: All
Platform: All
-
PatchAvailable
Description
Hi,
In using xalan I ran into the following issue:
in evaluating a match condition the conditions pertaining to attributes are not
tested completely before evaluating the condition following an or clause.
Example:
<xsl:template match='@*[.!='']|node()'>
<xsl:copy>
<xsl:apply-templates select='@*'/>
</xsl:copy>
</xsl:template>
Input:
<elemen1 a='1' b='' c='3'/>
<element2/>
Output From XALAN:
<elemen1 a='1' >
<element2/>
The bug is the fact the non empty attribute followed by the empty attribute was
not matched. It was somehow skipped.
I have tried this in xalan 1.2 C and xalan2 and xala 2_4 and have seem similar
behavior. In xalan 1.2 the behavior was worse since the non empty attribute
was copied to the subsequent element.
Atleast the xalan 2 and 2_4 versions do not copy the attributes to next node.
But they are still missing the non empty attribute occuring after the empty
attribute.
In SAXON the output is correct :
<elemen1 a='1' c='3'/>
<element2/>
thanks in advance for fixing this.
ds