Untergeordneter Inhalt und Häufigkeitsoperatoren
Mit den bisher vorgestellten Operatoren haben wir keine Möglichkeit, Häufigkeiten
auszudrücken. So kann beispielsweise nicht festgelegt werden, wie viele Instanzen
eines Elementtyps in einem Element erlaubt sind. Dazu stellt XML drei Operatoren
zur Verfügung:
Operator | Bedeutung |
---|---|
? | Das Element kann höchstens einmal vorkommen (Optionalität). |
* | Das Element kann nie oder beliebig oft vorkommen. |
+ | Das Element muss einmal oder (kann) beliebig oft vorkommen. |
Hinweis
Wird kein Häufigkeitsoperator verwendet, muss das Unterelement genau einmal vorkommen - sofern es nicht Bestandteil
einer Alternativ-Verknüpfung ist.
Die Häufigkeitsoperatoren können auf Elemente und Gruppen von Inhaltsmodellen
angewendet werden, um komplexe Strukturen zu definieren:
Beispiel
<!ELEMENT schuh (name+,preis,bild*,details?)>
Die oben stehende Deklaration besagt: Wenn in dem XML-Dokument das Element schuh verwendet wird, dann muss dessen Inhalt mit mindestens einem Unterelement name beginnen, gefolgt von genau einem Unterelement preis, gefolgt von beliebig vielen bild-Unterelementen; das Unterelement details ist optional. Ein XML-Instanzdokument könnte dann beispielsweise so aussehen:
Beispiel
<schuh>
<name>Tennisschuh</name>
<name>Tennisschuh fuer Herren</name>
<name>Modischer Tennisschuh</name>
<preis>08</preis>
<bild/>
</schuh>
<name>Tennisschuh</name>
<name>Tennisschuh fuer Herren</name>
<name>Modischer Tennisschuh</name>
<preis>08</preis>
<bild/>
</schuh>