目標は表[1データの内容]を表現するスキームを作ることです。扱うXMLデータはリスト[XMLデータ]を考えます。よって、RELAXスキームの概要は次のようになります。
まず、モジュールのラベルの上でマウスの右ボタンを押し、ポップアップメニューを表示させます。
ここで、「ルート要素の追加」を選びます。要素の名前を「dataList」と入力すると、次のようにモジュールに要素が追加されます。
次は、「dataList」のポップアップメニューを表示させ、「新しいデータ要素の追加」を選びます。
要素名を「dataItem」と入力すると、以下のように表示されます。
さらに「dataItem」のポップアップメニューで、「並び」を選択して複数要素を入れられるようにします。
以下のように、複数要素を入れる準備が出来ました。
これまでの操作と同様にして、「name」「cost」「note」要素を追加します。
それでは、これらの要素のデータ型を設定します。設定したい要素を選択して、右側のパネルのデータ型のボタンを押すと下のようなデータ型選択ダイアログが出て来ます。
今回のデータは「name : String」「cost : integer」「note : String」ですので、以下のように設定します。
さらに、「dataItem」の出現回数を設定します。「dataItem」を選択し、パネルの出現回数をクリックして、「+」に変更します。
最後に、「dataList」にルートにするチェックをつけて完成です。
作成したRELAXスキームは、「RELAXソース」ページにてリアルタイムで確認できます。RELAXが初めての人は、MkRelaxでいろいろ試しながらRELAX文法を覚えていくことも出来るかと思います。実際に作成したRELAXスキームはリスト[RELAXスキーム]のようになりました。
<?xml version="1.0" encoding="UTF-8"?> <module moduleVersion="1.0" relaxCoreVersion="1.0" targetNamespace="" xmlns="http://www.xml.gr.jp/xmlns/relaxCore"> <interface> <export label="dataList"/> </interface> <elementRule label="dataList"> <tag/> <ref label="dataItem" occurs="*"/> </elementRule> <elementRule label="dataItem"> <tag/> <sequence> <element name="name" type="string"/> <element name="cost" type="integer"/> <element name="note" type="string"/> </sequence> </elementRule> </module>
以上駆け足で簡単なスキームを作ってみました。詳しくはいろいろ触って試してみてください。