[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Referring to external DTD's
RamMohan wrote, in HTML format (naughty! use plain text): > I want to refer an external DTD in the current DTD. > [...] > <!ELEMENT secondroot( ****Here I want the firstroot of > the first.dtd****) The example you gave is problematic because the text of the included document, except for the text declaration at the top, is going to go in there, and you cannot have an <!ELEMENT> declaration inside another <!ELEMENT> declaration. Also, you have <!DOCTYPE> in your DTD. <!DOCTYPE> is something that goes in an XML document entity, not in a DTD. Do this instead: first.dtd: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT firstroot (child1, child2) > second.dtd: <?xml version="1.0" encoding="utf-8"?> <!ENTITY % firstDTD SYSTEM "first.dtd"> %firstDTD; <!ELEMENT secondroot( firstroot )> doc.xml: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE secondroot SYSTEM "second.dtd" [ <!ELEMENT child1 (#PCDATA)> <!ELEMENT child2 (#PCDATA)> ]> <secondroot> <firstroot> <child1/><child2/> </firstroot> </secondroot> Note that since child1 and child2 were referenced in the document, I had to declare them to maintain validity. I put these declarations in the internal subset, but I could have just as easily put them in either of the DTD files. - Mike ____________________________________________________________________ Mike J. Brown, software engineer at My XML/XSL resources: webb.net in Denver, Colorado, USA http://skew.org/xml/
|
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
|