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>

 

 

参照: