[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: nestable C/C++ parser
I find this debate quiet interesting and would like to share my experience, maybe this should in the a "object serialisation thread" but here goes.... I've got some code (sorry, company's not mine, can't publish) which started life a generic container, when we came to serialise the container XML was the obvious candidate, because, as has been said before why invent a news format? Anyway, what we've currently got I refer to as XML-like because - I'm not confident of my DTD writing - Each serialisation forms a message, the message is really an XML-fragment so is missing pre-log and post-log - root elements must have an attribute "name" I have a plugable factory class. Each object knows how to stream itself in and out. The input stream is pipped into the factory, as long as the messages/XML-fragments are for classes which have been plugged into the factory everything is fine, the factory produces a container which holds items from the stream and can be accessed using operator[] This works quiet well for passing messages between co-operating processes. The code is actually quiet small and efficient. Which makes me wonder why I need to bother with expat, SAX and DOM? The short answer is I don't because we have a tailored solution to our problem. Allan >> I think your original request got lost in a side track. If is very possible >> to do what you want with expat. The trick is the use of the XML_SetUserData >> and the userdata argument. Basically, the trick is to create a base class >> that has methods that you want to change the behavior of (typically, >> StartElement and EndElement). Create derived classes for each different >> behavior that you want. Call XML_SetUserData to the initial handler object. >> In your StartElement callback, cast the userdata argument up to a pointer to >> your base class and call its startElement virtual method. If you want to >> change the handler, make another call to XML_SetUserData. > >The problem here is it requires 3 callbacks to parse a single element >and restore the state. I'd like a cleaner solution. > >-- >Paul Miller - stele@f... > >xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... >Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1 >To unsubscribe, mailto:majordomo@i... the following message; >unsubscribe xml-dev >To subscribe to the digests, mailto:majordomo@i... the following message; >subscribe xml-dev-digest >List coordinator, Henry Rzepa (mailto:rzepa@i...) ----------------------------------------------------------------- Visit our Internet site at http://www.reuters.com Any views expressed in this message are those of the individual sender, except where the sender specifically states them to be the views of Reuters Ltd. xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1 To unsubscribe, mailto:majordomo@i... the following message; unsubscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|