ホーム HTML CSS XML JAVASCRIPT   PHP SQL MORE...   リファレンス 事例集    

XML スキーマ complexType 要素


XML Schema Reference 完全なXMLスキーマリファレンス

定義と用法

complexType 要素は複合型を定義します。複合型要素は、 他の要素と属性または何れか一方を含むXML要素です。

要素情報

  • 親要素: element, redefine, schema

構文

<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>

(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))

</complexType>

(complexType 要素内で、? 記号は要素が 0 または 1 回出現できることを宣言し、* 記号は要素がゼロ回以上出現できることを宣言します)

属性 説明
id オプション。 要素へユニークな ID を指定する
name オプション。要素の名前を指定する
abstract オプション。複合型がインスタンスドキュメント内で使用できるかどうかを指定する。 Trueの場合、要素は直接にこの複合型を使用することはできないが、この複合型から派生した複合型を使用 する必要があることを示す。デフォルトは false
mixed オプション。文字データが、complexType 要素の子要素間に出現できるかどうかを指定する。 デフォルトは false。 simpleContent 要素が子要素の場合は、mixed 属性は指定できない!
block オプション。この複合型の代わりに、派生が指定された型を持つ複合型の使用を防ぐ。 この値は、#all または、拡張あるいは制約のサブセットであるリストを含めることができる:
  • extension - 拡張によって派生した複合型の使用を防ぐ
  • restriction - 制約によって派生した複合型の使用を防ぐ
  • #all - すべての派生した複合型の使用を防ぐ
final オプション。複合型要素の指定した型の派生を防ぐ。 #all または、拡張あるいは制約のサブセットであるリストを含めることができる:
  • extension - 拡張による派生を防ぐ
  • restriction - 制約による派生を防ぐ
  • #all - すべての派生を防ぐ
any attributes オプション。非スキーマ名前空間を持つ他の属性を指定する

例 1

次の例では、複合型で "note" という名前の要素があります:

<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
  <xs:element name="to" type="xs:string"/>
  <xs:element name="from" type="xs:string"/>
  <xs:element name="heading" type="xs:string"/>
  <xs:element name="body" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

例 2

次の例には、3つの追加要素(address、city、country)を持つ継承した型を拡張することにより、 別の複合型 "personinfo" から派生した複合型 "fullpersoninfo" があります:

<xs:element name="employee" type="fullpersoninfo"/>

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

<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

上記例で、"employee" 要素には、次の順で要素が含まれている必要があります: "firstname"、"lastname"、"address"、"city"、"country"。


XML Schema Reference 完全なXMLスキーマリファレンス