Die XML-Schemasprache ermöglicht einer Typendefinition die Basierung auf einer anderen Typendefinition. Auf diese Weise kann eine Typenhierarchie konstruiert werden. In diesem Abschnitt werden die Konzepte der Typenvererbung umrissen und einige wichtige Themen hervorgehoben, die mit der Ersetzung verwandt sind.
Eine vollständige Diskussion der XML-Schematypenvererbung finden Sie auf der Website World Wide Web Consortium (W3C) oder in zahlreichen Büchern zum XML-Schema.
Bei einem Typ handelt es sich um eine Einschränkung seines Basistyps, wenn Elemente des abgeleiteten Typs über einen kleineren Bereich zulässiger Werte (oder zulässiger Typeinträge) verfügen wie Elemente des Basistyps.
Eine Beschränkung eines komplexen Typs reduziert unter Umständen die Anzahl der Vorkommen eines seiner Typeinträge oderübergeht das Typmitglied vollständig.
Auf ähnliche Art und Weise reduziert eine Einschränkung eines einfachen Typs den Facettenwert Max Inclusive (Max. inklusive) oder erhöht den Facettenwert Min Inclusive (Min. inklusive).
Bei einem Typ handelt es sich um eine Erweiterung seines Basistyps, wenn Elemente des abgeleiteten Typs über einen kleineren Bereich zulässiger Werte (oder zulässiger Typeinträge) verfügen wie Elemente des Basistyps.
Eine Erweiterung eines komplexen Typs führt unter Umständen dazu, dass Typmitglieder, die nicht im Basistyp vorhanden waren, hinzugefügt werden, oder dass ein Typenmitglied.
Auf die gleiche Weise muss ein einfacher Typ immer aus einem komplexen Typ bestehen, der auf dem einfachen Typ basiert. (Es ist nicht möglich, einen einfachen Typ zu erweitern, indem die Reichweite seiner zulässigen Werte erweitert wird.)
Für die Ableitung einfacher Typen gelten spezielle Regeln. Ein einfacher Typ kann keinen anderen einfachen Typ erweitern. Dadurch wird sichergestellt, dass Einschränkungen, die von einem einfachen Typ verlangt werden, nicht entfernt werden können, indem ein anderer einfacher Typ von diesem abgeleitet wird.
Es ist jedoch zulässig, dass ein einfacher Typ von einem komplexen Typ erweitert wird. Dies beeinflusst die Reichweite zulässiger Werte des einfachen Typs nicht, aber es erlaubt das Hinzufügen von Attributen. Das Resultat der Erweiterung eines einfachen Typs ist immer ein komplexer Typ, der null oder mehr Attribute enthält.
Das letzte Attribut eines komplexen Typs kann drei Werte annehmen, die folgende Auswirkungen haben:
Das XML-Schema stellt zwei unterschiedliche Ersetzungsmechanismen zur Verfügung, von denen beide Typenvererbungsinformationen verwenden, um Ersetzungen zuzulassen oder nicht zuzulassen.
Die Elementersetzung wird von Ersetzungsgruppen kontrolliert. Sie kann über das Element selbst oder über den Elementtyp für Erweiterung und Einschränkung blockiert oder zugelassen werden.
Die Typenersetzung ermöglicht eine Definition des Elementtyps innerhalb des Instanzdokuments mit Hilfe des Attributs xsi:type für das Element, sodass der tatsächliche Typ des Elements unbekannt bleibt, bis das Element teilweise syntaktisch analysiert wurde. Dieser Mechanismus kann - basierend auf der Ableitungsmethode der involvierten Typen - ebenfalls zugelassen oder geblockt werden.