SAX/C++: C++-specific design principles

James Clark jjc at
Fri Dec 3 04:49:46 GMT 1999

David Megginson wrote:

> 2. Pointers never change ownership -- if a Parser (for example) wants
>    to own an InputSource, it needs to make its own copy.  The app has
>    to free everything that it allocates, and the SAX driver, likewise.

That's problematic for EntityResolve::resolveEntity; that requires that
ownership of an InputSource be transferred from to the caller from the

This could be avoided by doing:

virtual const InputSource *
resolveEntity(const char *publicId,
              const char *systemId);

instead of:

virtual void
resolveEntity(const char *publicId,
              const char *systemId,
              InputSource &inputSource);


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