XMLスキーマからXML文書を新規作成する

先日公開したReflective Ecore Model Diagram Editor download | SourceForge.netを使って、XMLスキーマに従ったXML文書をグラフィカルに編集する方法を紹介します。

まず、GMFで作成するダイアグラムエディタと同様に、新規作成ウィザードから新規ファイルを作成します。FileメニューからNew>Other...を選択します。すると、「Example」カテゴリの中に「Reflective Ecore Model Diagram」というウィザードを選択できます。

このウィザードを起動すると、.xml_diagramファイルおよび.xmlファイルのファイル名を聞かれるので、それぞれ入力します。.xmlファイルが本来編集したいXML文書です。.xml_diagramファイルは.xmlファイルに対応するもので、エディタがキャンバス上に描かれたグラフィカルな情報を保存するファイルです。

最後に、XMLスキーマを指定します。

これでエディタが開きます。以下のスクリーンショットは、GMF/Tutorial - Eclipsepediaにおいて例として利用されているmindmap.xsdを指定した場合のエディタの様子です。

画面の右側にはパレットが配置されます。このパレットには、指定したXMLスキーマから変換したEMFモデルに含まれるEClassが配置されます。リリース0.1.0では、XMLスキーマにおいて定義された唯一のルート要素に対応するEClassもパレットに配置されます。(このEClassはパレットに配置する必要がないかもしれません)

パレットから項目をクリックし、キャンバス上で再度クリックすると、項目に対応するEClassのインスタンスが生成されキャンバス上に配置されます。パレットの下方に位置するところにEContainmentおよびEReferenceも配置されています。これらを使って、EClassのインスタンス間の包含参照(containment=trueであるEReference)や参照(containment=falseであるEReference)を定義できます。もちろん、指定したXMLスキーマに定義されている制約に従います。XMLスキーマに定義されていない参照は、キャンバス上でも定義できません。

このように、Reflective Ecore Model Diagram Editorを使うと、XMLスキーマに従ったXML文書をグラフィカルに編集可能です。一般にXMLスキーマUMLクラス図を使って設計可能です。

UMLによるXMLアプリケーションモデリング―実践的e‐ビジネスアプリケーション (Object Technology Series)

UMLによるXMLアプリケーションモデリング―実践的e‐ビジネスアプリケーション (Object Technology Series)

従って、XMLスキーマインスタンスであるXML文書は、UMLオブジェクト図で設計可能です。Reflective Ecore Model Diagram Editorのキャンバスは、まさにUMLオブジェクト図の編集画面と言えます。XML文書の作成において、単なるテキストよりもダイアグラムの方が、例えばレビュー等では有利でしょう。