|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Nested DTDs
By "nested DTDs" I assume you mean making use of one DTD's vocabulary with a document that makes use of another DTD's vocabulary. It is possible if the DTDs are so designed. Imagine that you have a "report" DTD in the file report.dtd: <!ELEMENT report (title,paragraph+)> <!ELEMENT title (#PCDATA)> <!ELEMENT paragraph (#PCDATA|emph)*> <!ELEMENT emph (#PCDATA)> And you also have a "person" DTD in the file person.dtd: <!ELEMENT person (firstname, lastname)> <!ELEMENT firstname (#PCDATA)> <!ELEMENT lastname (#PCDATA)> It is easy to make a new DTD that combined the vocabularies in the file combined.dtd: <!ENTITY % report "report.dtd"> <!ENTITY % person "person.dtd"> %report; %person; Ah, you say, but how do I actually use both of these together? How do I allow, for example, a person to be marked up in a paragraph? You can't override the content specification for paragraph so that combined.dtd reads: <!ENTITY % report "report.dtd"> <!ENTITY % person "person.dtd"> <!ELEMENT paragraph (#PCDATA|person|emph)*> %report; <!-- this is an error --> %person; What you *can* do, or rather what the designer of the report DTD can do, is write report.dtd as: <!ELEMENT report (title,paragraph+)> <!ELEMENT title (#PCDATA)> <!ENTITY % paragraph.ext ""> <!ELEMENT paragraph (#PCDATA| %para.ext; emph)*> <!ELEMENT emph (#PCDATA)> This makes the content model of the paragraph element type extensible. Because entity declarations can be overridden (by declaring a new literal value earlier) you can have a combined.dtd: <!ENTITY % report "report.dtd"> <!ENTITY % person "person.dtd"> <!ENTITY % paragraph.ext "person |"> %report; %person; I hope this helps. James xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1 To (un)subscribe, mailto:majordomo@i... the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|
|||||||||

Cart








