スキーマの定義を保持します。
<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 の場合は、対象名前空間からの属性を名前空間プリフィックスで限定する必要があります。
attributeFormDefault の値は、対象名前空間で宣言されているすべての属性に対するグローバル既定値です。それぞれの属性では、form 属性を使用して、それぞれの属性のローカル スコープ内の設定をオーバーライドできます。
省略可能です。
blockDefault
派生の種類。blockDefault 属性は、このスキーマの対象名前空間の element 要素および complexType 要素の block 属性の既定値を設定します。block 属性は、指定した種類の派生を持つ複合型 (または要素) が、継承した複合型 (または要素) の代わりに使用されないようにします。値として、#all か、または extension、restriction、substitution のいずれかのサブセットであるリストを設定できます。extension 拡張によって派生した複合型が、この複合型の代わりに使用されないようにします。 restriction 制限によって派生した複合型が、この複合型の代わりに使用されないようにします。 substitution 要素の置換を抑止します。要素の substitutionGroup 属性内の他の要素の名前を指定することで、その要素自体を他の要素の代替として宣言できます。 #all すべての派生複合型が、この複合型の代わりに使用されないようにします。 省略可能です。
elementFormDefault
このスキーマの対象名前空間に宣言されている要素の形式。値は、文字列 qualified または unqualified です。既定値は unqualified です。値が unqualified の場合は、対象名前空間からの要素を名前空間プリフィックスで限定する必要はありません。
値が qualified の場合は、対象名前空間からの要素を名前空間プリフィックスで限定する必要があります。
elementFormDefault の値は、対象名前空間で宣言されているすべての要素に対するグローバル既定値です。それぞれの要素では、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="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>
参照
XML スキーマ リファレンス (XSD) | XML スキーマの要素 | include
詳細については、http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-schema で、W3C『XML Schema Part 1: Structures Recommendation』を参照してください。