[xsl] empty sequence as complex content

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"

 <xsl:variable name="x">
  <xsl:sequence select="()"/>

 <xsl:template match="/">
  <xsl:message select="'C1:',
               $x instance of xs:string,
  <xsl:message select="'C2:',
               $x instance of document-node(),
               $x/node() instance of text(),


$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

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


Current Thread