further schema corrections

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@3009 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2009-04-07 21:54:42 +00:00
parent 03c6f65654
commit d7dc11d3ae
1 changed files with 19 additions and 48 deletions

View File

@ -30,7 +30,7 @@
<version>1.2</version>
<date>2008-10-29</date>
<initials>psa</initials>
<remark><p>Clarified handling of xmpp:restart -- client MUST send the restart and the body MUST be empty; removed IM session establishment examples because that protocol is deprecated in rfc3921bis; corrected XML schema.</p></remark>
<remark><p>Clarified handling of xbosh restart -- client MUST send the restart and the body MUST be empty; removed IM session establishment examples because that protocol is deprecated in rfc3921bis; corrected XML schema.</p></remark>
</revision>
<revision>
<version>1.1</version>
@ -63,7 +63,7 @@
</section1>
<section1 topic="Session Creation Request" anchor='initiate'>
<p>The client SHOULD include an 'xmpp:version' attribute qualified by the 'urn:xmpp:xbosh' namespace in its session creation request. This attribute corresponds to the 'version' attribute of the XMPP &lt;stream:stream/&gt; element as defined in <cite>RFC 3920</cite>. The connection manager SHOULD forward the value to the XMPP server accordingly.</p>
<p>The client SHOULD include a 'version' attribute qualified by the 'urn:xmpp:xbosh' namespace in its session creation request. This attribute corresponds to the 'version' attribute of the XMPP &lt;stream:stream/&gt; element as defined in <cite>RFC 3920</cite>. The connection manager SHOULD forward the value to the XMPP server accordingly.</p>
<example caption="Requesting a session with a version attribute">
<![CDATA[POST /webclient HTTP/1.1
Host: httpcm.jabber.org
@ -86,7 +86,7 @@ Content-Length: 104
</section1>
<section1 topic="Session Creation Response" anchor='create'>
<p>The connection manager SHOULD include an 'xmpp:version' attribute (qualified by the 'urn:xmpp:xbosh' namespace) and a &lt;stream:features/&gt; element (qualified by the 'http://etherx.jabber.org/streams' namespace) in a response as soon as they are available, either in its session creation response, or (if it has not yet received them from the XMPP server) in any subsequent response.</p>
<p>The connection manager SHOULD include a 'version' attribute (qualified by the 'urn:xmpp:xbosh' namespace) and a &lt;stream:features/&gt; element (qualified by the 'http://etherx.jabber.org/streams' namespace) in a response as soon as they are available, either in its session creation response, or (if it has not yet received them from the XMPP server) in any subsequent response.</p>
<p>Note: The same procedure applies to the <em>obsolete</em> XMPP-specific 'authid' attribute of the BOSH &lt;body/&gt; element, which contains the value of the XMPP stream ID generated by the XMPP server. This value is needed only by legacy XMPP clients in order to complete digest authentication using the <em>obsolete</em>&#32;&xep0078; protocol. <note>Separate 'sid' and 'authid' attributes are required because the connection manager is not necessarily part of a single XMPP server (e.g., it may handle HTTP connections on behalf of multiple XMPP servers).</note></p>
<example caption="Session creation response with stream features">
<![CDATA[HTTP/1.1 200 OK
@ -136,7 +136,7 @@ Content-Length: 483
]]></example>
<p>Note: The client SHOULD ignore any Transport Layer Security (TLS) feature since BOSH channel encryption SHOULD be negotiated at the HTTP layer.</p>
<p>TLS compression (as defined in <cite>RFC 3920</cite>) and Stream Compression (as defined in &xep0138;) are NOT RECOMMENDED since compression SHOULD be negotiated at the HTTP layer using the 'accept' attribute of the BOSH session creation response. TLS compression and Stream Compression SHOULD NOT be used at the same time as HTTP content encoding.</p>
<p>Note: The 'xmpp:version' attribute SHOULD also be included on the request and response when adding new streams to a session.</p>
<p>Note: The 'version' attribute qualified by the 'urn:xmpp:xbosh' namespace SHOULD also be included on the request and response when adding new streams to a session.</p>
</section1>
<section1 topic="Authentication, Resource Binding, and IM Session Establishment" anchor='preconditions-sasl'>
@ -220,7 +220,7 @@ Content-Length: 121
]]></example>
<p>Upon receiving the &lt;success/&gt; element, the client MUST then ask the connection manager to restart the stream by sending a "restart request" that is structured as follows:</p>
<ul>
<li>The BOSH &lt;body/&gt; element MUST include a boolean 'xmpp:restart' attribute (qualified by the 'urn:xmpp:xbosh' namespace) whose value is "true" &BOOLEANNOTE;.</li>
<li>The BOSH &lt;body/&gt; element MUST include a boolean 'restart' attribute (qualified by the 'urn:xmpp:xbosh' namespace) whose value is "true" &BOOLEANNOTE;.</li>
<li>The BOSH &lt;body/&gt; element SHOULD include the 'to' attribute.</li>
<li>The BOSH &lt;body/&gt; element SHOULD include the 'xml:lang' attribute.</li>
<li>The BOSH &lt;body/&gt; element SHOULD be empty (i.e., not contain an XML stanza). However, if the client includes an XML stanza in the body, the connection manager SHOULD ignore it. <note>It is known that some connection manager implementations accept an XML stanza in the body of the restart request and send that stanza to the server when the stream is restarted; however there is no guarantee that a connection manager will send the stanza so a client cannot rely on this behavior.</note></li>
@ -346,9 +346,9 @@ Content-Length: 68
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='urn:xmpp:xbosh'
xmlns='http://jabber.org/protocol/httpbind'
xmlns='urn:xmpp:xbosh'
attributeFormDefault='qualified'
elementFormDefault='unqualified'>
elementFormDefault='qualified'>
<xs:annotation>
<xs:documentation>
@ -357,51 +357,22 @@ Content-Length: 68
</xs:documentation>
</xs:annotation>
<xs:import namespace='http://jabber.org/protocol/httpbind'
schemaLocation='http://www.xmpp.org/schemas/httpbind.xsd'/>
<xs:attribute name='restart'
type='xs:boolean'
use='optional'
default='false'/>
<xs:import namespace='http://etherx.jabber.org/streams'
schemaLocation='http://www.xmpp.org/schemas/streams.xsd'/>
<xs:element name='body'>
<xs:complexType>
<xs:choice xmlns:stream='http://etherx.jabber.org/streams'>
xmlns:xmpp='urn:xmpp:xbosh'>
<xs:element ref='stream:features'
minOccurs='0'
maxOccurs='1'/>
<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='jabber:client'
minOccurs='0'
maxOccurs='unbounded'/>
<xs:element name='uri'
minOccurs='0'
maxOccurs='1'
type='xs:string'/>
<xs:any namespace='##any'
minOccurs='0'
maxOccurs='unbounded'
processContents='lax'/>
</xs:choice>
<xs:attribute name='xmpp:restart'
type='xs:boolean'
use='optional'
default='false'/>
<xs:attribute name='xmpp:version'
type='xs:string'
use='optional'
default='1.0'/>
<xs:anyAttribute namespace='##any' processContents='lax'/>
</xs:complexType>
</xs:element>
<xs:attribute name='version'
type='xs:string'
use='optional'
default='1.0'/>
</xs:schema>
]]></code>
</section1>
<section1 topic='Acknowledgements' anchor='ack'>
<p>Thanks to Kevin Winters for his assistance with the schema.</p>
</section1>
</xep>