Efficient XML Interchange
XMLの効率的な圧縮法を定めるW3C勧告
From Wikipedia, the free encyclopedia
背景
拡張可能なマーク付け言語 (XML) 文書は可読性・拡張性に優れる反面、冗長性が高く容量が肥大化しがちである[6]:53。これを解決する手段として、XML文書に汎用の(可逆)圧縮を施すことが考えられる。実際、オフィス文書のためのオープン文書形式 (OpenDocument) や変倍ベクタ図形 (SVG) はDeflate算法に基づく圧縮形式に対応している[7][8]。
しかし、整形式のXML文書は、その構造的特性を利用して[注釈 3]汎用の方法より高い効率で圧縮が行える[10]。更に、繰り返し登場する似通った文字列を集中的に処理することでも、高効率な圧縮が期待できる[10]。EXIはそのような実装の一つである[6]:53。
概要
形式
大きく二種類の符号化方式を提供している。
- 組込み文法[6]:53 (英: Built-In Grammar)
- 要素や属性の名前を事前に把握できないため、EXIストリームにそれらの情報を格納しなくてはならない。故にファイル容量が大きくなり、また文法を学習的に解釈するので、実装時のメモリ使用量を予測しづらい問題がある[12]:55。
- スキーマ由来文法[6]:53 (英: Schema-Informed Grammar)
- 要素や属性の名前を事前に把握できるため、EXIストリームにそれらの情報を格納しなくてよい。故にファイル容量が小さくなり、また特にstrictモードでは、与えられたスキーマで解釈できる情報以外を復号しないため、解釈する文法は成長しない。よって実装時のメモリ使用量は固定される[13]:55。