UMLからXSDへの既定のマッピング

<< 目次を表示 >>

ページ位置:  その他の記法のモデリング > SOAとXML > XMLスキーマ(XSD) > XSDのモデリング > XSDモデルの抽象化 >

UMLからXSDへの既定のマッピング

次の表は、UMLからXSDへの既定のマッピングを示しています。このマッピングは、より抽象度の高いモデリングからスキーマを生成する場合に便利です。これらのマッピングは、対象の要素にステレオタイプが設定されていない場合です。ツールボックスのXMLスキーマグループの要素はステレオタイプやタグ付き値により、この既定のマッピングとは異なる生成結果を出力することが可能です。より詳細な設計が必要な場合には、これらのステレオタイプつきの要素を利用してください。

 

UMLの要素

XSD生成の既定のルール

パッケージ

スキーマの要素はパッケージを指定して生成します。対象のパッケージ内で別のパッケージ内に含まれるクラスが利用されている場合で、その別のパッケージに"targetNamespace" と "targetNamespacePrefix"のタグ付き値が指定されている場合には、これらの情報がスキーマの生成時に利用されます。

 

さらに、それぞれの利用している別のパッケージごとにimportおよびinclude要素が生成されます。

include要素は同じtargetNamespaceタグ付き値を持つ別のパッケージであり、import要素はtargetNamespaceタグ付き値の値が異なるパッケージです。

クラス

最上位の要素であり、complexTypeの定義で生成されます。この要素の名前 と 型はクラスの名前と同じになります。クラスの属性はXSDのsequenceモデルグループが生成されます。

属性

この要素はクラスの属性として定義されます。要素の名前は属性の名前と同じになります。クラス名とあわせて利用されることで、名前が重複しないようになります。minOccursmaxOccursは属性の多重度が反映されます。

もし属性が他のクラスの場合には、complexType として定義されます。

関連

この要素の名前は関連の役割が利用されます。minOccursmaxOccursは関連の多重度が反映されます。なお、向きが指定されていない場合、所有者はソース側の要素と仮定します。

汎化

単一の汎化の場合には、extension要素が生成され、base属性に親となるクラスが設定されます。子クラスに定義されている属性は、allグループ内に追加されます。

<<enumeration>>

(ステレオタイプ)

simpleType要素はこのステレオタイプが付いたクラスとして定義されます。name属性はクラスの名前と同じになります。restriction 要素はbase が stringになります。クラスに定義された属性は、restrictionにenumeration要素として追加されます。属性の型はすべて無視されます。

 

注意:

  • もし、定義されていない場合、minOccursとmaxOccursの値はともに1になります。
  • もし関連の向きが未指定の場合、所有者はソース側と仮定しています。