Es gibt zwei grundsätzliche Unterscheidungen von Elementen: Elemente mit und Elemente ohne Inhalt (leere Elemente). Beispiele für beide Varianten kennen Sie sicherlich aus HTML.
<p>Dies ist ein Absatz in HTML. Er enthält Textzeichen als Inhalt, kann aber auch <em>weitere Elemente</em> aufnehmen.</p> <p>Im Gegensatz dazu ist ein IMG-Element leer. Es verwendet Attribute, um eine Grafikdatei zu laden. <img src="bild.gif"> Doch Vorsicht: In XML besitzen leere Elemente eine etwas andere Schreibweise. </p>
Folgende Abbildung zeigt das Syntax-Diagramm für ein element.
Containerbezeichnet, da sie als
Behälterfür Text dienen. Ausnahmen sind leere Elemente.
Einige
Elemente (sowohl leere als auch nicht leere) besitzen noch Attribute. Im
obigen HTML-Text ist SRC ein
Beispiel für ein solches Attribut. Zunächst zu den
gehaltvollen
Elementen: Sie werden durch
einen Start-Tag
(STag [40]) eingeleitet. Dieser besteht aus dem Namen des
Elements, eingeschlossen von spitzen Klammern.
Dem Start-Tag folgt der Inhalt (content) des Elements. Woraus dieser bestehen darf, d.h. welche anderen Elemente er enthalten oder ob Text darin vorkommen darf, wird in der DTD festgelegt. Elemente in Instanzen ohne DTD — d.h. wohlgeformte, aber nicht gültige XML-Dokumente — dürfen Zeichendaten, weitere Elemente, Kommentare usw. enthalten. Die genaue formale Beschreibung enthält die Klausel [43] content im nächsten Kapitel.
Den Abschluss des Elements markiert der End-Tag (ETag [42]). Es hat die Form </elementname>. Folgende Beispiele sind wohlgeformte Elemente.
<p class="anrede">Sehr geehrte Damen und Herren!</p> <witz> Treffen sich zwei XML-Experten, sagt der eine: <woertliche-rede>Guten Tag!</woertliche-rede> </witz>
Damit die Wohlgeformtheit erhalten bleibt, sind einige Punkte zu beachten:
Für gültige Dokumente gilt darüber hinaus, dass Attribute in der DTD zu deklarieren sind und dass die Wertetypen im Dokument mit dem in der DTD deklarierten Typ übereinstimmen.
Zur Veranschaulichung dienen die folgenden Beispiele, die fehlerhafte Elemente zeigen.Elemente:fehlerhafte
<kapitel name="einleitung" name="grundlagen"> Fehler: Gleicher Attributname mehrfach verwendet </kapitel> <if vergleich="x < y"> Fehler: Spitze Klammer im Attributwert </if>
Wir wenden uns nun der Beschreibung des leeren Elementes zu.Element:leeres Element In HTML besitzt es die Form eines Start-Tags. Das ist in XML anders. Der Unterschied besteht darin, dass hinter dem Namen nicht die einfache spitze Klammer steht, sondern die Zeichenfolge />. Ein Element wie img in HTML besitzt in XML folgende Schreibweisen, die beide zulässig sind.
<img src="foto.jpg"/> <img src="foto.jpg"></img>