1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-21 08:45:04 -05:00

XEP-322 - Start of Last Call

This commit is contained in:
Matthew A. Miller 2014-10-08 10:26:56 -06:00
parent 2e69a36269
commit e890585a2d

View File

@ -13,7 +13,8 @@
<abstract>This specification describes how EXI compression can be used in XMPP networks.</abstract> <abstract>This specification describes how EXI compression can be used in XMPP networks.</abstract>
&LEGALNOTICE; &LEGALNOTICE;
<number>0322</number> <number>0322</number>
<status>Experimental</status> <status>Proposed</status>
<lastcall>2014-10-21</lastcall>
<type>Standards Track</type> <type>Standards Track</type>
<sig>Standards</sig> <sig>Standards</sig>
<approver>Council</approver> <approver>Council</approver>
@ -165,7 +166,7 @@
</p> </p>
</section1> </section1>
<section1 topic='Use Cases' anchor='usecases'> <section1 topic='Use Cases' anchor='usecases'>
<!-- TODO: [YD] can we have a summary section to desribe the use case? a short proposal is as follows <!-- TODO: [YD] can we have a summary section to desribe the use case? a short proposal is as follows
The section title of "Detecting support of EXI" is also modified to aligned with overall structure The section title of "Detecting support of EXI" is also modified to aligned with overall structure
--> -->
<section2 topic="Two approaches to use EXI"> <section2 topic="Two approaches to use EXI">
@ -215,7 +216,7 @@
<compress xmlns='http://jabber.org/protocol/compress'> <compress xmlns='http://jabber.org/protocol/compress'>
<method>exi</method> <method>exi</method>
</compress> </compress>
<failure xmlns='http://jabber.org/protocol/compress'> <failure xmlns='http://jabber.org/protocol/compress'>
<setup-failed/> <setup-failed/>
</failure>]]> </failure>]]>
@ -308,9 +309,9 @@
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjx4czpzY2hlbWENCiAgICB4 PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjx4czpzY2hlbWENCiAgICB4
bWxuczp4cz0naHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEnDQogICAgdGFyZ2V0TmFt bWxuczp4cz0naHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEnDQogICAgdGFyZ2V0TmFt
ZXNwYWNlPSd1cm46eG1wcDpzbjpwcm92aXNpb25pbmcnDQogICAgeG1sbnM9J3Vybjp4bXBwOnNu ZXNwYWNlPSd1cm46eG1wcDpzbjpwcm92aXNpb25pbmcnDQogICAgeG1sbnM9J3Vybjp4bXBwOnNu
... ...
dmlsZWdlJz4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSdpZCcgdHlwZT0nUHJpdmlsZWdlSWQnIHVz dmlsZWdlJz4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSdpZCcgdHlwZT0nUHJpdmlsZWdlSWQnIHVz
ZT0ncmVxdWlyZWQnLz4NCgk8L3hzOmNvbXBsZXhUeXBlPg0KIA0KPC94czpzY2hlbWE+DQo= ZT0ncmVxdWlyZWQnLz4NCgk8L3hzOmNvbXBsZXhUeXBlPg0KIA0KPC94czpzY2hlbWE+DQo=
</uploadSchema>]]> </uploadSchema>]]>
@ -325,7 +326,7 @@
</p> </p>
<example caption='Testing newly uploaded schema files'> <example caption='Testing newly uploaded schema files'>
<![CDATA[ <![CDATA[
<setup xmlns='http://jabber.org/protocol/compress/exi' version='1' strict='true' blockSize='1024' <setup xmlns='http://jabber.org/protocol/compress/exi' version='1' strict='true' blockSize='1024'
valueMaxLength='32' valuePartitionCapacity='100'> valueMaxLength='32' valuePartitionCapacity='100'>
<schema ns='http://www.w3.org/XML/1998/namespace' bytes='4726' md5Hash='2e2cf9072dc058dcda41b7ee77a5cb54'/> <schema ns='http://www.w3.org/XML/1998/namespace' bytes='4726' md5Hash='2e2cf9072dc058dcda41b7ee77a5cb54'/>
<schema ns='http://etherx.jabber.org/streams' bytes='3450' md5Hash='68719b98725477c46a70958d1ea7c781'/> <schema ns='http://etherx.jabber.org/streams' bytes='3450' md5Hash='68719b98725477c46a70958d1ea7c781'/>
@ -348,7 +349,7 @@
</p> </p>
<example caption='Agreement between client and server'> <example caption='Agreement between client and server'>
<![CDATA[ <![CDATA[
<setupResponse xmlns='http://jabber.org/protocol/compress/exi' version='1' strict='true' <setupResponse xmlns='http://jabber.org/protocol/compress/exi' version='1' strict='true'
blockSize='1024' valueMaxLength='32' valuePartitionCapacity='100' agreement='true' blockSize='1024' valueMaxLength='32' valuePartitionCapacity='100' agreement='true'
configurationId='c76ab4ec-4993-4285-8c7a-098060581bb8'> configurationId='c76ab4ec-4993-4285-8c7a-098060581bb8'>
<schema ns='http://www.w3.org/XML/1998/namespace' bytes='4726' md5Hash='2e2cf9072dc058dcda41b7ee77a5cb54'/> <schema ns='http://www.w3.org/XML/1998/namespace' bytes='4726' md5Hash='2e2cf9072dc058dcda41b7ee77a5cb54'/>
@ -1052,7 +1053,7 @@ FIXME
<li>valueMaxLength: 64</li> <li>valueMaxLength: 64</li>
<li>valuePartitionCapacity: 64</li> <li>valuePartitionCapacity: 64</li>
</ul> </ul>
<!-- [YD] agreed 2013-07-12: <!-- [YD] agreed 2013-07-12:
// 4K RAM for value partitions - is this enough small? // 4K RAM for value partitions - is this enough small?
// valueMaxLength should be something like 95% percentile of JID // valueMaxLength should be something like 95% percentile of JID
// sorted by the length // sorted by the length
@ -1303,7 +1304,7 @@ FIXME
and aged schemas that referred from the schema for EXI/XMPP shall be and aged schemas that referred from the schema for EXI/XMPP shall be
snapshoted for use in EXI processors. snapshoted for use in EXI processors.
<!-- TODO: [PW] Why not efficient? In terms of total amount of communication performed during a device's lifetime, its a very very small fraction (insignificant). <!-- TODO: [PW] Why not efficient? In terms of total amount of communication performed during a device's lifetime, its a very very small fraction (insignificant).
This is a subjective opinion, termed in absolute phraseology. --> This is a subjective opinion, termed in absolute phraseology. -->
</p> </p>
<p> <p>
@ -2419,7 +2420,7 @@ FIXME
implementations. However, if an implementation does not support weak implementations. However, if an implementation does not support weak
wildcards, it may use streams.xsd with following patch applied. wildcards, it may use streams.xsd with following patch applied.
</p> </p>
<!-- TODO: Something seems to have happened to the indentation. <!-- TODO: Something seems to have happened to the indentation.
Example should be formatted better, put within <example> and CDATA elements, so it does not get destroyed by automatic indentation and XML formatting. --> Example should be formatted better, put within <example> and CDATA elements, so it does not get destroyed by automatic indentation and XML formatting. -->
<code> <code>
--- streams.xsd 2013-03-25 17:37:52.733451313 +0900 --- streams.xsd 2013-03-25 17:37:52.733451313 +0900
@ -2469,7 +2470,7 @@ FIXME
<xs:import namespace="http://etherx.jabber.org/streams" <xs:import namespace="http://etherx.jabber.org/streams"
schemaLocation="${snapshot_url}/streams.xsd" /> schemaLocation="${snapshot_url}/streams.xsd" />
<xs:import namespace="http://jabber.org/protocol/compress/exi" <xs:import namespace="http://jabber.org/protocol/compress/exi"
schemaLocation="${snapshot_url}/xep-0322-01.xsd" /> schemaLocation="${snapshot_url}/xep-0322-01.xsd" />
</xs:schema> </xs:schema>
]]> ]]>
</code> </code>
@ -2548,10 +2549,10 @@ FIXME
xmlns:client='jabber:client' xmlns:client='jabber:client'
xmlns:streams='http://etherx.jabber.org/streams' xmlns:streams='http://etherx.jabber.org/streams'
elementFormDefault='qualified'> elementFormDefault='qualified'>
<xs:import namespace="http://www.w3.org/XML/1998/namespace"/> <xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xs:import namespace="http://etherx.jabber.org/streams"/> <xs:import namespace="http://etherx.jabber.org/streams"/>
<xs:element name='setup' type='Setup'/> <xs:element name='setup' type='Setup'/>
<xs:element name='setupResponse' type='SetupResponse'/> <xs:element name='setupResponse' type='SetupResponse'/>
@ -2576,18 +2577,18 @@ FIXME
<xs:attribute name='configurationLocation' type='xs:string' use='optional'/> <xs:attribute name='configurationLocation' type='xs:string' use='optional'/>
<xs:attribute name='agreement' type='xs:boolean' use='optional' default='false'/> <xs:attribute name='agreement' type='xs:boolean' use='optional' default='false'/>
</xs:complexType> </xs:complexType>
<xs:complexType name='Schema'> <xs:complexType name='Schema'>
<xs:attribute name='ns' type='xs:string' use='required'/> <xs:attribute name='ns' type='xs:string' use='required'/>
<xs:attribute name='bytes' type='xs:positiveInteger' use='required'/> <xs:attribute name='bytes' type='xs:positiveInteger' use='required'/>
<xs:attribute name='md5Hash' type='MD5Hash' use='required'/> <xs:attribute name='md5Hash' type='MD5Hash' use='required'/>
</xs:complexType> </xs:complexType>
<xs:complexType name='DatatypeRepresentationMap'> <xs:complexType name='DatatypeRepresentationMap'>
<xs:attribute name='type' type='xs:string' use='required'/> <xs:attribute name='type' type='xs:string' use='required'/>
<xs:attribute name='representAs' type='xs:string' use='required'/> <xs:attribute name='representAs' type='xs:string' use='required'/>
</xs:complexType> </xs:complexType>
<xs:attributeGroup name='Options'> <xs:attributeGroup name='Options'>
<xs:attribute name='version' type='xs:positiveInteger' use='optional' default='1'/> <xs:attribute name='version' type='xs:positiveInteger' use='optional' default='1'/>
<xs:attribute name='alignment' type='Alignment' use='optional' default='bit-packed'> <xs:attribute name='alignment' type='Alignment' use='optional' default='bit-packed'>
@ -2653,18 +2654,18 @@ FIXME
<xs:attribute name='sessionWideBuffers' type='xs:boolean' use='optional' default='false'> <xs:attribute name='sessionWideBuffers' type='xs:boolean' use='optional' default='false'>
<xs:annotation> <xs:annotation>
<xs:documentation>If set to true, all buffers, string tables, etc. will be maintained during the entire session. This may improve performance during time since strings <xs:documentation>If set to true, all buffers, string tables, etc. will be maintained during the entire session. This may improve performance during time since strings
can be omitted in the compressed binary stream, but it might also in some cases degrade performance since more options are available in the tables, requiring more bits can be omitted in the compressed binary stream, but it might also in some cases degrade performance since more options are available in the tables, requiring more bits
to encode strings. The default value is false, meaning that buffers, string tables, etc., are cleared between each stanza.</xs:documentation> to encode strings. The default value is false, meaning that buffers, string tables, etc., are cleared between each stanza.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
</xs:attributeGroup> </xs:attributeGroup>
<xs:simpleType name='MD5Hash'> <xs:simpleType name='MD5Hash'>
<xs:restriction base='xs:string'> <xs:restriction base='xs:string'>
<xs:pattern value='[0-9a-f]{32}'/> <xs:pattern value='[0-9a-f]{32}'/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:simpleType name='Alignment'> <xs:simpleType name='Alignment'>
<xs:restriction base='xs:string'> <xs:restriction base='xs:string'>
<xs:enumeration value='bit-packed'> <xs:enumeration value='bit-packed'>
@ -2684,7 +2685,7 @@ FIXME
</xs:enumeration> </xs:enumeration>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:element name='uploadSchema'> <xs:element name='uploadSchema'>
<xs:complexType> <xs:complexType>
<xs:simpleContent> <xs:simpleContent>
@ -2696,7 +2697,7 @@ FIXME
</xs:simpleContent> </xs:simpleContent>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:simpleType name='ContentType'> <xs:simpleType name='ContentType'>
<xs:restriction base='xs:string'> <xs:restriction base='xs:string'>
<xs:enumeration value='Text'/> <xs:enumeration value='Text'/>
@ -2704,14 +2705,14 @@ FIXME
<xs:enumeration value='ExiDocument'/> <xs:enumeration value='ExiDocument'/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:element name='downloadSchema' type='DownloadSchema'/> <xs:element name='downloadSchema' type='DownloadSchema'/>
<xs:element name='downloadSchemaResponse' type='DownloadSchemaResponse'/> <xs:element name='downloadSchemaResponse' type='DownloadSchemaResponse'/>
<xs:complexType name='DownloadSchema'> <xs:complexType name='DownloadSchema'>
<xs:attribute name='url' type='xs:string' use='required'/> <xs:attribute name='url' type='xs:string' use='required'/>
</xs:complexType> </xs:complexType>
<xs:complexType name='DownloadSchemaResponse'> <xs:complexType name='DownloadSchemaResponse'>
<xs:complexContent> <xs:complexContent>
<xs:extension base='DownloadSchema'> <xs:extension base='DownloadSchema'>
@ -2747,7 +2748,7 @@ FIXME
</xs:extension> </xs:extension>
</xs:complexContent> </xs:complexContent>
</xs:complexType> </xs:complexType>
<xs:element name='streamStart'> <xs:element name='streamStart'>
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
@ -2776,11 +2777,11 @@ FIXME
<xs:anyAttribute namespace='##other' processContents='lax'/> <xs:anyAttribute namespace='##other' processContents='lax'/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name='streamEnd'> <xs:element name='streamEnd'>
<xs:complexType/> <xs:complexType/>
</xs:element> </xs:element>
</xs:schema> </xs:schema>
]]> ]]>
</code> </code>