recursing root element

Ronald Bourret rbourret at
Fri Feb 26 14:11:52 GMT 1999

Frank Boumphrey wrote:

> is
> <xdoc><xdoc>some text</xdoc></xdoc>
> i.e. a recursing root element, a legal XML document,
> >From my reading of section 2.1 it isn't but the MSXML parser lets it 
> so I'm probabably wrong.

It is well-formed and therefore legal. With a DTD of:

<!DOCTYPE xdoc [
   <!ELEMENT xdoc (#PCDATA, xdoc)*>

it would also be valid.

Note that there is a difference between a root element and a root element 
type.  XML documents have both.  The root element is the outermost element 
and is discussed in section 2.1.  In this case, it is the outer <xdoc> 
element.  The root element type is the type of the root element and is 
declared in a DOCTYPE statement; it is discussed in section 2.8.  Your 
example did not specify a root element type; the DOCTYPE statement I added 
declares it to be xdoc.  There is nothing to stop elements with the root 
element type from occurring elsewhere in the document.

-- Ron Bourret

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list