SAX2 Namespace Support

John Aldridge john.aldridge at informatix.co.uk
Tue Jan 4 18:23:31 GMT 2000


At 18:02 20/12/99 -0500, David Megginson <david at megginson.com> wrote:
   :
>  public void startElement (String ns, String name, 
>                            AttributeList atts)
>    throws SAXException;
   :

I appreciate this is probably a done deal by now, but I prefer:

class QName {
public:
    wstring ns () const;           // http://www.w3c.org/1999/xhtml
    wstring name () const;         // p
    wstring nsPrefix () const;     // html
    wstring prefixedName () const; // html:p

    bool operator== (const QName &rhs) const;
                                   // ns & name both equal
private:
    // Probably just a simple pointer to your internal data structures
};

void startElement (const QName &name, const AttributeList &atts)
throws SAXException;

You can also provide a specialisation for class std::less<QName>, and then
QNames become directly usable with the STL set/map classes.

Hiding the internals lets you use some cleverer comparison techniques, too,
so that, e.g.

    if (qn1 == qn2) ...

can happen faster than doing the various string comparisons.

N.B. the code above is phrased assuming the use of wstring for string data,
because I prefer it, but could readily be adapted to raw wchar_t*, or
SAXChar, or whatever comes out of the other debate)

-- 
Cheers,
John

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