Articles

Xsdの例

この章では、XMLスキーマの記述方法を説明します。 また、スキーマはさまざまな方法で記述できることも学習します。

XMLドキュメント

“shiporder”と呼ばれるこのXMLドキュメントを見てみましょう。xml”:

XMLスキーマを作成します

ここで、上記のXMLドキュメントのスキーマを作成します。

まず、”shiporder”と呼ぶ新しいファイルを開くことから始めます。xsd”を発表した。 スキーマを作成するには、XMLドキュメント内の構造に従って、各要素を見つけたら定義するだけです。 私たちは、スキーマを定義するxs:schema要素が続く標準のXML宣言から始めます:

<?xmlバージョン=”1.0″エンコーディング=”UTF-8″?>
<xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
。..
</xs:スキーマ>

上記のスキーマでは、標準名前空間(xs)を使用し、この名前空間に関連付けられたURIはスキーマ言語定義であり、標準値はhttp://www.w3.org/2001/XMLSchemaです。

次に、”shiporder”要素を定義する必要があります。 この要素には属性があり、他の要素が含まれているため、複合型と見なします。 “Shiporder”要素の子要素は、サブ要素の順序付けられたシーケンスを定義するxs:sequence要素で囲まれています。

<xs:element name=”shiporder”>
<xs:complexType>
<xs:sequence>

</xs:sequence>
</xs:complexType>
</xs:element>

Then we have to define the “orderperson” element as a simple type (because it does not contain any attributes or other elements). The type (xs:

<xs:element name=”orderperson”type=”xs:string”/>

次に、複合型の二つの要素を定義する必要があります。”shipto”と”item”。 まず、”shipto”要素を定義します。

スキーマを使用して、maxOccurs属性とminOccurs属性を持つ要素の可能な出現回数を定義できます。 maxOccursは要素の最大発生回数を指定し、minOccursは要素の最小発生回数を指定します。 MaxOccursとminOccursの両方のデフォルト値は1です。これで、”item”要素を定義することができます。

これで、”item”要素を定義することができます。 この要素は、”shiporder”要素の中に複数回現れることがあります。 これは、”item”要素のmaxOccurs属性を”unbounded”に設定することによって指定されます。 “Note”要素は省略可能であることに注意してください。 MinOccurs属性をゼロに設定することでこれを指定しました。

“shiporder”要素の属性を宣言できるようになりました。 これは必須属性なので、use=”required”を指定します。

注:属性宣言は常に最後に来る必要があります:

<xs:attribute name=”orderid”type=”xs:string”use=”required”/>

“shiporder”というスキーマファイルの完全なリストは次のとおりです。xsd”:

スキーマを分割

前の設計方法は非常に簡単ですが、文書が複雑な場合には読み取りと維持が困難になる可能性があります。

次の設計方法は、最初にすべての要素と属性を定義し、次にref属性を使用してそれらを参照することに基づいています。

ここでは、スキーマファイルの新しいデザインです(“shiporder.xsd”):

名前付き型を使用して

第三の設計方法は、要素定義を再利用することを可能にするクラスまたは型を定義します。 これは、simpleTypes要素とcomplexTypes要素に名前を付け、要素のtype属性を介してそれらを指すことによって行われます。

ここでは、スキーマファイルの第三の設計です(“shiporder.xsd”):

restriction要素は、データ型がW3C XMLスキーマ名前空間データ型から派生していることを示します。 したがって、次のフラグメントは、要素または属性の値が文字列値でなければならないことを意味します。

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

The restriction element is more often used to apply restrictions to elements. Look at the following lines from the schema above:

<xs:simpleType name=”orderidtype”>
<xs:restriction base=”xs:string”>
<xs:pattern value=”{6}”/>
</xs:restriction>
</xs:simpleType>

これは、要素または属性の値が文字列でなければならないことを示し、それは行の正確に六文字でなければならず、それらの文字は0から9までの数字でなければならないことを示しています。