Bug #4246
closed
XSLT variable contains document node with zero-length text node
Category:
XSLT conformance
Applies to branch:
9.9, trunk
Fix Committed on Branch:
9.9, trunk
Fixed in Maintenance Release:
Description
The construct
<xsl:variable name="x">
<xsl:sequence select="()"/>
</xsl:variable>
produces a document node containing a single zero-length text node child. Zero-length text nodes should never occur under the rules for constructing complex content.
Saxon is using the "TextFragment" data structure for this, and in this data structure there is always a text node even if it is empty.
This is probably one of those bugs that has been in the product "for ever".
Reported by Davud Carlisle on xsl-list.
Added two teat cases, variable-0122 and variable-0123, both currently failing.
- Status changed from New to Resolved
- Applies to branch 9.9, trunk added
- Fix Committed on Branch 9.9, trunk added
Patch committed for 9.9 and trunk. The patch to DocumentInstr creates a conventional (LinkedTree) document node rather than a TextFragmentValue in the case where the text is zero-length.
- Status changed from Resolved to Closed
- % Done changed from 0 to 100
- Fixed in Maintenance Release 9.9.1.5 added
Bug fix applied in the Saxon 9.9.1.5 maintenance release.
- Status changed from Closed to In Progress
These new tests are failing when bytecode generation is enabled.
- Status changed from In Progress to Resolved
I've moved the logic that decides whether to create a TextFragmentValue into a static factory method, which is now invoked both by the interpreted and the compiled code. Tests now passing.
- Status changed from Resolved to Closed
- Fixed in Maintenance Release 9.9.1.7 added
- Fixed in Maintenance Release deleted (
9.9.1.5)
Patch applied in the 9.9.1.7 maintenance release.
Please register to edit this issue
Also available in: Atom
PDF