OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: SAX drivers bug ... or feature !

[ Lists Home | Date Index | Thread Index ]
  • From: Tyler Baker <tyler@infinet.com>
  • To: Toivo Lainevool <tlainevool@yahoo.com>
  • Date: Sat, 21 Nov 1998 16:46:40 -0500

Toivo Lainevool wrote:

> ---Ronald Bourret <rbourret@ito.tu-darmstadt.de> wrote:
> >
> > 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)."
>
> Instead of clearing and reusing the the AttributeList object, wouldn't
> it be better to create a new attribute list object?  If the old
> Attribute list isn't being referenced, it will be garbage collectible.
> If the old Attribute list is being reference, it won't be changed out
> from under the client.  This way of doing it seems to offer the best
> of both worlds.

Well performance is an issue and calling new() for each attribute list creation
would incur significant overhead regardless of whether you are using Java or C++
or calling malloc in C.  You can consider the attribute list in SAX to be fail
fast, just like the java.util.Iterator implementations in the new Collections
framework.

Tyler


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS