|
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 |