Jump to content

Efficient XML Interchange: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Brutzman (talk | contribs)
→‎Uses: reduced computational overhead
Undid revision 1181195471 by JayMoog (talk) rm inline external link
 
(30 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Short description|Binary XML format}}
'''Efficient XML Interchange''' ('''EXI''') is a [[binary XML]] format for exchange of data on a computer network.
'''Efficient XML Interchange''' ('''EXI''') is a [[binary XML]] format for exchange of data on a computer network.
It was developed by the W3C's '''Efficient Extensible Interchange Working Group''' and is one of the most prominent binary XML efforts to encode [[XML]] documents in a [[binary file|binary data format]], rather than plain text.
It was developed by the W3C's '''Efficient Extensible Interchange Working Group''' and is one of the most prominent efforts to encode [[XML]] documents in a [[binary file|binary data format]], rather than plain text.
Using EXI format reduces the verbosity of XML documents as well as the cost of parsing.
Using EXI format reduces the verbosity of XML documents as well as the cost of parsing.
Improvements in the performance of writing (generating) content depends on the speed of the medium being written to, the methods and quality of actual implementations.
Improvements in the performance of writing (generating) content depends on the speed of the medium being written to, the methods and quality of actual implementations.
EXI is useful for
* a complete range of XML document sizes, from dozens of bytes to terabytes
* reducing computational overhead to speed up parsing of compressed documents
* increasing endurance of small devices by utilizing efficient decompression


==History==
==History==
The [[World Wide Web Consortium]] (W3C) formed a working group to standardize on a format in March 2006.
The [[World Wide Web Consortium]] (W3C) formed a working group to standardize on a format in March 2006. EXI was chosen as W3C's Binary XML format after an evaluation of various proposals that included [[Fast Infoset]].<ref>{{cite web
EXI was chosen as W3C's Binary XML format after an evaluation of various proposals that included [[Fast Infoset]].<ref>{{cite web
| url= http://www.w3.org/XML/EXI/report.html
| url= http://www.w3.org/XML/EXI/report.html
| title= Analysis of the EXI Measurements
| title= Analysis of the EXI Measurements
| publisher= W3C |author= Robin Berjon and Jaakko Kangasharju editors
| publisher= W3C |editor1= Robin Berjon |editor2= Jaakko Kangasharju
| date= 20 July 2006
| date= 20 July 2006
| accessdate= 23 September 2016 }}</ref> The EXI format is derived from the AgileDelta Efficient XML format.<ref>{{cite web
| url= http://www.agiledelta.com/product_efx.html
| title= Lightning-Fast Delivery of XML to More Devices in More Locations
| publisher= AgileDelta
| date= 5 November 2015
| accessdate= 23 September 2016 }}</ref>
| accessdate= 23 September 2016 }}</ref>
EXI was adopted as a [[W3C recommendation]] by the W3C on 10 March 2011. A second edition was published in February 2014.<ref>{{Cite web |title= Efficient XML Interchange Working Group |work= Public web site |publisher= W3C |url= https://www.w3.org/XML/EXI/ |accessdate= 23 September 2016 }}}</ref>
EXI was adopted as a [[W3C recommendation]] by the W3C on 10 March 2011. A second edition was published in February 2014.<ref>{{Cite web |title= Efficient XML Interchange Working Group |work= Public web site |publisher= W3C |url= https://www.w3.org/XML/EXI/ |accessdate= 23 September 2016 }}}</ref>


In November 2016, the working group was renamed to "Efficient Extensible Interchange (EXI)" from "Efficient XML Interchange (EXI)" to reflect the broader scope of EXI applicability.<ref>{{cite web
In November 2016, the working group was renamed to "Efficient Extensible Interchange (EXI)" from "Efficient XML Interchange (EXI)" to reflect the broader scope of EXI applicability beyond XML to other data-description languages. <ref name="PeintnerBlog">{{cite web
| url=https://www.w3.org/blog/2016/11/efficient-representation-for-web-formats
| url= https://www.w3.org/blog/2016/11/efficient-representation-for-web-formats
| title=Efficient representation for Web formats
| title= Efficient representation for Web formats
| publisher= W3C Blog |author=Daniel Peintner
| publisher= W3C Blog |author= Daniel Peintner
| date= 22 November 2016
| date= 22 November 2016
| accessdate= 28 February 2017 }}</ref>
| accessdate= 28 February 2017 }}</ref>


==Alternatives==
==Features==
An advantage of EXI over Fast Infoset is that EXI (optionally) uses more constraints from the [[XML schema]]. This can make the EXI data more compact; for example, if the XML schema specifies that elements named 'bar' may only exist within elements named 'foo', EXI can assign a shorter token to the 'bar' element, knowing that it doesn't have to share the same token space as elements that occur elsewhere in the document. The main disadvantage to utilizing such "schema-informed" compression is that, not only does the document require a schema, but the decoder needs a copy of the same schema that the encoder used.
The EXI format is derived from the AgileDelta Efficient XML format.<ref>{{cite web
| url=http://www.agiledelta.com/product_efx.html
| title=Lightning-Fast Delivery of XML to More Devices in More Locations
| publisher=AgileDelta
| date= 5 November 2015
| accessdate= 23 September 2016 }}</ref>


==Uses==
An advantage of EXI over Fast Infoset is that EXI (optionally) uses more constraints from the [[XML schema]]. This can make the EXI data more compact; for example, if the XML schema specifies that elements named 'bar' may only exist within elements named 'foo', EXI can assign a shorter token to the 'bar' element, knowing that it doesn't have to share the same token space as elements that occur elsewhere in the document.


A variety of EXI-capable applications are available.<ref>{{Cite web |title= EXI Deployment |date= 28 March 2017 |work= EXI Working Group public page |publisher= World Wide Web Consortium |author= EXI Working Group |url= https://www.w3.org/XML/EXI/wiki/EXIDeployment |accessdate= 28 March 2017 }}</ref>
The main disadvantage to utilizing such "schema-informed" compression, not only does the document require a schema, but the decoder needs a copy of the same schema that the encoder used.


A variety of EXI implementations are available that enable the integration of EXI capabilities in other tools.<ref>{{Cite web |title= EXI Implementations |date= 28 March 2017 |work= EXI Working Group public page |author= EXI Working Group |publisher= World Wide Web Consortium |url= https://www.w3.org/XML/EXI/#implementations |accessdate= 28 March 2017 }}</ref>
==Uses==

EXI is useful for
* a complete range of XML document sizes
* speeding up parsing of compressed documents
* reduced computational overhead can increase endurance of small devices


Related: EXI is being adapted for non-XML data formats as well.
Related: EXI is being adapted for non-XML data formats as well.


* EXI4JSON is a specification developed by the same working group to use the same format for [[JSON]] documents.<ref>{{Cite web |title= EXI for JSON (EXI4JSON) |date= 23 August 2016 |work= Public Working Draft |publisher= World Wide Web Consortium |author= Daniel Peintner and Don Brutzman editors |url= https://www.w3.org/TR/exi-for-json/ |accessdate= 23 September 2016 }}</ref>
* EXI4JSON is a specification developed by the same working group to use the same format for [[JSON]] documents.<ref>{{Cite web |title= EXI for JSON (EXI4JSON) |date= 23 August 2016 |work= Public Working Draft |publisher= World Wide Web Consortium |editor1= Daniel Peintner |editor2= Don Brutzman |url= https://www.w3.org/TR/exi-for-json/ |accessdate= 23 September 2016 }}</ref>


EXI was recommended for use in the US Department of Defense [[Global Information Grid]].<ref>{{Cite web |title= Efficient XML Interchange (EXI) Compression and Performance Benefits: Development, Implementation and Evaluation |work= Masters Thesis |author= Sheldon L. Snyder |url= http://calhoun.nps.edu/bitstream/handle/10945/5422/10Mar_Snyder.pdf |publisher= US Naval Postgraduate School (NPS) |date= 1 March 2010 |accessdate= 23 September 2016 }}</ref>
EXI was recommended for use in the US Department of Defense [[Global Information Grid]].<ref>{{Cite web |title= Efficient XML Interchange (EXI) Compression and Performance Benefits: Development, Implementation and Evaluation |work= Masters Thesis |author= Sheldon L. Snyder |url= http://calhoun.nps.edu/bitstream/handle/10945/5422/10Mar_Snyder.pdf |publisher= US Naval Postgraduate School (NPS) |date= 1 March 2010 |accessdate= 23 September 2016 }}</ref>
Line 48: Line 47:
==Future Work==
==Future Work==


Multiple initiatives continue to be pursued by the EXI Working Group.
Multiple experimental initiatives continue to be pursued by the EXI Working Group.
* EXI4CSS is exploring how to map Cascading Style Sheets (CSS) to EXI. <ref name="PeintnerBlog"/>
* EXI4CSS is under development
* EXI for JavaScript appears to be possible if using the initial structured parse tree for source code. <ref name="PeintnerBlog"/>
* Integration of XML EXI with XML Security
* Considering potential composition of XML EXI with XML Encryption and XML Digital Signature.


==References==
==References==
Line 58: Line 58:
* [http://www.w3.org/TR/exi/ Efficient XML Interchange Format 1.0 (W3C Recommendation)]
* [http://www.w3.org/TR/exi/ Efficient XML Interchange Format 1.0 (W3C Recommendation)]
* [http://www.w3.org/TR/2009/WD-exi-evaluation-20090407/ Efficient XML Interchange Evaluation (Working Group Note)]
* [http://www.w3.org/TR/2009/WD-exi-evaluation-20090407/ Efficient XML Interchange Evaluation (Working Group Note)]
* [http://exificient.github.io/ EXIficient] - EXIficient is a set of open source implementations of the W3C Efficient XML Interchange (EXI) format specification
* [https://exificient.github.io/ EXIficient] - EXIficient is a set of open source implementations of the W3C Efficient XML Interchange (EXI) format specification
* [http://exip.sourceforge.net/ EXIP] - Open source C implementation
* [http://exip.sourceforge.net/ EXIP] - Open source C implementation
* [http://openexi.sourceforge.net/ Nagasena] - Open Source Java/C# implementations of the EXI Format 1.0 provided by FUJITSU.
* [http://openexi.sourceforge.net/ Nagasena] - Open Source Java/C# implementations of the EXI Format 1.0 provided by FUJITSU.

Latest revision as of 14:08, 21 October 2023

Efficient XML Interchange (EXI) is a binary XML format for exchange of data on a computer network. It was developed by the W3C's Efficient Extensible Interchange Working Group and is one of the most prominent efforts to encode XML documents in a binary data format, rather than plain text. Using EXI format reduces the verbosity of XML documents as well as the cost of parsing. Improvements in the performance of writing (generating) content depends on the speed of the medium being written to, the methods and quality of actual implementations. EXI is useful for

  • a complete range of XML document sizes, from dozens of bytes to terabytes
  • reducing computational overhead to speed up parsing of compressed documents
  • increasing endurance of small devices by utilizing efficient decompression

History[edit]

The World Wide Web Consortium (W3C) formed a working group to standardize on a format in March 2006. EXI was chosen as W3C's Binary XML format after an evaluation of various proposals that included Fast Infoset.[1] The EXI format is derived from the AgileDelta Efficient XML format.[2] EXI was adopted as a W3C recommendation by the W3C on 10 March 2011. A second edition was published in February 2014.[3]

In November 2016, the working group was renamed to "Efficient Extensible Interchange (EXI)" from "Efficient XML Interchange (EXI)" to reflect the broader scope of EXI applicability beyond XML to other data-description languages. [4]

Features[edit]

An advantage of EXI over Fast Infoset is that EXI (optionally) uses more constraints from the XML schema. This can make the EXI data more compact; for example, if the XML schema specifies that elements named 'bar' may only exist within elements named 'foo', EXI can assign a shorter token to the 'bar' element, knowing that it doesn't have to share the same token space as elements that occur elsewhere in the document. The main disadvantage to utilizing such "schema-informed" compression is that, not only does the document require a schema, but the decoder needs a copy of the same schema that the encoder used.

Uses[edit]

A variety of EXI-capable applications are available.[5]

A variety of EXI implementations are available that enable the integration of EXI capabilities in other tools.[6]

Related: EXI is being adapted for non-XML data formats as well.

  • EXI4JSON is a specification developed by the same working group to use the same format for JSON documents.[7]

EXI was recommended for use in the US Department of Defense Global Information Grid.[8]

Future Work[edit]

Multiple experimental initiatives continue to be pursued by the EXI Working Group.

  • EXI4CSS is exploring how to map Cascading Style Sheets (CSS) to EXI. [4]
  • EXI for JavaScript appears to be possible if using the initial structured parse tree for source code. [4]
  • Considering potential composition of XML EXI with XML Encryption and XML Digital Signature.

References[edit]

  1. ^ Robin Berjon; Jaakko Kangasharju, eds. (20 July 2006). "Analysis of the EXI Measurements". W3C. Retrieved 23 September 2016.
  2. ^ "Lightning-Fast Delivery of XML to More Devices in More Locations". AgileDelta. 5 November 2015. Retrieved 23 September 2016.
  3. ^ "Efficient XML Interchange Working Group". Public web site. W3C. Retrieved 23 September 2016.}
  4. ^ a b c Daniel Peintner (22 November 2016). "Efficient representation for Web formats". W3C Blog. Retrieved 28 February 2017.
  5. ^ EXI Working Group (28 March 2017). "EXI Deployment". EXI Working Group public page. World Wide Web Consortium. Retrieved 28 March 2017.
  6. ^ EXI Working Group (28 March 2017). "EXI Implementations". EXI Working Group public page. World Wide Web Consortium. Retrieved 28 March 2017.
  7. ^ Daniel Peintner; Don Brutzman, eds. (23 August 2016). "EXI for JSON (EXI4JSON)". Public Working Draft. World Wide Web Consortium. Retrieved 23 September 2016.
  8. ^ Sheldon L. Snyder (1 March 2010). "Efficient XML Interchange (EXI) Compression and Performance Benefits: Development, Implementation and Evaluation" (PDF). Masters Thesis. US Naval Postgraduate School (NPS). Retrieved 23 September 2016.

External links[edit]