Efficient XML Interchange

XMLの効率的な圧縮法を定めるW3C勧告 ウィキペディアから

Efficient XML Interchange (EXI[注釈 1]日: 高効率XML交換[4][注釈 2]) とは、処理速度と計算機資源の利用を同時に最適化することを目指す[1]拡張可能なマーク付け言語符号化規約のW3C勧告である。

概要 拡張子, MIMEタイプ ...
Efficient XML Interchange
拡張子.exi[1](附録F.2)
MIMEタイプapplication/exi[1](附録F.2)
タイプコードAPPL
マジック
ナンバー
24 45 58 49 (“$EXI”)
開発者World Wide Web Consortium
初版2007年7月16日 (2007-07-16)[2]
最新版
1.0
(2014-02-11)
種別可逆圧縮形式
派生元XML
ウェブサイトEfficient XML Interchange (EXI) Format 1.0
閉じる

背景

拡張可能なマーク付け言語 (XML) 文書は可読性・拡張性に優れる反面、冗長性が高く容量が肥大化しがちである[6]:53。これを解決する手段として、XML文書に汎用の(可逆)圧縮を施すことが考えられる。実際、オフィス文書のためのオープン文書形式 (OpenDocument) や変倍ベクタ図形 (SVG) はDeflate算法に基づく圧縮形式に対応している[7][8]

しかし、整形式のXML文書は、その構造的特性を利用して[注釈 3]汎用の方法より高い効率で圧縮が行える[10]。更に、繰り返し登場する似通った文字列を集中的に処理することでも、高効率な圧縮が期待できる[10]。EXIはそのような実装の一つである[6]:53

概要

原則

EXIは次の五原則を掲げている[1](2節)[11]

汎用
多くの機器がXML情報を通信し合うことを目的とする。特定の用途に向けた特殊な最適化は避ける。
最小
小規模な携帯機器及び組込み機器でも利用できるように、単純で洗練された手法であるべき。
効率
EXIの利用が望まれる環境に於いて、手作業で最適化されたバイナリ形式の小ささに匹敵せねばならない。
柔軟
多様なスキーマやその拡張などに対して柔軟で効率の良い処理をする必要がある。スキーマからの逸脱で符号化に失敗してはならない。
相互運用可能
既存のXML関連技術と上手く統合し、それらの変更を最小限に抑えるべきである

形式

大きく二種類の符号化方式を提供している。

組込み文法[6]:53 (: Built-In Grammar)
要素や属性の名前を事前に把握できないため、EXIストリームにそれらの情報を格納しなくてはならない。故にファイル容量が大きくなり、また文法を学習的に解釈するので、実装時のメモリ使用量を予測しづらい問題がある[12]:55
スキーマ由来文法[6]:53 (: Schema-Informed Grammar)
要素や属性の名前を事前に把握できるため、EXIストリームにそれらの情報を格納しなくてよい。故にファイル容量が小さくなり、また特にstrictモードでは、与えられたスキーマで解釈できる情報以外を復号しないため、解釈する文法は成長しない。よって実装時のメモリ使用量は固定される[13]:55

評価

利点

省メモリ
特にスキーマ由来文法を用いる方式は省メモリである[14]:2

批判・欠点

EXIの活用が想定される省メモリ環境においては、XMLの構文解析自体が負担である。EXIは(その小さい容量によって)確かに通信量を軽減するものの、結局復号して尋常のXML(単なる文字列ではなくDOM, SAX, StAX相当の抽象化された構造情報)として扱わねばならないので、少メモリ環境に於けるXML利用に際しての問題点を半分しか解決しない[13]:55

また、仕様が複雑である為に実装が巨大になりがちである[14]:6

実装

脚注

参考文献

関連項目

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.