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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] SAX and parallel processing

[ Lists Home | Date Index | Thread Index ]
  • To: Uche Ogbuji <Uche.Ogbuji@fourthought.com>
  • Subject: Re: [xml-dev] SAX and parallel processing
  • From: Alan Gutierrez <alan-xml-dev@engrm.com>
  • Date: Sat, 1 Jan 2005 15:47:04 -0500
  • Cc: Bob Foster <bob@objfac.com>, David Megginson <david.megginson@gmail.com>, xml-dev@lists.xml.org
  • In-reply-to: <1104611594.3038.153.camel@borgia>
  • Mail-followup-to: Uche Ogbuji <Uche.Ogbuji@fourthought.com>,Bob Foster <bob@objfac.com>,David Megginson <david.megginson@gmail.com>, xml-dev@lists.xml.org
  • References: <200412310131.52268.miles@milessabin.com> <1104460276.3038.23.camel@borgia> <41D4CC8C.1080200@objfac.com> <1104465543.3038.28.camel@borgia> <20041231165744.GA20756@maribor.izzy.net> <75cb920c04123110151af471f9@mail.gmail.com> <41D5DAD0.7000909@objfac.com> <20041231234449.GA21911@maribor.izzy.net> <41D5F0D0.60501@objfac.com> <1104611594.3038.153.camel@borgia>
  • User-agent: Mutt/1.4.1i

* Uche Ogbuji <Uche.Ogbuji@fourthought.com> [2005-01-01 15:33]:
> On Fri, 2004-12-31 at 16:37 -0800, Bob Foster wrote:
> > Right. In order to process a SAX stream in parallel you have to copy the 
> > data in the stream, you can't just "forward" the events. You also have 
> > to instantiate a context for each event, including at least the 
> > namespaces in scope, the Location info. I didn't mean to imply this 
> > would be excessively expensive, just not as lightweight as serially 
> > processed SAX.
> 
> Maybe this is where my perspective, so surprising to so many here, comes
> from.  In Python SAX, all event objects are dissociated from the driver.
> 
> I must say I think it somewhat vindicates the Python approach that it so
> easily extends the framework to advanced implementation strategies.
> 
> I had forgotten this about the original SAX, and I must say it makes for
> a lot more of an "assembler-level" view than SAX as I'm used to using
> it.

    In SAX Strategy, the events are assicated with the driver, more
    or less, until a need for an immutable copy of the data arrises.

    As I noted, before about Characters, also Attributes, a resuable
    object is used, and Characters indexes into the parse buffer,
    but if you need to keep a copy it's like.

    Characters characters = (Characters) event.getCharacters()
                                              .getImmutable();

    Or a more generic.

    Lexeme lexeme = event.getLexeme().getImmutable();

    SAX raw is basically an API for connecting handlers. A few more
    gew-gaws, and the obverer/event pattern is much easier to
    impelment.

--
Alan Gutierrez - alan@engrm.com




 

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

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