SAX/C++: First interface draft
Steinar Bang
sb at metis.no
Mon Dec 6 09:06:35 GMT 1999
>>>>> Steinar Bang <sb at metis.no>:
>>>>> James Clark <jjc at jclark.com>:
>> - Would it be better to typedef SAXString to the Standard C++ string
>> class (ie std::basic_string<SAXChar>)?
> An argument for using
> typdef const SAXChar* SAXString;
> is that you get late construction of the basic_string<>, ie. you don't
> create it until you have to (eg. when using it to do a lookup in an
> STL map<>).
After thinking over the weekend, I'm changing my vote on this issue.
I think the convenience of using basic_string<> way outweighs the
cost advantages of lazy conversion, since in most cases the first
thing that would be done in the DocumentHandler (or whereever) would
be to create a basic_string<> for the appropriate character size
anyway.
But the UTF-16 string should not be a straight typedef. We should
derive from basic_string<SAXChar> to get a char* constructor that
would take a UTF-8-encoded string. This is for ease of use with
character constants.
Hm... we may also need an operator<<() for byte streams, that would do
UTF-8 encoding...? (fewer implementations have templated streams than
have basic_string<>, and we may want to use a byte stream rather than
a wide stream for I/O anyway.)
that would make the SAX.h file something like this:
Here's SAX.h:
#ifndef __SAX_HXX
#define __SAX_HXX
// Forward declarations of std::istream
#include <iosfwd>
namespace SAX_UTF8 {
typedef char SAXChar;
typedef std::string SAXString;
#include "SAXDecl.h"
}
namespace SAX_UTF16 {
typedef unsigned short SAXChar;
class SAXString : public std::basic_string<SAXChar> {
public:
SAXString(const char* utf8);
};
ostream& operator::<<(ostream&,const SAXString&);
#include "SAXDecl.h"
}
#endif
..or something...
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