parser asynch input (Was: SAX/C++: First interface draft)

Niels Möller nisse at
Mon Dec 6 09:54:38 GMT 1999

Steinar Bang <sb at> writes:

> I would like to add operations that can be used to "push" data to the
> parser asynchronously:

I also think this is important (and it's a sadly missing feature of
the IBM's xml4c parser, which provides another SAX-like C++ API).

But is there any reason not to use the same InputSource abstraction
for the fragment blocks? Say, something like

  class Parser
    virtual void setLocale (const char *) = 0;
    virtual void setEntityResolver (EntityResolver &resolver) = 0;
    virtual void setDTDHandler (DTDHandler &handler) = 0;
    virtual void setDocumentHandler (DocumentHandler &handler) = 0;
    virtual void setErrorHandler (ErrorHandler &handler) = 0;
    virtual void parse (SAXString systemId) = 0;
    virtual void parse (const InputSource &input) = 0;
!   virtual void parseFragment (const InputSource &input) = 0;
!   virtual void parseEnd() = 0;
    void operator delete (void *);

The idea is that a document is the catenation of one or more fragments
(e.g. blocks of data that are read from a socket).

parse(source) would be equivalent to parseFragment(source);


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