Q: SW for parsing DTD's

Ron Bourret rbourret at dvs1.informatik.tu-darmstadt.de
Mon May 25 14:23:38 BST 1998

Stefan Mintert wrote:

> For the project I'm currently working on, I need to parse DTD's and query
> information like this:
> - which elements are valid in a given context?
> - which elements can contain an element of a certain type?
> Now I'm looking for software that does the parsing for me (Java classe are
> preferred) and provides a high-level interface.

MSXML returns DTD information in the form of a tree of XML-Data elements.  This 
will save you from parsing the DTD, but you will need to traverse this tree or 
build an additional tree structure on top of it to answer the questions you 

There was a comment earlier on this list that MSXML cannot return information 
from external DTDs.  I haven't yet found where this is true, but I don't access 
schema information in all possible ways -- I just call tree.getDTD().getSchema() 
to return the root of the XML-Data tree.

XML-Data is probably richer than you need.  To explore the basic structure of a 
DTD, I use the following XML-Data elements and attributes (Simon -- here's a 
starting point):

Element Tag   Relevent part of the content model    Relevant attributes
-----------   ----------------------------------    --------------------
schema        elementType*                          id

elementType   ((element | group)* | empty | any |   id
               string | mixed)?, attribute*

element       essentially EMPTY                     type, occurs

group         (element | group)+                    occurs
                                                    groupOrder (SEQ and OR only)

empty         EMPTY                                 --

any           EMPTY                                 --

string        EMPTY                                 --

mixed         element+                              --

attribute     ???????                               --

-- Ron Bourret

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

More information about the Xml-dev mailing list