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/>