<< 目次を表示 >> ページ位置: その他の記法のモデリング > 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> |
参照: