Élément extension du schéma XML

Définition et utilisation

L'élément extension étend les éléments simpleType ou complexType.

Informations sur l'élément

Fréquence d'apparition Une
Élément parent complexContent
Contenu annotation, attribute, attributeGroup, anyAttribute, choice, all, sequence, group

Grammaire

<extension
id=ID 
base=QName
attributs any
>
(annotation?,((group|all|choice|sequence)?,
((attribute|attributeGroup)*,anyAttribute?)))
</extension>
Attribut Description
id Optionnel. Définit l'ID unique de cet élément.
base Obligatoire. Définit le nom des éléments de type natif, simpleType ou complexType.
xml:lang Optionnel. Définit la langue utilisée dans le contenu.

(? Le symbole de déclaration est dans l'élément extension, qui ne peut apparaître qu'une seule fois ou pas du tout, * le symbole de déclaration indique que cet élément peut apparaître zéro ou plusieurs fois.)

Exemple

Exemple 1

L'exemple suivant ajoute un attribut pour étendre un simpleType existant :

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="size">
  <xs:restriction base="xs:string">
    <xs:enumeration value="small" />
    <xs:enumeration value="medium" />
    <xs:enumeration value="large" />
  </xs:restriction>
</xs:simpleType>
<xs:complexType name="jeans">
  <xs:simpleContent>
    <xs:extension base="size">
      <xs:attribute name="sex">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="male" />
            <xs:enumeration value="female" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>
</xs:schema>

Exemple 2

L'exemple suivant ajoute trois éléments pour étendre un élément complexType existant :

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>
</xs:schema>