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.
Neueste Kommentare
Noch keine Kommentare zu Eine Einführung in die XML-Grammatik
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.