Latest web development tutorials

XMLスキーマインジケータ

インジケータにより、我々は、文書モードの要素の使用を制御することができます。


インジケータ

7指標があります。

順序インジケータ:

  • すべて
  • 選択
  • シーケンス

発生インジケーター:

  • maxOccurs
  • minOccurs

グループインジケーター:

  • グループ名
  • attributeGroupの名

注文インジケータ

順序指標要素の順序を定義するために使用されます。

すべてのインジケータ

<すべて>サブ要素の規定に従い、インジケータは、任意の順序で表示することができ、それぞれの子要素は、一度だけ表示されている必要があります。

<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>

注:<すべて>インジケータを使用している場合、あなたが置くことができる<minOccurs属性> 0または1に設定されているが、唯一の<maxOccursの>インジケータが1に設定されている(後で説明<minOccurs属性>と<maxOccursの>)。

選択インジケータ

<選択肢>インジケーターがサブ要素が発生したために提供するか、別の子要素(または他の)を発​​生することがあります。

<xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>

シーケンスインジケータ

<シーケンス>子要素は、特定の順序で指定する必要があります。

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>


オカレンスインジケータ

発生インジケータを発生する素子の周波数を定義するために使用されます。

注:「順序」と「グループ」インジケーター(任意の、すべて、選択、シーケンスのすべてのために、グループ名のmaxOccursとminOccurs属性のデフォルトは1であり、グループ参照)。

maxOccursのインジケータ

<maxOccursの>インジケータは、要素が発生する可能性が最大回数を指定することができます。

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>

(minOccurs属性のデフォルト値は1です)上記の例は、子要素「CHILD_NAMEは「一度少なくとも「人」要素に表示される可能性があることを示し、ほとんどの10倍で表示されます。

minOccursインジケータ

<minOccurs属性>インジケータは、要素が発生する可能性が最小の回数を必要とする場合があります。

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>

上記の例は、子要素「CHILD_NAME」は「人」の要素で0の最小があるかもしれないことを示しているが、最大で10回表示されます。

ヒント:要素の出現回数を作るためには、限定されるものではなく、のmaxOccurs = "無制限"このステートメントを使用してください:

実際の例:

いわゆる「Myfamily.xml「XMLファイル:

<?xml version="1.0" encoding="ISO-8859-1"?>

<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">

<person>
<full_name>Hege Refsnes</full_name>
<child_name>Cecilie</child_name>
</person>

<person>
<full_name>Tove Refsnes</full_name>
<child_name>Hege</child_name>
<child_name>Stale</child_name>
<child_name>Jim</child_name>
<child_name>Borge</child_name>
</person>

<person>
<full_name>Stale Refsnes</full_name>
</person>

</persons>

このXMLファイルの上の「人」という名前のルート要素が含まれています。 このルート要素の内部では、我々は3「人」の要素を定義しました。 それぞれの「人」の要素は、「FULL_NAME」の要素が含まれている必要がありますが、それは最大5「CHILD_NAME」元素を含んでいてもよいです。

これは、スキーマファイル "family.xsd」です。

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
minOccurs="0" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>


グループインジケータ

定義に関連する要素のいくつかのバッチのためのグループインジケータ。

要素グループ

グループによって定義された要素グループが宣言されました:

<xs:group name="groupname">
...
</xs:group>

あなたは、グループ内のすべての、選択または配列要素をステートメントを定義する必要があります。 次の例では、正確な順序に従って、存在しなければならない要素の集合を定義し、「persongroup」という名前のグループを定義しています。

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

あなたが定義した後、グループが完了すると、あなたは別の定義でそれを参照することができます。

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

<xs:element name="person" type="personinfo"/>

<xs:complexType name="personinfo">
<xs:sequence>
<xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>

プロパティグループ

attributeGroupの文で定義された属性グループ:

<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>

次の例では、「personattrgroup」の名前のプロパティグループを定義します。

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

あなたは属性の完全なセットを定義した後、あなたはそうのように、別の定義でそれを参照することができます。

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

<xs:element name="person">
<xs:complexType>
<xs:attributeGroup ref="personattrgroup"/>
</xs:complexType>
</xs:element>