Jabber takes the approach of making the entire stream a single XML document:
C: <?xml version='1.0'?> <stream:stream to='example.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> S: <?xml version='1.0'?> <stream:stream from='example.com' id='someid' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> ... encryption, authentication, and resource binding ... C: <message from='juliet@example.com' to='romeo@example.net' xml:lang='en'> C: <body>Art thou not Romeo, and a Montague?</body> C: </message> S: <message from='romeo@example.net' to='juliet@example.com' xml:lang='en'> S: <body>Neither, fair saint, if either thee dislike.</body> S: </message> C: </stream:stream> S: </stream:stream>
The netconf concept for SSH was to make each operation a standalone XML document to avoid the artificial opening and closing elements, but either way, the parser must feed events to the application before the input stream is complete.
I think the Jabber folks have considerable experience in this area... what do they do?
#g --
At 15:19 05/12/03 -0500, Phil Shafer wrote:Juergen Schoenwaelder writes: >Does everybody feel comfortable to be required to feed the protocol >message directly into an XML parser using a SAX like interface in >order to detect message boundaries?
We've had problems doing this esp in java.
>Furthermore, I believe that declarations add value in the long run >and we should not forbit declarations of PIs.
Declarations make an xml parser a couple of orders of magnitude harder to write and at least a couple of orders of magnitude larger. Given the diminishing value and use of DTDs, I don't see the win.
If you do need the features of DTDs, you can preprocess your document on an external machine and pass the expanded DTD-less data to the netconf server.
Thanks, Phil
-- to unsubscribe send a message to netconf-request@ops.ietf.org with the word 'unsubscribe' in a single line as the message text body. archive: <http://ops.ietf.org/lists/netconf/>
------------ Graham Klyne For email: http://www.ninebynine.org/#Contact
-- to unsubscribe send a message to netconf-request@ops.ietf.org with the word 'unsubscribe' in a single line as the message text body. archive: <http://ops.ietf.org/lists/netconf/>