Parser question... (DTD pre-parsng)

Michael Kay M.H.Kay at eng.icl.co.uk
Wed Jul 15 12:00:04 BST 1998


Kim Covil <kimc at ned.dem.csiro.au> wrote
>
>...I have been wondering whether there are any
>tools out there that will 'cache' the parsing of a DTD...
As all
>our resources use the same DTD, each time a view is created
the
>xml file is parsed... the DTD is referenced... the DTD is
parsed
>and then the xml is validated...
>
A very interesting question. I had the same thought about a
related problem: the cost of repeated parsing and validation
of the same XML document instance.  I did a few experiments
to try and devise a format for "pre-parsed XML" that would
be faster to read than the original. My experiments failed,
mainly I think because most of the formats I tried used a
greater number of bytes than the original, and the parsing
cost is dominated by the "read next byte" cost.

For reference, the three formats I played with were:
- a file representing a sequence of SAX events
- a Java serialisation of this sequence
- a variant of James Clark's "canonical XML" (with tricks
such as minimized end tags)

I came to the conclusion that the last of these could give a
slight saving but the gain isn't worth the pain.

The only practical way I found of cutting out repeated work
was to remove the DTD reference once I know the document is
valid. With very few exceptions (e.g. white space handling,
attribute defaults) the presence of a DTD makes no
difference to the processing of a valid document, other than
to add to its cost. And if these features (white space,
default attributes) are important, you can apply them to the
instance in a preprocessing stage.

Mike Kay


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