[
Lists Home |
Date Index |
Thread Index
]
- From: Allan Kelly 59048 <allan.kelly@reuters.com>
- To: xml-dev@ic.ac.uk
- Date: Fri, 10 Dec 1999 13:38:21 +0000 (GMT)
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@fxtech.com
>
>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)
-----------------------------------------------------------------
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@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)
|