RE: SAX drivers bug ... or feature !

Ronald Bourret (rbourret@ito.tu-darmstadt.de)
Wed, 18 Nov 1998 16:41:41 +0100


Patrice Bonhomme wrote:

> I think there is a little problem with AttributeList implementation
within
> some of the SAX drivers (i have tested the following code with my SXP SAX
> driver, the XML4J SAX driver and the AELFRED SAX driver. We are all
giving the
> same results (gosh...).
>
> This code should write the size of each AttributeList that has been read
by
> the parser when it reached the end of the Document. But it always prints
the
> size of the last AtributeList found.
>
> [code snipped]

It is a good bet that all the parsers are doing what I have done in my
parsers: used a single instance of an AttributeList object, then cleared it
and reused it for each call to startElement. Thus, all the references in
your Vector point to the same object.

This is specifically allowed by the SAX spec. The documentation for
AttributeList states, "The instance provided will return valid results only
during the scope of the startElement invocation (to save it for future use,
the application must make a copy: the AttributeListImpl helper class
provides a convenient constructor for doing so)."

-- Ron Bourret