Björn Klippstein

XML-Grundbegriffe

Klippstein IT Service

Aus 4webmaster.de

Wechseln zu: Navigation, Suche

XML verwendet bestimmte Begriffe wie Tag, Element, Attribut usw. Diese Begriffe sollen anhand des folgenden XHTML-Fragmentes erklärt werden (XHTML ist XML, genauer gesagt eine spezielle XML-Sprachvariante)

<html>
  <h3>Eine Überschrift</h3>
  Was ich immer schon mal sagen wollte:
  <![CDATA[Zwei > Eins]]>
  <ul>
    <li>Blabla BlaBla Blabla</li>
    <li>Blubb Blubb</li>
  </ul>
</html>

Obiger Quellcode ergibt noch keine vollständige XHTML-Seite. Es fehlen das head-Element und das body-Element.

Tag Tags sind die Wörter mit den spitzen Klammern, z.B. <h3> oder </li>. Tags kommen normalerweise paarweise vor, d.h. es gibt immer einen Start-Tag (ohne Slash) und einen End-Tag (mit Slash).
Element Start-Tag, End-Tag und alles dazwischen bilden ein Element. Im obigen Beispiel gibt es ein h3-Element. Es hat den Inhalt »Eine Überschrift«. Außerdem gibt es ein ul-Element. Es beinhaltet weitere Elemente, nämlich zwei li-Elemente.
Inhalt Elemente können verschiedene Inhalte haben:
  • PCDATA (parsed character data): Im Beispiel ist der Inhalt des h3-Elementes »Eine Überschrift«. Solcher Text wird vom Parser interpretiert. PCDATA darf keine spitzen Klammern, keine Anführungszeichen und kein kaufmännisches Und enthalten. Diese Zeichen müssen maskiert werden, siehe XML-eigene Zeichen.
  • CDATA: Alles innerhalb eines CDATA-Abschnittes wird vom Parser ignoriert. D.h. innerhalb eines CDATA-Abschnittes müssen die XML-eigenen Zeichen nicht maskiert werden. Ein CDATA-Abschnitt wird mit <![CDATA[ begonnen und endet mit ]]>
    im obigen Beispiel ist der Text »Zwei > Eins« als CDATA-Abschnitt formuliert. Ein CDATA-Abschnitt darf fast alles enthalten, nur keine weiteren CDATA-Abschnitte.
  • weitere Elemente: Im Beispiel enthält das ul-Element zwei li-Elemente (die wiederum PCDATA enthalten).
  • mixed content: Wenn ein Element sowohl PCDATA als auch weitere Elemente enthält, spricht man von mixed content.
  • keinen Inhalt: Der Inhalt kann auch leer sein. Z.B. würde <p></p> einen leeren p-Abschnitt erstellen. Leere Elemente können in einer Kurzform dargestellt werden, in der Start-Tag und End-Tag zu einem zusammengefasst werden: <p/>. Häufig verwendete leere Elemente sind z.B. <br/> (Zeilenumbruch) oder <hr/> (horizontale Linie).
  • Entities: Das sind Platzhalter für vorgefertigte Inhalte. Eine Entity hat den Syntax &entityname;
    Entities werden z.B. zur Darstellung der XML-eigenen Zeichen verwendet, z.B. &quot; für ein Anführungszeichen. Mit DTD können Sie auch eigene Entities definieren.
Attribut Durch Attribute können einem Element zusätzliche Eigenschaften zugewiesen werden. Ein Attribut wird mit dem Syntax Attributname="Wert" zugewiesen. Es sind auch einfache Anführungszeichen möglich.
Beispiel: <br clear="both" />
Document-Element Jedes XML-Dokument hat eine Baumstruktur. Das Document-Element ist das oberste Element des Dokumentes. Es beinhaltet alle anderen Elemente. In XHTML ist das Document-Element <html> … </html>. Nicht zu verwechseln mit dem Root-Knoten.
Root-Knoten Der Root-Knoten ist noch eine Ebene höher als das Document-Element. Er hat kein Pendant im XML-Dokument und gilt nicht als Element. Siehe XPath.
Kommentar Beispiel: <!-- Ein Kommentar -->
Verarbeitungs-
anweisung
Mit einer Verarbeitungsanweisung (PI prozessing instruction) können der Anwendung, die das XML-Dokument verarbeitet, weitere Anweisungen gegeben werden. Zum Beispiel kann einem Browser für die Verarbeitung einer XHTML-Datei die Anweisung gegeben werden, eine bestimmte CSS-Datei zu verwenden. Verarbeitungsanweisungen werden in der Form <?pi-name … ?> notiert. Beispiel:
<?xml-stylesheet type="text/css" href="my.css" ?>

Auch PHP-Code wird als XML-Verarbeitungsanweisung notiert, Beispiel:
<?php echo'Hello, World'; ?>

Node / Knoten Jedes Element, jedes Attribut und jeder PCDATA- oder CDATA-Inhalt ist ein Knoten in der Baumstruktur, die das XML-Dokument bildet. Jeder Knoten ist einzeln adressierbar, siehe XPath.
XML-Parser Ein XML-Parser oder XML-Prozessor liest ein XML-Dokument ein und stellt eine API zur Verfügung, mit der auf das Dokument zugegriffen werden kann.
  • Eine dieser APIs ist das DOM Document Object Model.
  • Eine andere wichtige API ist SAX Simple API for XML, sie arbeitet im Gegensatz zu DOM ereignisorientiert.

Validierende Parser können das Dokument auch anhand einer DTD Document Type Definition validieren.