Eine Einführung in die XML-Grammatik

Die ersten zu bestimmenden Elemente werden ausschließlich zur Formatierung des Brieftextes verwendet. Zu diesen gehören <b>, <i>, und <tt>, jeweils für fettgedruckte, schräge und nichtproportionale Schriften (fixed Fonts) ein. Hier die Element-Definitionen:


<!ELEMENT i ANY><!ELEMENT b ANY><!ELEMENT tt ANY>

Einfacher geht es nicht. Diese drei Zeilen deklarieren drei Elementtypen, die beliebige Komponenten enthalten können. Das Schlüsselwort ANY (IRGENDEIN) bedeutet, dass der Inhalt dieser Elemente aus weiteren Elementen, Zeichendaten, beidem oder gar keinen Komponenten bestehen kann. Dies bezeichnet man häufig als mixed content (Mischinhalt), obwohl dieser Begriff laut Spezifikation eine andere Bedeutung hat.

Hier einige weitere einfache Deklarationen:


<!ELEMENT br EMPTY><!ELEMENT pg  EMPTY>

Diese deklarieren leere Elemente oder Elementtypen, die keinen Inhalt enthalten werden. In diesem Falle werden sie verwendet, um das Ende eines Abschnitts oder einen Seitenumbruch zu bezeichnen, weshalb es keinen Sinn macht, Inhalte zuzulassen.

Inhaltliche Beschränkung
Häufig ist es notwendig, den Inhalt eines Elements nur auf bestimmte Elementtypen zu beschränken. Lässt ein Elementtyp nur Kind-Elemente als Inhalt zu, wird dieser Inhalt Elementinhalt genannt, was bedeutet, dass er keine Zeichendaten enthält. Weiße Flächen sind zulässig.

In meiner Anwendung kann ich Radio-Boxen entwerfen, die aus Gruppen von Radio-Buttons bestehen. Innerhalb einer Radio-Box sind nur Radio-Buttons zulässig, und es muss mindestens ein Radio-Button enthalten sein. Und so deklariert man diese Beschränkungen:


<!ELEMENT radiobox    (radio)+ >

Dies bedeutet, dass ein Radio-Box-Element ein oder mehr Elemente des Typs Radio enthält. Ein Asterisk (*) statt des Plus (+) lässt null oder mehr Elemente zu. Ein Fragezeichen (?) zeigt an, dass das Element optional einsetzbar ist, es kann also einmal erscheinen oder nicht erscheinen. Verwenden Sie keines dieser Zeichen, muss das Kind-Element genau einmal auftauchen.

Nehmen wir an, dass Radio-Boxen auch Check-Boxen enthalten. Sie können beide Kind-Elemente zulassen, indem Sie einen senkrechten Strich (|) zu deren Trennung verwenden.


<!ELEMENT radiobox    (radio | check)+ >

Für einen Adressen-Elementtyp sind spezifische Kind-Elementtypen in der richtigen Reihenfolge erforderlich. Dies wird durch die Komma-Trennung angezeigt:


<!ELEMENT address       (street, (street)?, city, state, zip) >

Sie können auch festlegen, dass Daten als Inhalt erscheinen können, indem Sie statt eines Elementtyps #PCDATA einsetzen, für geparste Zeichendaten. Dies ist bei der Kommatrennung nicht zulässig. Natürlich können Sie sehr komplexe Regeln gestalten. Davon ist allerdings abzuraten.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Microsoft stellt kleines KI-Modell Phi-3 Mini vor

Seine Trainingsdaten umfassen 3,8 Milliarden Parameter. Laut Microsoft bietet es eine ähnliche Leistung wie OpenAIs…

2 Tagen ago

Google schließt kritische Sicherheitslücke in Chrome

Sie erlaubt eine Remotecodeausführung außerhalb der Sandbox. Betroffen sind Chrome für Windows, macOS und Linux.

2 Tagen ago

Microsoft beseitigt Fehler im März-Sicherheitsupdate für Exchange Server

Probleme treten vor allem bei Nutzern von Outlook Web Access auf. Das optionale Hotfix-Update für…

3 Tagen ago

Neue iPads: Apple kündigt Event für 7. Mai an

Die Einladung zeigt einen zeichnenden Apple Pencil. Der wiederum deutet auf neue iPads hin. Es…

3 Tagen ago

EU-Parlament stimmt für Recht auf Reparatur

Die Richtlinie erhält 584 Ja-Stimmen und 3 Gegenstimmen. Das „Recht auf Reparatur“ beinhaltet unter bestimmten…

3 Tagen ago

Forscher entwickeln Exploits per GPT-4 aus Sicherheitswarnungen

Die Tests basieren auf tatsächlich existierenden Sicherheitslücken. GPT-4 erreicht eine Erfolgsquote von 87 Prozent. Alle…

4 Tagen ago