v1.1 RC1 changes to content of remote-stream-error

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@849 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Ian Paterson 2007-05-19 11:35:13 +00:00
parent 70dbf2372c
commit b43886ea36
1 changed files with 27 additions and 16 deletions

View File

@ -25,6 +25,12 @@
<url>http://www.xmpp.org/schemas/xbosh.xsd</url>
</schemaloc>
&ianpaterson;
<revision>
<version>1.1</version>
<date>2007-05-30</date>
<initials>ip</initials>
<remark><p>remote-stream-error includes full &lt;stream:error/&gt; element (not just its content) and optional stanzas</p></remark>
</revision>
<revision>
<version>1.0</version>
<date>2007-02-28</date>
@ -40,8 +46,8 @@
<ul>
<li>A complete &lt;stream:features/&gt; element (in which case the BOSH &lt;body/&gt; element MUST include the namespace xmlns:stream='http://etherx.jabber.org/streams').</li>
<li>A complete element used for SASL negotiation and qualified by the 'urn:ietf:params:xml:ns:xmpp-sasl' namespace.</li>
<li>XML elements extracted from a &lt;stream:error/&gt; element and wrapped in a BOSH &lt;body/&gt; element that features the 'remote-stream-error' terminal error condition. Each such element MUST be qualified either by the namespace 'urn:ietf:params:xml:ns:xmpp-streams' or by an application-specific namespace.</li>
<li>One or more complete &lt;message/&gt;, &lt;presence/&gt;, and/or &lt;iq/&gt; elements qualified by the 'jabber:client' namespace.</li>
<li>A &lt;stream:error/&gt; element (in which case the BOSH &lt;body/&gt; element MUST include the namespace xmlns:stream='http://etherx.jabber.org/streams' and it MUST feature the 'remote-stream-error' terminal error condition), preceded by zero or more complete &lt;message/&gt;, &lt;presence/&gt;, and/or &lt;iq/&gt; elements qualified by the 'jabber:client' namespace.</li>
</ul>
<p>Note: Many existing XMPP-specific implementations of BOSH clients and connection managers do not specify the namespace of &lt;message/&gt;, &lt;presence/&gt;, or &lt;iq/&gt; elements, since that allows them to forward stanzas without modification (the XMPP &lt;stream:stream/&gt; wrapper element used with TCP typically sets the default namespace to 'jabber:client'). They instead simply assume that the full content of the 'jabber:client' namespace is a subset of the 'http://jabber.org/protocol/httpbind' namespace.</p>
<p>Note: Inclusion of TLS negotiation elements is allowed but is NOT RECOMMENDED. The definition of how TLS might be implemented over BOSH is currently beyond the scope of this document.</p>
@ -65,8 +71,7 @@ Content-Length: 104
xml:lang='en'
xmpp:version='1.0'
xmlns='http://jabber.org/protocol/httpbind'
xmlns:xmpp='urn:xmpp:xbosh'
xmlns:stream='http://etherx.jabber.org/streams'/>]]></example>
xmlns:xmpp='urn:xmpp:xbosh'/>]]></example>
<p>Note: Unlike the protocol defined in &xep0025;, an opening &lt;stream:stream&gt; tag is not sent to the connection manager (since BOSH &lt;body/&gt; elements MUST not contain partial XML elements). Any XML streams between the connection manager and an XMPP server are the responsibility of the connection manager (and beyond the scope of this document).</p>
</section1>
<section1 topic="Session Creation Response" anchor='create'>
@ -230,7 +235,8 @@ Content-Length: 240
Content-Type: text/xml; charset=utf-8
Content-Length: 221
<body xmlns='http://jabber.org/protocol/httpbind'>
<body xmlns='http://jabber.org/protocol/httpbind'
xmlns:stream='http://etherx.jabber.org/streams'>
<stream:features>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
</stream:features>
@ -303,7 +309,7 @@ Content-Length: 175
</body>]]></example>
</section1>
<section1 topic='remote-stream-error' anchor='error'>
<p>The content of the &lt;body/&gt; element is a copy of the content of the &lt;stream:error/&gt; element received from the XMPP server:</p>
<p>The content of the &lt;body/&gt; element is zero or more stanzas followed by a copy of the &lt;stream:error/&gt; element (qualified by the 'http://etherx.jabber.org/streams' namespace) received from the XMPP server:</p>
<example caption="Remote error">
<![CDATA[HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
@ -311,13 +317,21 @@ Content-Length: 68
<body condition='remote-stream-error'
type='terminate'
xmlns='http://jabber.org/protocol/httpbind'>
<xml-not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/>
<text xmlns='urn:ietf:params:xml:ns:xmpp-streams'
xml:lang='en'>
Some special application diagnostic information!
</text>
<escape-your-data xmlns='application-ns'/>
xmlns='http://jabber.org/protocol/httpbind'
xmlns:stream='http://etherx.jabber.org/streams'>
<message from='contact@example.com'
to='user@example.com'
xmlns='jabber:client'>
<body>Hi yourself!</body>
</message>
<stream:error>
<xml-not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/>
<text xmlns='urn:ietf:params:xml:ns:xmpp-streams'
xml:lang='en'>
Some special application diagnostic information!
</text>
<escape-your-data xmlns='application-ns'/>
</stream:error>
</body>]]></example>
</section1>
<section1 topic='&recipient;' anchor='security'>
@ -366,15 +380,12 @@ Content-Length: 68
<xs:element ref='stream:features'
minOccurs='0'
maxOccurs='1'/>
<xs:any namespace='urn:ietf:params:xml:ns:xmpp-tls'
<xs:element ref='stream:error'
minOccurs='0'
maxOccurs='1'/>
<xs:any namespace='urn:ietf:params:xml:ns:xmpp-sasl'
minOccurs='0'
maxOccurs='1'/>
<xs:any namespace='urn:ietf:params:xml:ns:xmpp-streams'
minOccurs='0'
maxOccurs='1'/>
<xs:any namespace='jabber:client'
minOccurs='0'
maxOccurs='unbounded'/>