[xsl] How to store a sequence into an element ... and maintain the sequence inside the element?

Subject: [xsl] How to store a sequence into an element ... and maintain the sequence inside the element?
From: "Dr. Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 19 Jul 2020 19:13:55 -0000
Hi Folks,

I created a sequence (1, 2, 3) as follows:

<xsl:variable name="list" select="(1, 2, 3)" as="xs:integer*" />

I checked that $list contains 3 integers:

<xsl:message>count($list) = <xsl:value-of
select="count($list)"/></xsl:message>

Sure enough, the output shows that there are 3 items:

count($list) = 3

Next, I want to store that sequence of integers in an element, along with
other elements:

<xsl:variable name="document" as="element(Document)">
    <Document>
        <Greeting>My List</Greeting>
        <List><xsl:sequence select="$list" /></List>
        <Ending>The End</Ending>
    </Document>
</xsl:variable>

Does the <List> element contain a sequence of 3 integers:

<xsl:message>count($document/List) = <xsl:value-of
select="count($document/List)"/></xsl:message>

Yikes! No it doesn't:

count($document/List) = 1

How to do what I want to do? That is, how to store the sequence of integers in
an element, along with other elements, such that I can pull the sequence out
of the element and immediately operate on the sequence? If that can't be done,
then what's the right way to do what I want to do?

Here is my XSLT program:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns:xs="http://www.w3.org/2001/XMLSchema";
    version="3.0">

    <xsl:template match="/">
        <xsl:variable name="list" select="(1, 2, 3)" as="xs:integer*" />
        <xsl:message>count($list) = <xsl:value-of
select="count($list)"/></xsl:message>
        <xsl:variable name="document" as="element(Document)">
            <Document>
                <Greeting>My List</Greeting>
                <List><xsl:sequence select="$list" /></List>
                <Ending>The End</Ending>
            </Document>
        </xsl:variable>
        <xsl:message>count($document/List) = <xsl:value-of
select="count($document/List)"/></xsl:message>
    </xsl:template>
</xsl:stylesheet>

/Roger

Current Thread