XML Schema schema 元素

定义和用法

schema 元素定义 schema 的根元素。

元素信息

出现次数 一次
父元素 (无父元素)
内容 include、import、annotation、redefine、attribute、attributeGroup、element、group、notation、simpleType、complexType

语法

<schema
id=ID 
attributeFormDefault=qualified|unqualified
elementFormDefault=qualified|unqualified
blockDefault=(#all|list of (extension|restriction|substitution))
finalDefault=(#all|list of (extension|restriction|list|union))
targetNamespace=anyURI
version=token
xmlns=anyURI
any attributes
>
((include|import|redefine|annotation)*,(((simpleType|complexType|
group|attributeGroup)|element|attribute|notation),annotation*)*)
</schema>

attribut

id

Optionnel. Définit l'ID unique de cet élément.

attributeFormDefault

Optionnel. Forme de l'attribut déclaré dans l'espace de noms cible de ce schéma. Cette valeur doit être l'une des chaînes suivantes : "qualified" ou "unqualified". La valeur par défaut est "unqualified".

  • "unqualified" indique que les attributs de l'espace de noms cible ne doivent pas être qualifiés par un préfixe de nom d'espace.
  • "qualified" indique que les attributs de l'espace de noms cible doivent être qualifiés par un préfixe de nom d'espace.

elementFormDefault

Optionnel. Forme de l'élément déclaré dans l'espace de noms cible de ce schéma. Cette valeur doit être l'une des chaînes suivantes : "qualified" ou "unqualified". La valeur par défaut est "unqualified".

  • "unqualified" indique que les éléments de l'espace de noms cible ne doivent pas être qualifiés par un préfixe de nom d'espace.
  • "qualified" indique que les éléments de l'espace de noms cible doivent être qualifiés par un préfixe de nom d'espace.

blockDefault

Optionnel. Définit la valeur par défaut de l'attribut block sur les éléments element et complexType dans l'espace de noms cible. L'attribut block empêche les types complexes (ou éléments) avec un type dérivé spécifié d'être utilisés pour remplacer les types complexes (ou éléments) hérités. Cette valeur peut inclure #all ou une liste, qui est un sous-ensemble d'extension, de restriction ou de substitution :

  • extension - Empêche les types complexes dérivés par extension d'être utilisés pour remplacer ce type complexe.
  • restriction - Empêche les types complexes dérivés par restriction d'être utilisés pour remplacer ce type complexe.
  • substitution - Empêche le remplacement de l'élément.
  • #all - Empêche tous les types complexes dérivés d'être utilisés pour remplacer ce type complexe.

finalDefault

Optionnel. Définit la valeur par défaut de l'attribut final des éléments element, simpleType et complexType dans l'espace de noms cible de cette architecture. L'attribut final empêche l'élément, le simpleType ou le complexType d'être remplacé par un type dérivé spécifié. Pour les éléments et les éléments complexType, cette valeur peut inclure #all ou une liste, qui est un sous-ensemble d'extension ou de restriction. Pour les éléments simpleType, cette valeur peut également inclure list et union :

  • extension - Par défaut, les éléments de ce schema ne peuvent pas être dérivés par extension. Se rapporte uniquement aux éléments element et complexType.
  • restriction - Empêche la dérivation par restriction.
  • list - Empêche la dérivation par liste. Se rapporte uniquement aux éléments simpleType.
  • union - Empêche la dérivation par union. Se rapporte uniquement aux éléments simpleType.
  • #all - Par défaut, les éléments de ce schema ne peuvent pas être dérivés par aucune méthode.

targetNamespace

La référence URI de l'espace de noms de ce schema. Il est également possible d'attribuer un préfixe à cet espace de noms. Si aucun préfixe n'est attribué, les composants schema de cet espace de noms peuvent être utilisés avec des références non limitées.

version

Optionnel. Définir la version du schema.

xmlns

Définir une ou plusieurs références URI d'espace de noms utilisés dans ce schema. Si aucun préfixe n'est attribué, le composant schema de cet espace de noms peut être utilisé avec des références non limitées.

any attributes

Optionnel. Définir toute autre propriété avec un espace de noms non schema.

Exemple

Exemple 1

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="values" type="xs:string">
</xs:schema>

Exemple 2

Dans cet exemple, le composant schema (nom de l'élément, type) dans l'espace de noms http://www.w3.org/2001/XMLSchema est non limité, tandis que http://www.codew3c.com/codew3cschema (mystring) est limité par le préfixe wsc :

<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
xmlns:wsc="http://www.codew3c.com/codew3cschema"
<element name="fname" type="wsc:mystring"/>
</schema>