XSDモデルの抽象化

<< 目次を表示 >>

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

XSDモデルの抽象化

XMLスキーマは単純で抽象的なクラス図としてモデリングすることができます。これにより、最初は、抽象度が高い状態で構成を考えることができます。

このような抽象的なモデルは、ツールボックスのXMLスキーマグループの要素を利用して作成することができます。Enterprise Architectのスキーマ生成機能を利用することで作成したモデルからXSDを生成することができます。この場合、既定のマッピングを利用してXSDファイルが生成されます。

 

なお、Enterprise Architectバージョン6以降ではツールボックスの「XMLスキーマ」グループの要素を利用してXMLスキーマのモデリングを行います。下記のステレオタイプなしの場合の結果とは異なる点があります。より正確なモデリング・出力のためには、ツールボックスの「XMLスキーマ」グループの要素を利用してください。

 

 

例:

項目

説明

ダイアグラム

次の例は、Employee Detailsサンプルの生成例です。この例では、XSDに特有のステレオタイプやタグ付き値は一切使用していません。

スキーマ

次のスキーマの断片は上のモデルからEnterprise Architectで生成したものです。

 

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

      <xs:simpleType name="Status">

              <xs:restriction base="xs:string">

                      <xs:enumeration value="Full-Time"/>

                      <xs:enumeration value="Part-Time"/>

                      <xs:enumeration value="Casual"/>

                      <xs:enumeration value="Contract"/>

              </xs:restriction>

      </xs:simpleType>

      <xs:element name="Person" type="Person"/>

      <xs:complexType name="Person">

              <xs:sequence>

                      <xs:element name="firstName" type="xs:string"/>

                      <xs:element name="surName" type="xs:string"/>

                      <xs:element name="birthDate" type="xs:string"/>

                      <xs:element name="gender" type="xs:string"/>

                      <xs:element name="contactDetails" type="ContactInfo"/>

              </xs:sequence>

      </xs:complexType>

      <xs:element name="Employee" type="Employee"/>

      <xs:complexType name="Employee">

              <xs:complexContent>

                      <xs:extension base="Person">

                              <xs:sequence>

                                      <xs:element name="status" type="Status"/>

                                      <xs:element name="jobTitle" type="xs:string"/>

                                      <xs:element name="startDate" type="xs:date"/>

                                      <xs:element name="department" type="xs:string"/>

                              </xs:sequence>

                      </xs:extension>

              </xs:complexContent>

      </xs:complexType>

      <xs:element name="EmployeeRecords" type="EmployeeRecords"/>

      <xs:complexType name="EmployeeRecords">

              <xs:sequence>

                      <xs:element name="Employee" type="Employee" minOccurs="0" maxOccurs="unbounded"/>

              </xs:sequence>

      </xs:complexType>

      <xs:element name="ContactInfo" type="ContactInfo"/>

      <xs:complexType name="ContactInfo">

              <xs:sequence>

                      <xs:element name="homePhone" type="xs:string"/>

                      <xs:element name="mobilePhone" type="xs:string"/>

                      <xs:element name="officePhone" type="xs:string"/>

                      <xs:element name="email" type="xs:string"/>

                      <xs:element name="streetAddress" type="xs:string"/>

              </xs:sequence>

      </xs:complexType>

</xs:schema>

 

 

参照: