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

Niels Möller nisse at lysator.liu.se
Mon Dec 6 09:54:38 GMT 1999


Steinar Bang <sb at metis.no> 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
  {
  public:
    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;
  private:
    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);
parseEnd().

/Niels

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list