バイナリーXML

バイナリーXML

[1] バイナリー (Binary) XML は、XMLバイナリー表現のことを指します。 テキストベースのマーク付け言語としての XML をそのまま用いるのではなく、 転送や構文解析の効率の良いバイナリー表現が好ましいと考えられる分野もあり、 様々なバイナリー表現が検討・提案されてきました。最終的には W3CEXI を標準化するに至り (そこに至るまで一体何年かかったのか)、 汎用的な XMLバイナリー表現の決定版と考えられていました。

[5] しかし、 XMLバイナリーで表現すること自体は一般的にはならず、 分野ごとに限定的に用いられたのみでした。バイナリー表現を取り入れていた分野では EXI に移行するメリットがあったのかどうかは怪しく、 EXI がどれだけ広く用いられたのかはよくわかりません。

[6] いずれにせよ、 XML 自体が廃れてしまったので、バイナリー表現形式も現在ではほとんど使われていません。

代替

[7] バイナリー形式のデータの交換には、 XML を使わない ThriftProtocol BuffersMessagePackCBOR などが用いられています。 これらのデータ形式の方がよりプログラミング言語データ構造に近かったり、 プログラミング言語ライブラリーが整備されていたりして、 使いやすそうです。

XBC

[4] EXI の仕様策定に先立って W3CXBC WG においてバイナリーXMLの要件と性質が整理されています。 XBC の項を参照してください。

バイナリー XML 仕様の一覧

[2] バイナリーXMLを実現する仕様はたくさんあります。これらの中には XML 本体だけでなく、 XML名前空間XML Schema の一部の機能も含まれていることがあります。逆に DTD など XML 本体の機能で含まれていないものもあります。

関連

[8] XOP のように XML 自体は変更せず添付ファイルのような形でバイナリーデータを扱うものもありました。

[9] より単純に Base64XMLバイナリーデータを埋め込むこともよくあります。

メモ

[3] Binary XML - Wikipedia, the free encyclopedia ( 版) <https://en.wikipedia.org/wiki/Binary_XML>