スキーマ内容の構成

<< 目次を表示 >>

ページ位置:  その他の記法・モデリング > SOAとXML > スキーマコンポーザー >

スキーマ内容の構成

スキーマの内容を構成する際には、スキーマ定義に含める既存の要素や制約を指定します。一般的には、スキーマの内容を構成する目的は、XSDなどのスキーマファイルを生成することです。その他に、モデル変換の定義を追加することもできます。このモデル変換の定義は、NIEMモデルのサブセットを定義したい場合など、既存のモデルの一部を利用したい場合に作成します。

 

 

スキーマの内容の定義

スキーマの内容を定義するには、モデルブラウザからクラス要素をスキーマコンポーザーのクラスの一覧にドロップします。その後、属性の一覧で、スキーマに含める属性を選択します。その際に、参照しているクラスがある場合には、自動的にそのクラスも対象として追加します。作成の手順をまとめると、以下のようになります。

 

#

操作方法

1

スキーマコンポーザーでスキーマ定義のプロファイルを作成する

2

クラス要素を追加する

3

対象の属性を指定する

4

その他の制約を追加する

5

スキーマを生成する

 

 

クラスの追加

対象のクラスを、モデルブラウザから「クラス」パネルにドロップして下さい。

 

 

 

プロパティの選択

 

クラスパネル内でクラスを選択すると、そのクラスの属性に関する情報が中央の属性パネルに表示されます。その型の要素として定義する場合にはチェックを入れます。チェックを入れると、その属性の型もスキーマに追加され、左側のクラスパネルと右側のスキーマパネルに表示されます。

 

属性のチェックを外すと、追加された内容は自動的にパネルから削除されます。追加された型は、クラスパネル内の項目を右クリックすると表示されるメニューから削除することができます。また、項目を選択すると、その項目の概要が右上の表示欄に表示されます。

 

 

 

Inheritance(継承)

継承によって内容を定義したい場合には、まずはその親となる要素と比較し、一貫性が取れているかどうかの確認が必要です。その後、子クラスを作成し、定義されている内容を再利用します。必要に応じて、継承で定義する場合と集約で関係させる場合とを切り替えることができます。

 

スキーマコンポーザーでは継承を柔軟に扱うことができます。例えば、集約で情報を参照する場合、対象の要素とその親要素が持つ属性から選択することができます。さらに、親要素の親からも参照することができます。親要素が選択された場合には、生成されるXMLスキーマでは拡張要素として扱われます。複数の親要素を対象とすることはできません。

 

更新ボタンを押すと、内容について検証後スキーマプロファイルを保存します。

 

プロファイルに問題がある場合には、右上のステータスパネルにその問題点を表示します。

 

 

型の再定義

スキーマの定義における一般的な問題の一つとして、スキーマが対象とする内容について、さまざまな理由で型の定義が変わる可能性があることが挙げられます。例えば、車に関するスキーマを定義する場合でも、さまざまな車の種類があり、また時間の経過とともに同じ車でも違いが現れるため、こうした変化に対応できるようにする必要があります。スキーマコンポーザーでは、その車を示すクラスを再定義し、別の名前を指定することができます。この再定義について必要に応じて属性を変更するなどの対応ができます。この再定義した型は、元のスキーマ内でのみ利用できます。この操作を行っても、モデルには変更はありません。

 

型の再定義を行うには、対象のクラスをクラスパネルで右クリックし、型の再定義を選択します。再定義する型の名前を指定して下さい。その後、再定義した型について、利用する属性を決めたり制限を追加したりします。

 

 

 

最上位の要素

 

スキーマの生成を実行すると、メッセージを示す最上位の単一の要素に関する内容が生成されます。この最上位要素は、スキーマコンポーザー内で最上位として設定された要素になります。最上位の要素の多重度を設定することもできます。最上位の要素の設定や多重度の指定は、コンテキストメニューを利用します。

 

 

 

スキーマの制約

スキーマコンポーザーを利用して、追加した要素や属性に対して目的に合致させるための何らかの制約を設定することができます。

 

 

属性パネル内の項目を右クリックし、「多重度の設定を追加」 などの項目を選択することで、それぞれの属性の制約を設定できます。

 

 

多重度

属性の多重度は、モデルで定義された内容をさらに制限する目的で利用できます。モデルで定義されている制約を緩和することはできません。多重度は、最上位の要素と属性に対して設定できます。

 

 

型の再定義

スキーマコンポーザー内で、属性の型となるクラスを再定義し、新しい型として指定・利用できます。再定義された新しい型は元の型と基本的には同じですが、スキーマに固有の名前を持ちます。例えば、Payment列挙型を、スキーマの目的に合うようにCardPaymentとして再定義することができます。新しい型は、新しい属性を追加できないという点で、元の型の制約を受けます。この型を共有する他のプロパティも、新しい型を指定することによって同様に制限されます。再定義された型は、他のプロパティに利用できます。

 

選択

スキーマ内でプロパティの型の継承が複数存在する場合に、選択点として継承に関する情報を指定できます。

 

 

インライン定義

この項目にチェックを入れると、属性をインラインで定義します。

 

 

参照

属性を'by reference'として定義します。型名に 'ref'の文字列が追加されます。

 

 

プロパティの定数値 - ファセット

ファセットはスキーマコンポーザの汎用プロファイルで利用できます。ファセットの源泉はプロパティのタグ付き値になります。XMLスキーマの仕様でファセットとして定義されている名前のタグ付き値はファセットとして扱われます。JSONのvalidationキーワードも認識できます。

 

XMLスキーマの制限ファセット

 

JSONのValidationキーワード