• Showing Page History #42031

EXI Editor

EXI Editor は、EXI 形式でバイナリエンコードされたXMLをテキストエディタ感覚で編集できるツールです。現在はEclipseプラグイン形式でのみ提供しています。

EXIとは

XMLは多くの利点がある反面、「冗長」「処理が低速」という問題を抱えています。一つのXML文書の中で「同じ文字列」や「標準仕様が定義した固定文字列」が繰り返し登場することで冗長になり、データサイズが大きくなりがちです。また、XMLの読み込み・書き込み処理は、文字列処理と構造処理を行うため、処理負荷が高くなりがちです。この二つの問題を、「バイナリ表現」「ポインタ」「XMLイベントの埋め込み」によって解決するのが「バイナリXML」です。EXIはW3Cが策定を進めているバイナリXMLの最新仕様です。EXIは他のバイナリXML形式に勝るデータ圧縮効率があると同時に、優れた処理性能を発揮できるStAXイベント列に似たデータ構造を持っています。また、文字列や構造の辞書としてXMLスキーマを参照したり、バイナリになったデータをさらにZIPのような原理でデータ圧縮したりすることによって、さらなる圧縮率向上が図れるという特長があります。EXIのデータサイズは、XMLを単純にデータ圧縮した時のデータサイズと比べて、同等、またはそれより小さくなりますが、必ずしもEXIの方が優れているというわけではありません。しかし、処理速度の点で圧倒的にEXI(バイナリXML)の方が優れているというのは言うまでもありません。

機能・特長

  • EXIファイル新規作成ウィザード
    • ルート要素のみを持つシンプルなEXIファイルを作成します。(※1)
    • バイナリエンコードの粒度(ビット単位/バイト単位)を指定できます。(※1)
    • データ圧縮の有無、圧縮率(高/中)を指定できます。(※1)
    • XMLスキーマ参照の有無を指定できます。(※1)
  • EXIファイルエディタ
    • EXI形式のバイナリをプレーンテキストに変換して表示します。また、それを直接編集して保存できます。
    • バイナリエンコードの粒度を自動判別します。保存時は自動設定(開いた時と同じ)、手動設定のいずれかを選択できます。(※1)
    • データ圧縮の有無、圧縮率を自動判別します。保存時は自動設定(開いた時と同じ)、手動設定のいずれかを選択できます。(※1)
    • XMLスキーマの関連付けを自動判別して開き、保存します。(※1)
    • XMLスキーマとEXIファイルの関連付けは、EXIファイルと同じ場所にあるXML形式のプロパティファイル「.schema」を編集すれば簡単に変更できます。(※1)
    • 要素、属性などの単位で色分けして見やすく表示します。
    • XMLの構成要素単位で自動的に改行をつけて見やすく表示します。
    • 編集時に追加した改行やインデントは保存されません。
    • 拡張子が「exi」のファイルが関連付けられています。
    • 文字コードは「UTF-8」に対応しています。日本語も使えます。
    • EXIファイルの表示や保存に失敗しても、元のデータが守られるバックアップ機構を備えています。(※1)
    • 名前空間URIのプレフィックス、DTD、コメント、XMLスキーマロケーションなど、FidelityOptionsは保存されません。

(※1)はバージョン0.1.2以降で提供される機能です。

動作環境

  • Eclipse 3.3 以上
  • JRE 5 以上

ダウンロード

更新サイトは「http://hwm2.gyao.ne.jp/asm/exi_editor/」です。 現在、最小限の機能だけを実装したプレビュー版(バージョン0.1.1)を公開中です。ぜひお試しください。 また、SVNでソースコードを公開しています。

使い方

準備中です。

サポート

フォーラムで、質問を受け付けます。チケットで、不具合報告、機能追加要望、改良要望を受け付けます。

商用利用について

このプロジェクトは、EXI Editorを商用利用していただくことを歓迎しています。商用利用に係るサポートも、通常のサポート同様に受け付けます。

依存関係

EXI の処理に「EXIficient」を利用しています。

今後の展開

  • EXIファイルのバイナリが壊れていても、できる限り読み込んで編集可能にする「復旧モード」
  • 単独動作(JavaFXを使用)
  • StAX標準APIでEXIを扱うためのラッパー