要素を宣言します。
<element
abstract = Boolean : false
block = (#all | List of (extension | restriction | substitution))
default = string
final = (#all | List of (extension | restriction))
fixed = string
form = (qualified | unqualified)
id = ID
maxOccurs = (nonNegativeInteger | unbounded) : 1
minOccurs = nonNegativeInteger : 1
name = NCName
nillable = Boolean : false
ref = QName
substitutionGroup = QName
type = QName
{any attributes with non-schema Namespace}...>
Content: (annotation?, ((simpleType | complexType)?, (unique | key |
keyref)*))
</element>
属性
abstract
要素をインスタンス ドキュメント内で使用できるかどうかを示すインジケータ。値が true の場合は、要素をインスタンス ドキュメントに含めることはできません。代わりに、この要素の位置に、この要素の修飾名 (QName) を含む substitutionGroup 属性を持つ他の要素を指定する必要があります。複数の要素から、それぞれの要素の substitutionGroup 属性内でこの要素を参照できます。既定値は false です。
省略可能です。
block
派生の種類。block 属性は、指定した種類の派生を持つ要素がこの要素の代わりに使用されないようにします。値として、#all か、または extension、restriction、substitution のいずれかのサブセットであるリストを設定できます。extension
拡張によって派生した要素が、この要素の代わりに使用されないようにします。
restriction
制限によって派生した要素が、この要素の代わりに使用されないようにします。
substitution
置換によって派生した要素が、この要素の代わりに使用されないようにします。
#all
すべての派生要素が、この要素の代わりに使用されないようにします。
省略可能です。
default
要素のコンテンツが単純型かまたは textOnly の場合の要素の既定値。fixed 属性と default 属性は、同時には指定できません。
要素が単純型を含む場合は、この値はその型の有効な値であることが必要です。
省略可能です。
substitutionGroup
この要素の代替として使用できる要素の名前。この要素は、同じ型を持つか、または指定された要素の型から派生した型を持つ必要があります。substitutionGroup 属性は、参照元の要素がグローバル レベルで宣言されている場合 (親が schema 要素の場合) は任意の要素で使用できます。
値は、QName である必要があります。
省略可能です。
final
派生の種類。final 属性は、element 要素の final 属性の既定値を設定します。この値には、#all を含めることも、extension または restriction のサブセットであるリストを含めることもできます。extension
拡張によって派生した要素が、この要素の代わりに使用されないようにします。
restriction
制限によって派生した要素が、この要素の代わりに使用されないようにします。
#all
すべての派生要素が、この要素の代わりに使用されないようにします。
コンテナ要素が schema 要素でない場合は禁止されます。
省略可能です。
fixed
要素の事前設定の固定値。ただし、この要素のコンテンツが単純型かまたは textOnly の場合です。fixed 属性と default 属性は、同時には指定できません。
省略可能です。
form
要素の形式。既定値は、form 属性を含んでいる schema 要素の elementFormDefault 属性の値です。この値には、"qualified" または "unqualified" のどちらかを指定する必要があります。値が unqualified の場合は、この要素を名前空間プレフィックスで修飾する必要はありません。
値が qualified の場合は、この要素を名前空間プレフィックスで修飾する必要があります。
省略可能です。
id
この要素の ID。id の値は ID 型である必要があり、この要素を含んでいるドキュメント内で一意である必要があります。省略可能です。
maxOccurs
コンテナ要素内で指定できるこの要素の最大出現回数。値は 0 以上の整数です。最大数で上限を設定しない場合は、文字列 "unbounded" を使用します。コンテナ要素が schema 要素である場合は禁止されます。
省略可能です。
minOccurs
コンテナ要素内で指定できるこの要素の最小出現回数。値は 0 以上の整数です。この要素が省略可能であることを指定するには、この属性を 0 に設定します。コンテナ要素が schema 要素である場合は禁止されます。
省略可能です。
name
要素の名前。この名前は、『XML Namespaces』の仕様に定義されているとおり、コロンを含まない名前 (NCName) である必要があります。name 属性と ref 属性の両方を同時に指定することはできません。コンテナ要素が schema 要素である場合に必要になります。
省略可能です。
nillable
要素に明示的に null 値を割り当てることができるかどうかを示すインジケータ。これは、要素の属性ではなく要素コンテンツに適用されます。既定値は false です。nillable が true の場合は、要素のインスタンスで nil 属性を true に設定できます。nil 属性は、インスタンスの XML スキーマ名前空間の一部として定義されます。
たとえば、次のコード フラグメントは nillable が true に設定された単一要素を定義しています。
<xs:element name="myDate" type="xs:date" nillable="true"/>
その要素を使用し、明示的に null 値を指定する (nil 属性を true に設定する) コード フラグメントを次に示します。
<myDate xsi:nil="true"></myDate>
省略可能です。
ref
このスキーマ (または指定した名前空間によって示される他のスキーマ) に宣言されている要素の名前。ref 値は QName である必要があります。ref には、名前空間プレフィックスを含めることができます。コンテナ要素が schema 要素である場合は禁止されます。
ref 属性が指定されている場合は、complexType 要素、simpleType 要素、key 要素、keyref 要素、unique 要素、および nillable 属性、default 属性、fixed 属性、form 属性、block 属性、type 属性は指定できません。
<xs:element ref="comment"/>
省略可能です。
type
組み込みデータ型の名前か、またはこのスキーマ (または指定した名前空間によって示される他のスキーマ) に定義されている simpleType 要素または complexType 要素の名前。指定する値は、参照先の simpleType 要素または complexType 要素の name 属性と対応している必要があります。type 属性と ref 属性は同時には指定できません。
既存の単純型定義または複合型定義を使用して要素を宣言するには、type 属性を使用して既存の型を指定します。
<xs:element name="name" type="xs:string"/>
省略可能です。
要素情報
出現回数 |
スキーマ内に定義される要素の数。 |
親要素 |
|
コンテンツ |
解説
要素宣言では、型定義 (組み込みデータ型、単純型、または複合型) に名前を関連付けます。
要素宣言は、schema 要素 (グローバル スコープを持つ) の子要素として記述するか、または複合型定義内に記述できます。複合型内では、要素宣言は、ローカル宣言として記述するか、またはグローバル スコープを持つ要素への参照として記述できます。
グローバル要素宣言では、複合型を直接定義する必要があります。
simpleType 要素または complexType 要素は、ref 属性も type 属性も存在しない場合にだけ子要素として記述できます。
さらに、choice、all、sequence、complexType の各要素内では、要素を参照によって宣言できます。
例
他の要素の代替属性として使用できる 2 つの要素を宣言する例を次に示します。
<xs:element name="cat" type="xs:string"/>
<xs:element name="dog" type="xs:string"/>
<xs:element name="redDog" type="xs:string"
substitutionGroup="dog" />
<xs:element name="brownDog" type="xs:string"
substitutionGroup ="dog" />
<xs:element name="pets">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="cat"/>
<xs:element ref="dog"/>
</xs:choice>
</xs:complexType>
</xs:element>
その他のリソース
詳細については、www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-all で公開されている、W3C 勧告『XML Schema Part 1: Structures』を参照してください。