Subject: [xsl] empty sequence as complex content From: "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 4 Jul 2019 17:01:33 -0000 |
The following stylesheet generates a variable x using a sequence constructor that evaluates to an empty sequence... <xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xsl:variable name="x"> <xsl:sequence select="()"/> </xsl:variable> <xsl:template match="/"> <xsl:message select="'C1:', $x instance of xs:string, string-length($x) "/> <xsl:message select="'C2:', $x instance of document-node(), count($x/node()), $x/node() instance of text(), $x/text()/string-length(.) "/> </xsl:template> </xsl:stylesheet> $x is a variable that is a document node with a text node child the text node having zero length. I just read https://www.w3.org/TR/xslt-30/#constructing-complex-content 10 times but still don't see where the text node came from having the xsl:sequence there means it avoids the XSLT 1 special case returning a string, and not having an as= attribute means there is an implicit document node generated, but I would expected that $x was just a document node with no children, but saxon (Saxon-HE 9.9.0.1J) produces $ saxon9 ev.xsl ev.xsl C1: false 0 C2: true 1 true 0 <?xml version="1.0" encoding="UTF-8"?> If someone could point me at the right bit of the spec I think I'm missing a step somewhere... David
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSL-List Guidelines, Tommie Usdin btusdin | Thread | Re: [xsl] empty sequence as complex, Michael Kay mike@xxx |
[xsl] XSL-List Guidelines, Tommie Usdin btusdin | Date | Re: [xsl] empty sequence as complex, Michael Kay mike@xxx |
Month |