Substitutionsgruppen sind ein Merkmal des XML-Schemas, das es
ermöglicht, ein Element in einer XML-Nachricht durch ein anderes zu ersetzen.
Eine Substitutionsgruppe besteht aus einer Liste globaler Elemente, die anstelle eines anderen
globalen Elements, des so genannten Hauptelements, vorhanden sein können.
Eine Substitutionsgruppe wird definiert, indem die Eigenschaft
substitutionGroup (Substitutionsgruppe) für ein einzelnes
globales Element (das Mitgliedselement) festgelegt wird, sodass es auf ein anderes
globales Element (das Hauptelement) zeigt. Dadurch wird das Mitgliedselement zur
Ersetzungsgruppe des Hauptelements hinzugefügt.
- Hauptelemente
- Ein Hauptelement ist ein Element, das ersetzt werden kann. Beim Analysieren einer Nachricht
kann eines ihrer Mitgliedselemente an der Stelle des Hauptelements stehen, ohne dass ein
Gültigkeitsfehler verursacht wird.
- Abstrakte Elemente
- Ein abstraktes Element ist ein Hauptelement, das ersetzt werden muss und durch das
Elementattribut 'abstract' gekennzeichnet ist. In der Regel enthält die Ersetzungsgruppe von
abstrakten Elementen andere Elemente, andernfalls sind sie von geringem Nutzen. Wo immer ein
abstraktes Element in einer Nachrichtendefinition vorkommt, muss an seiner Stelle ein Mitglied der
zugehörigen Ersetzungsgruppe stehen.
- Attribut block für Elemente
- Das Attribut block für ein Element begrenzt die Gruppe
der globalen Elemente, durch die das Element ersetzt werden kann. Das Attribut
block kann eine beliebige Untermenge der Werte
restriction (Einschränkung),
extension (Erweiterung),
substitution (Ersetzung) oder
all (alle) annehmen.
- Wenn das Attribut block den Wert
restriction enthält, kann das Element nicht durch ein
Element, das auf einer Einschränkung des Typs des Elements basiert, ersetzt werden.
- Wenn das Attribut block den Wert
extension enthält, kann das Element nicht durch ein
Element, das auf einer Erweiterung des Typs des Elements basiert, ersetzt werden.
- Wenn das Attribut block den Wert
substitution enthält, kann das Element nicht durch
ein Element, das ein Mitglied der Substitutionsgruppe des Elements ist, ersetzt werden.
- Wenn das Attribut block den Wert
all enthält, gelten alle oben genannten Begrenzungen.
- Attribut final für Elemente
- Das Attribut final für ein Element begrenzt die Gruppe
der globalen Elemente, die ein Mitglied der Substitutionsgruppe des Elements sein können. Das Attribut final kann einer beliebigen Untermenge der
Werte restriction (Einschränkung),
extension (Erweiterung) und
all (alle) entsprechen.
- Wenn das Attribut final den Wert
restriction enthält, kann ein Element, das auf einer
Einschränkung des Typs des Elements basiert, nicht in der Substitutionsgruppe des Elements
enthalten sein.
- Wenn das Attribut final den Wert
extension enthält, kann ein Element, das auf einer
Erweiterung des Typs des Elements basiert, nicht in der Substitutionsgruppe des Elements enthalten
sein.
- Wenn das Attribut final den Wert
all enthält, gelten beide oben genannten
Begrenzungen.
- Attribut block für komplexe Typen
- Das Attribut block für einen komplexen Typ begrenzt
die Gruppe der anderen Typen, durch die der komplexe Typ ersetzt werden kann. Das Attribut
block kann den Wert
restriction (Einschränkung),
extension (Erweiterung) oder
all (alle) annehmen. Die Werte haben dieselbe
Bedeutung wie die für das Blockattribut eines Elements angezeigten Werte. Ein Element, das Mitglied
einer Ersetzungsgruppe ist, kann das Hauptelement nur dann ersetzen, wenn sein Typ mit dem
Blockattribut für den Typ des Hauptelements kompatibel ist.
- Standardwerte für Attribute block und
final
- Für die Attribute block und
final können auf der Ebene der Nachrichtendefinitionsdatei
Standardwerte festgelegt werden. Wenn für eines oder beide dieser Attribute ein Standardwert
festgelegt wurde und das relevante block- oder
final-Attribut nicht auf Objektebene festgelegt wurde,
wird für das betreffende Objekt die Standardeinstellung verwendet.
Sie können die
Standardeinstellung auf Objektebene überschreiben.