> how do you go about making it explicit
if you want it really explict you could use
<xsl:variable as="document-node()">
<xsl:document>
... stuff
but note that the main (perhaps) difference between
<xsl:variable name="x">
<xsl:sequence select="foo"/>
</xsl:sequence>
and
<xsl:variable name="x" as="element()*">
<xsl:sequence select="foo"/>
</xsl:sequence>
isn't so much the implict document node as the implict copying. in the
second case $x references foo nodes in their original trees, whereas in
the first case, the nodes are _copied_ into the temporary tree so it's
the same as if you had used copy-of rather than sequence, so you get new
nodes with new identities, and unless MK is kindly optimising stuff
away, new memory usage.