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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: Request for Discussion: SAX 1.0 in C++

[ Lists Home | Date Index | Thread Index ]
  • From: Steinar Bang <sb@metis.no>
  • To: xml-dev@ic.ac.uk
  • Date: 21 Dec 1999 09:04:43 +0100

>>>>> John Aldridge <john.aldridge@informatix.co.uk>:

> It seems to me that code like:

> void DocumentHandler::startElement (
>     const std::wstring &name, const AttributeList &atts)
> {
>     if (name == L"Paragraph") ...
> }

> is going to be a whole lot neater than

> void DocumentHandler::startElement (
>     const std::basic_string<SAXChar> &name, const AttributeList &atts)
> {
>     static const SAXChar paraString[] =
>         {'P','a','r','a','g','r','a','p','h',\0'};
>     if (name == paraString) ...
> }

Sure, but how about this, then...?

typedef unsigned short SAXChar;
class SAXString : public basic_string<SAXChar> {
public:
    SAXString(const SAXString& s, size_type pos = 0, size_type n = npos)
	: basic_string<SAXChar>(s,pos,npos) {}
    SAXString(const SAXChar* p, size_type n)
	: basic_string<SAXChar>(p,n) {}
    SAXString(const SAXChar* p)
	: basic_string<SAXChar>(p) {}
    SAXString(size_type n, SAXChar c)
	: basic_string<SAXChar>(n,c) {}
    SAXString(const char* p)
	: basic_string<SAXChar>(p)
    {
	// do UTF-8 to UTF-16 decoding here
    }
    
};

and then:

void DocumentHandler::startElement (
     const SAXString& name, const AttributeList& atts)
{
     if (name == SAXString("Paragraph")) ...
}

or maybe just

void DocumentHandler::startElement (
     const SAXString& name, const AttributeList& atts)
{
     if (name == "Paragraph") ...
}

since the appropriate copy constructor is available.

Does it matter if SAXString doesn't have a virtual destructor if it
doesn't add any extra state to basic_string<SAXChar> and has no
virtual functions?

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@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@ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)






 

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

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