Competition: fast XML parser for charset labelling

Chris Lilley chris at
Sat Apr 10 23:58:33 BST 1999

Competition, for all those XML coders with <i>copious free time</i>:

Write an incredibly small and fast special-purpose XML parser whose
purpose is to locate  and read the xml declaration; don't bother reading
any more of the file once this is found.
It should however cope with any well-formed XML instance.

Deduce, from the encoding declaration, what the charset label should be
(the same value, if the encoding declaration is present). If there is no
encoding declaration, apply the rules in the XML 1.0 Recommendation to
determine whether UTF-8 or UTF-16 was used. Thus, there will *always* be
a charset label at this point.

Cache the result in a persistent way; for example, in a file called

Integrate this into the Apache mod_mime (or other suitable place) so
that, for all resources which mod_mime declares to be of type text/xml,
the cached result is automatically used to output a MIME type header

Content-type: text/xml; charset="xxx"

Where xxx is the cached result, provided the cached result exists and is
not older than the datestamp of the xml file; otherwise, refresh the
cached result.

A special prize bundle of great rarity and desirability will be sent to
the lucky winner.

MURATA Makoto wrote:
> Chris Lilley wrote:
> > The best way to ensure this is to
> > treat the XML encoding declaration as the prmary metadata resource and
> > to programatically derive the charset parameter from this;  greater
> If it is done when the document is stored in the WWW server, that is
> superb.

Once this exists, and is well tested, the next step will be to get it
into the base distribution and installed by default. 


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list