Lists Home |
Date Index |
- From: firstname.lastname@example.org
- To: Eric Bohlman <email@example.com>
- Date: Thu, 10 Aug 2000 00:16:58 -0400
Eric Bohlman wrote -
> On Wed, 9 Aug 2000 firstname.lastname@example.org wrote:
> > Even then it wouldn't really validate against the original DTD - even if
> > DTD used the prefix 'xxx' - because there is no top-level element <book>
> > called for in the DTD.
> > Maybe this is what should happen when a foreign xml structure is
> > if you are validating. The processor locates the DTD of the inclusion,
> > builds its syntax starting, not at the start of the DTD, but at the
> > elements(s). Thus, larger contexts would be thrown away, and only those
> > declarations in-scope for the elements of interest would be retained in
> > final syntax. While we're doing this, we might as well have the DTD
> > processor implicitly add on the new prefix(s).
> I think you're forgetting that a document type *definition* does *not*
> specify a document's root element; it's a document type *declaration* that
> does. Of course, the declaration needs to specify an element defined in
> the definition, but that's pretty much it. So, for example,
> <p>This is a paragraph</p>
> *is* valid according to the XHTML DTD *if* you tell the processor to treat
> <p> as the root element. Nothing in the XHTML DTD demands that <html> be
> the root element; that knowledge comes from outside the DTD itself.
It depends on what you mean. If you are validating, the root element must
match the name declared in the DTD. From the XML Rec, section 2.8:
"Validity Constraint: Root Element Type
The Name in the document type declaration must match the element type of the
So a document type declaration **does** in fact require a specific named
root element. But if you are including an external subset (say, the xhtml
declarations), it's true that the external subset doesn't have to declare a
root. If that's what you meant, your point is well taken. Thanks.