l'élément schema de XML Schema

définition et utilisation

l'élément schema définit le point racine du schéma.

information de l'élément

fois une
parentElement (无父元素)
contenu include、import、annotation、redefine、attribute、attributeGroup、element、group、notation、simpleType、complexType

grammaire

<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éfinir l'ID unique de cet élément.

attributeFormDefault

Optionnel. Forme des attributs déclarés 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 des éléments déclarés 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éfinir 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 l'utilisation de types complexes (ou d'éléments) dérivés spécifiés pour remplacer les types complexes (ou éléments) hérités. Cette valeur peut contenir #all ou une liste contenant des éléments de la sous-ensemble extension, restriction ou substitution :

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

finalDefault

Optionnel. Définir la valeur par défaut des attributs final des éléments element, simpleType et complexType dans l'espace de nom cible de l'architecture. L'attribut final empêche la dérivation de types spécifiés pour element, simpleType ou complexType. Pour element et complexType, cette valeur peut contenir #all ou une liste qui est un sous-ensemble de extension ou restriction. Pour les éléments simpleType, cette valeur peut également contenir list et union :

  • extension - Par défaut, les éléments de ce schéma ne peuvent pas être dérivés par extension. Se applique uniquement aux éléments element et complexType.
  • restriction - Empêche la dérivation par restriction.
  • list - Empêche la dérivation par liste. Se applique uniquement aux éléments simpleType.
  • union - Empêche la dérivation par union. Se applique uniquement aux éléments simpleType.
  • #all - Par défaut, les éléments de ce schéma ne peuvent pas être dérivés par aucun moyen.

targetNamespace

La référence URI de l'espace de nom du schéma. Il est également possible d'attribuer un préfixe à cet espace de nom. Si aucun préfixe n'est attribué, le composant schema de cet espace de nom peut être utilisé avec des références non limitées.

version

Optionnel. Définir la version du schéma.

xmlns

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

any attributes

Optionnel. Définir toute autre propriété avec un espace de nom 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 nom http://www.w3.org/2001/XMLSchema n'est pas 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>