OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Define a root in a DTD



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.