Powered by SmartDoc

スキーム作成

目標は表[1データの内容]を表現するスキームを作ることです。扱うXMLデータはリスト[XMLデータ]を考えます。よって、RELAXスキームの概要は次のようになります。

まず、モジュールのラベルの上でマウスの右ボタンを押し、ポップアップメニューを表示させます。

モジュールのメニュー

ここで、「ルート要素の追加」を選びます。要素の名前を「dataList」と入力すると、次のようにモジュールに要素が追加されます。

ルート要素を追加した

次は、「dataList」のポップアップメニューを表示させ、「新しいデータ要素の追加」を選びます。

ルート要素のメニュー

要素名を「dataItem」と入力すると、以下のように表示されます。

dataItem要素を追加した

さらに「dataItem」のポップアップメニューで、「並び」を選択して複数要素を入れられるようにします。

dataItem要素のメニュー

以下のように、複数要素を入れる準備が出来ました。

(並び:sequence)要素を追加した

これまでの操作と同様にして、「name」「cost」「note」要素を追加します。

dataItemの各データを追加した

それでは、これらの要素のデータ型を設定します。設定したい要素を選択して、右側のパネルのデータ型のボタンを押すと下のようなデータ型選択ダイアログが出て来ます。

データ型選択画面

今回のデータは「name : String」「cost : integer」「note : String」ですので、以下のように設定します。

型を設定した

さらに、「dataItem」の出現回数を設定します。「dataItem」を選択し、パネルの出現回数をクリックして、「+」に変更します。

出現回数の設定

最後に、「dataList」にルートにするチェックをつけて完成です。

ルートの設定

作成したRELAXスキームは、「RELAXソース」ページにてリアルタイムで確認できます。RELAXが初めての人は、MkRelaxでいろいろ試しながらRELAX文法を覚えていくことも出来るかと思います。実際に作成した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>

以上駆け足で簡単なスキームを作ってみました。詳しくはいろいろ触って試してみてください。