XML Schema Extension-Element

Definition und Verwendung

Das Element 'extension' erweitert die Elemente 'simpleType' oder 'complexType'.

Elementinformation

Anzahl der Auftretens einmal
Übergeordnetes Element complexContent
Inhalt Annotation, Eigenschaft, Eigenschaftsgruppe, beliebige Eigenschaft, Auswahl, Alle, Reihenfolge, Gruppe

Syntax

<extension
id=ID 
base=QName
beliebige Eigenschaften
>
(Annotation?,((Gruppe|Alle|Auswahl|Reihenfolge)?,
((Eigenschaft|Eigenschaftsgruppe)*,beliebigeEigenschaft?)))
</extension>
Eigenschaft Beschreibung
id Optional. Definiert den eindeutigen ID der Elemente.
base Notwendig. Definiert den Namen der eingebauten Datentypen, der 'simpleType'- oder 'complexType'-Elemente.
xml:lang Optional. Definiert die Sprache, die im Inhalt verwendet wird.

(Die Symboldeklaration erfolgt im Element 'extension', das null oder einmal vorkommen kann, der Stern zeigt an, dass das Element null oder mehrmals vorkommen kann.)

Beispiel

Beispiel 1

Das folgende Beispiel zeigt, wie durch Hinzufügen von Attributen ein vorhandenes simpleType-Element erweitert wird:

<?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:sequence>
  </xs:simpleContent>
</xs:complexContent>
</xs:complexType>

Beispiel 2

Das folgende Beispiel zeigt, wie durch Hinzufügen von drei Elementen ein vorhandenes complexType-Element erweitert wird:

<?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:element name="country" type="xs:string"/>
</xs:complexContent>
<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>