Brian,
At 07:03 PM 3/3/2003, you wrote:
Remember that the transformation works on a
parsed XML input tree--not the raw document. So any child of the root node
that isn't an element is removed, and if there is more than one child
element of the root node, the document is rejected by the parser as being
malformed XML.
That's only partly so: IIUC the existence of the root node (as
distinguished from the document element or "root element", which you
shouldn't call it in an XSLT context ;-) is in part so that non-element
siblings of the document element (such as, for example, stylesheet PIs,
that commonly live at the top of the document before the document element)
have a place in the model. They are not removed by the parser.
Given the root node / as context, <xsl:copy-of select="*"/> fails to copy
these nodes (comments and PIs) since it only selects elements (of which,
you are correct, there will be exactly one). But select="node()" picks up
these other nodes. <xsl:copy-of select="*"/> will of course pick up PIs and
comments that are *inside* the document element (since it's a deep copy),
which may be part of the confusion.
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list