[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Define a root in a DTD
- From: "K. Ari Krupnikov" <ari@cogsci.ed.ac.uk>
- To: xml-dev@lists.xml.org
- Date: Tue, 26 Jun 2001 18:46:04 +0100
Peter Flynn wrote:
>
> At Tuesday, 26 June 2001, you wrote:
>
> >Hello,
> >
> > I have few elements in a DTD and I want to explicity declare
> > one as the root to
> > be used in XML, not the others, is there a way for that ?
Yes. <!DOCTYPE top-level-element-name ...
> You don't need to. The root element is always the one that
> does not appear in the content model of any other element
> type. ll other elements must get mentioned somewhere else,
> but the root element never does. eg
>
> <!ELEMENT name (#PCDATA)>
> <!ELEMENT phone (#PCDATA)>
> <!ELEMENT email (#PCDATA)>
> <!ELEMENT person (name,phone,email)>
> <!ELEMENT directory (person+)>
>
> "directory" will be deduced as the root element because it
> does not appear in the content model of any other element
> type.
There is no root element in a DTD (or in Schema); any element can be
used as the document element. What this allows is partitioning documents
into smaller pieces. Your directory might be huge, and I might not need
all of it. You might want to send me just one person's details, but
still let me validate the document. So instead of
<!DOCTYPE directory SYSTEM "http://you.com/directory.dtd">
you would say
<!DOCTYPE person SYSTEM "http://you.com/directory.dtd">
Ari.