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:
parent
2e69a36269
commit
e890585a2d
53
xep-0322.xml
53
xep-0322.xml
@ -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>
|
||||||
|
Loading…
Reference in New Issue
Block a user