Sie sind hier:
  • FAQ: Default- und Fixed-Werte

Default- und Fixed-Werte in XML Schema-Defintionen

Der Umgang mit Default- und Fixed-Werten in XML Schema-Defintionen führte in verschiedenen Kontexten zu Fragen und Unklarheiten, die mit den folgenden Übersichten und Beispielen beseitigt werden sollen. Die folgenden Aussagen basieren auf den entsprechenden W3C-Regeln.

Regeln für XML-Elemente

Tabelle
Multiplizität fixed-Wert default-Wert Auswirkung
1..1 - - Das Element muss einmal auftreten. Es darf ein beliebiger Wert angegeben sein.
1..1 37 - Das Element muss einmal auftreten. Es muss der Wert 37 angegeben sein.
2..n 37 - Das Element muss mindestens zweimal auftreten. Es muss in jedem Fall der Wert 37 angegeben sein.
0..1 - - Das Element muss einmal oder keinmal auftreten. Es darf ein beliebiger Wert angegeben sein.
0..1 37 - Das Element muss einmal oder keinmal auftreten. Wenn es nicht auftritt, ist kein Wert für das Element gegeben. Wenn es ohne Angabe eines Wertes auftritt, hat es den Wert 37. Wenn ein Wert angegeben ist muss es der Wert 37 sein. Siehe hierzu Beispiel A.
0..1 - 37 Das Element muss einmal oder keinmal auftreten. Wenn es nicht auftritt, ist kein Wert für das Element gegeben. Wenn es ohne Angabe eines Wertes auftritt, hat es den Wert 37. Wenn ein Wert angegeben ist hat es eben diesen Wert. Siehe hierzu Beispiel B.
0..2 - 37 Das Element muss zweimal, einmal oder keinmal auftreten. Wenn es nicht auftritt, ist kein Wert für das Element gegeben. Wenn es ohne Angabe eines Wertes auftritt, hat es den Wert 37. Wenn ein Wert angegeben ist hat es eben diesen Wert. Siehe hierzu Beispiel C.
0..0 - - Das Element darf nicht auftreten.

Regeln für XML-Attribute

Tabelle
Multiplizität fixed-Wert default-Wert Auswirkung
required - - Das Attribut muss einmal auftreten. Es darf ein beliebiger Wert angegeben sein.
required 37 - Das Attribut muss einmal auftreten. Es muss der Wert 37 angegeben sein.
optional - - Das Attribut muss einmal oder keinmal auftreten. Es darf ein beliebiger Wert angegeben sein.
optional 37 - Das Attribut muss einmal oder keinmal auftreten. Wenn es nicht auftritt, hat es den Wert 37. (Achtung: Unterschied zu einem Element!) Es darf nicht ohne Angabe eines Wertes auftreten. (Achtung: Unterschied zu einem Element!) Wenn ein Wert angegeben ist muss es der Wert 37 sein. Siehe hierzu Beispiel D.
optional - 37 Das Element muss einmal oder keinmal auftreten. Wenn es nicht auftritt, hat es den Wert 37. (Achtung: Unterschied zu einem Element!) Wenn ein Wert angegeben ist hat es eben diesen Wert.

Beispiele

Beispiel A

Ausgangssituation

Element x hat die Multiplizität 0..1 und den fixed-Wert 37:

Schema-Instanzen

Fall A: Das Element tritt nicht auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass für Element x kein Wert vorliegt.

Fall B: Das Element tritt ohne Angabe eines Wertes auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass für Element x der Wert 37 vorliegt.

Fall C: Das Element tritt mit Angabe Wertes 37 auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass für Element x der Wert 37 vorliegt.

Fall D: Das Element tritt mit Angabe eines Wertes ungleich 37 auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass diese nicht valide ist.

Beispiel B

Ausgangssituation

Element x hat die Multiplizität 0..1 und den default-Wert 37:

Schema-Instanzen

Fall A: Das Element tritt nicht auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass für Element x kein Wert vorliegt.

Fall B: Das Element tritt ohne Angabe eines Wertes auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass für Element x der Wert 37 vorliegt.

Fall C: Das Element tritt mit Angabe Wertes 37 auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass für Element x der Wert 37 vorliegt.

Fall D: Das Element tritt mit Angabe eines Wertes ungleich 37 auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass der Wert 10 vorliegt.

Beispiel C

Ausgangssituation

Element x hat die Multiplizität 0..2 und den default-Wert 37:

Schema-Instanzen

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass für Element x die Werte 37 und 10 vorliegen.

Beispiel D

Ausgangssituation

Attribut x ist optional und hat den fixed-Wert 37:

Schema-Instanzen

Fall A: Das Attribut tritt nicht auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass für Attribut x kein Wert vorliegt.

Fall B: Das Attribut tritt ohne Angabe eines Wertes auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass sie nicht valide ist.

Fall C: Das Attribut tritt mit Angabe Wertes 37 auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass für Element x der Wert 37 vorliegt.

Fall D: Das Attribut tritt mit Angabe eines Wertes ungleich 37 auf

Bedeutung: Bei der Auswertung der Instanz wird festgestellt, dass diese nicht valide ist.

Weitere Hinweise

Die seitens des W3C veröffentlichte deutsche Übersetzung der Regeln zu Default- und Fixed-Werten war - zumindest in früheren Fassungen - fehlerbehaftet.

Bei der Nutzung von XML-Parsern ist darauf zu achten, dass Default-Werte nur unter bestimmten Bedingungen instanziiert werden und damit zur weiteren Verwendung zur Verfügung stehen.