Lists Home |
Date Index |
- From: "Michael Kay" <M.H.Kay@eng.icl.co.uk>
- To: <email@example.com>
- Date: Wed, 15 Jul 1998 11:02:34 +0100
Kim Covil <firstname.lastname@example.org> wrote
>...I have been wondering whether there are any
>tools out there that will 'cache' the parsing of a DTD...
>our resources use the same DTD, each time a view is created
>xml file is parsed... the DTD is referenced... the DTD is
>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.
xml-dev: A list for W3C XML Developers. To post, mailto:email@example.com
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:firstname.lastname@example.org the following message;
To subscribe to the digests, mailto:email@example.com the following message;
List coordinator, Henry Rzepa (mailto:firstname.lastname@example.org)