Attribute parsing time (was Re: XML parsing performance)

David Megginson david at
Thu Oct 28 13:45:06 BST 1999

"Takuki Kamiya" <kamiya at> writes:

> Many parsers process "attribute XML without DTD" files in about 10 percent
> less time compared to the time for "element XML without DTD" in my experience.

That might be misleading.  

In SAX-based parsers, for example, elements and their character-data
content are active -- that is, every element and every chunk of
characters is reported to the client DocumentHandler automatically.
Attributes, on the other hand, are passive -- the client explicitly
has to iterate through the AttributeList to see them -- and they might
even be implemented in a lazy fashion (the values might not be
unescaped, for example).

If you're timing parsers with the SAX interface (or something similar)
and an empty DocumentHandler, all of that could easily account for the
10% difference.  For a more fair comparison, try something like this
in your DocumentHandler:

  public void startElement (String name, AttributeList atts)
    int nAtts = atts.getLength();
    for (int i = 0; i < nAtts; i++) {
      String name = atts.getName(i);
      String value = atts.getValue(i);

Now the application has touched every attribute, just like it touches
every element.

All the best,


David Megginson                 david at

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 unsubscribe, mailto:majordomo at the following message;
unsubscribe 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