C++ SAX Question

david at megginson.com david at megginson.com
Wed Oct 21 15:47:38 BST 1998


RJA at dip.co.uk writes:

 > I'm currently working on some C++ SAX definitions has was wondering if I
 > should be using references for strings or not.    

Yes, you should certainly be using references for strings (const
references, actually); you should also use wstring rather than string,
since XML requires Unicode support.  I'm not a C++ guru, but I'd
suggest starting with something like this for DocumentHandler:

xml/sax/DocumentHandler:

  #ifndef __XML_SAX_DOCUMENTHANDLER
  #define __XML_SAX_DOCUMENTHANDLER 1

  #include <string>
  #include <wchar.h>

  #include "Locator"
  #include "AttributeList"

  namespace org_xml_sax {

  class SAXDocumentHandler
  {
  public:
    virtual void setDocumentLocator (const Locator &locator) = 0;
    virtual void startDocument () = 0;
    virtual void endDocument () = 0;
    virtual void startElement (const wstring &name,
			       const AttributeList &atts) = 0;
    virtual void endElement (const wstring &name) = 0;
    virtual void characters (const wchar_t ch[], 
			     size_t start, 
			     size_t length) = 0;
    virtual void ignorableWhitespace (const wchar_t ch[],
				      size_t start,
				      size_t length) = 0;
    virtual void processingInstruction (const wstring &name,
					const wstring &target) = 0;
  };

  }

  #endif __XML_SAX_DOCUMENTHANDLER

As for comments, you probably want to put non-SAX stuff in a separate
or an extended interface so that other people can use your SAX
interface as well, i.e.

  #include <xml/sax/DocumentHandler>

  namespace rja_sax {

  class RJADocumentHandler : public org_xml_sax::DocumentHandler
  {
  public:
    virtual void comment (const wstring &data) = 0;
  };

  }

All the best, and thanks for taking the interest in building a SAX C++ 
interface.


David

-- 
David Megginson                 david at megginson.com
           http://www.megginson.com/

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/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe 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