スキーマの定義を保持します。
<schema
attributeFormDefault = (qualified | unqualified): unqualified
blockDefault = (#all | List of (extension | restriction | substitution) : ''
elementFormDefault = (qualified | unqualified): unqualified
finalDefault = (#all | List of (extension | restriction | list |
union): ''
id = ID
targetNamespace = anyURI
version = token
xml:lang = language
{any attributes with non-schema Namespace}...>
Content: ((include | import | redefine | annotation)*, (((simpleType |
complexType | group | attributeGroup) | element | attribute | notation),
annotation*)*)
</schema>
属性
attributeFormDefault
このスキーマの対象名前空間で宣言されている属性の形式。この値には、"qualified" または "unqualified" のどちらかを指定する必要があります。既定値は unqualified です。値が unqualified の場合は、対象名前空間からの属性を名前空間プレフィックスで修飾する必要はありません。
値が qualified の場合は、対象名前空間からの属性を名前空間プレフィックスで修飾する必要があります。
この値は、対象名前空間で宣言されているすべての属性に対するグローバル既定値です。それぞれの属性では、form 属性を使用して、それぞれの属性のローカル スコープ内の設定をオーバーライドできます。
省略可能です。
blockDefault
派生の種類。blockDefault 属性は、このスキーマの対象名前空間の element 要素および complexType 要素の block 属性の既定値を設定します。block 属性は、指定した種類の派生を持つ複合型 (または要素) が、継承した複合型 (または要素) の代わりに使用されないようにします。値として、#all か、または extension、restriction、substitution のいずれかのサブセットであるリストを設定できます。extension
拡張によって派生した複合型が、この複合型の代わりに使用されないようにします。
restriction
制限によって派生した複合型が、この複合型の代わりに使用されないようにします。
substitution
要素の置換を抑止します。要素の substitutionGroup 属性内にある他の要素の名前を指定することで、その要素自体を他の要素の代替として宣言できます。
#all
すべての派生複合型が、この複合型の代わりに使用されないようにします。
省略可能です。
elementFormDefault
このスキーマの対象名前空間に宣言されている要素の形式。この値には、"qualified" または "unqualified" のどちらかを指定する必要があります。既定値は unqualified です。値が unqualified の場合は、対象名前空間からの要素を名前空間プレフィックスで修飾する必要はありません。
値が qualified の場合は、対象名前空間からの要素を名前空間プレフィックスで修飾する必要があります。
この値は、対象名前空間で宣言されているすべての要素に対するグローバル既定値です。それぞれの要素では、form 属性を使用して、それぞれの要素のローカル スコープ内の設定をオーバーライドできます。
省略可能です。
finalDefault
派生の種類。finalDefault 属性は、このスキーマの対象名前空間の element 要素、simpleType 要素、complexType 要素の final 属性の既定値を設定します。final 属性は、element 要素、simpleType 要素、complexType 要素の指定した型の派生を抑止します。element 要素および complexType 要素の場合は、finalDefault の値は、#all か、あるいは extension または restriction のサブセットであるリストです。simpleType 要素の場合は、finalDefault の値として list および union を追加できます。extension
既定では、このスキーマの要素を拡張によって派生させることはできません。element 要素と complexType 要素だけに適用されます。
restriction
制限による派生を抑止します。
list
リストによる派生を抑止します。simpleType 要素だけに適用されます。
union
共用体による派生を抑止します。simpleType 要素だけに適用されます。
#all
#all。既定では、このスキーマの要素をいずれの方法でも派生させることはできません。
省略可能です。
id
この要素の ID。id の値は ID 型である必要があり、この要素を含んでいるドキュメント内で一意である必要があります。省略可能です。
targetNamespace
このスキーマの名前空間の URI 参照。名前空間のプレフィックスを割り当てることもできます。プレフィックスが割り当てられていない場合は、非修飾参照で名前空間のスキーマ コンポーネントを使用できます。省略可能です。
version
スキーマのバージョン。省略可能です。
xml:lang
コンテンツで使用する言語を示すインジケータ。省略可能です。
要素情報
出現回数 |
1 回 |
親要素 |
親要素はありません。 |
コンテンツ |
include、import、annotation、redefine。 attribute、attributeGroup、element、group、notation、simpleType、complexType。 |
その他 |
include、import、redefine の各要素は、他の要素の前に記述する必要があります。ただし、annotation 要素はどこに記述してもかまいません。 |
解説
schema 要素は、スキーマ定義内のドキュメント要素 (最上位要素) です。
xmlns 属性を使用して指定する名前空間には、スキーマ定義の要素および属性 (schema、element など) の名前空間を含める必要があります。任意のプレフィックスを使用できますが、schema 名前空間を既定の名前空間に設定すると、XML スキーマ要素ごとにプレフィックスを使用する必要がないので便利です。
targetNamespace は、このスキーマ内と include 要素を使用してインクルードされるスキーマ内のすべてのスキーマ要素の名前空間です。インクルードされるスキーマは、コンテナ スキーマと同じ対象名前空間を持つか、またはまったく対象名前空間を持たないスキーマである必要があります。http://www.w3.org/2001/XMLSchema 名前空間のスキーマ コンポーネント (要素名、型) を修飾せず、http://tempuri.org/myschema (mydecimal) のスキーマ コンポーネントを msc プレフィックスで修飾する例を次に示します。
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msc="http://tempuri.org/myschema"
targetNamespace="http://tempuri.org/myschema">
<xs:element name="Price" type="msc:mydecimal"/>
</xs:schema>
XML スキーマの場合は、名前空間は次のとおりです。
http://www.w3.org/2001/XMLSchema
さらに、schema 要素には、この要素が使用する他のすべてのスキーマについての名前空間宣言を含める必要があります。
例
XML スキーマ名前空間を既定の名前空間として使用し、スキーマの対象名前空間を http://mynamespace/myschema
として定義するスキーマを次に示します。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://mynamespace/myschema">
<!--Put schema content here -->
</xs:schema>
その他のリソース
詳細については、www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-all で公開されている、W3C 勧告『XML Schema Part 1: Structures』を参照してください。