I have a external DTD and I wanted to override an element declaration using an internal DTD. When I try to open the XML using IE or XML Notepad I get an error that the element is already declared. DTD <!ELEMENT catalog (book*)> <!ELEMENT book (title,isbn,price)> <!ELEMENT title (#PCDATA)> <!ELEMENT isbn (#PCDATA)> <!ELEMENT price (#PCDATA)> XML <?xml version="1.0"?> <!DOCTYPE catalog SYSTEM "catalog.dtd" [ <!ELEMENT book (title,price)> ]> <catalog> <book> <title> Good Book</title> <price> 100.00 </price> </book> </catalog> Error (for the declaration in the DTD) The element 'book' is already declared. <!ELEMENT book (title,isbn,price)> ----------^ Is this the normal behavior that an element declaration cannot be overridden Thanks
posted 14 years ago
Hi, Yes, that is the normal behavior. If your DTD declaration also use an external DTD declaration, only ENTITY and ATTLIST declaration may be overridden.