Projekte rund um Hard- und Software
 
Inhaltsverzeichnis

XML

Die Grundidee hinter XML ist, den Informationsgehalt eines Dokumentes von seiner äußeren Form abzukapseln. Ein Dokument besteht aus 3 Teilen: dem Inhalt, Informationen zur Darstellung und der Struktur.
Aus dieser Grundidee der Kapselung entstand zunächst aber nicht XML, sondern die Metasprache SGML (Standard Generalized Markup Language). Ein SGML-Dokument besteht nur aus den Textdaten und Informationen darüber, welche Textdaten zu welchen Textelementen gehören. Das hat den Vorteil, dass man ein einmal geschriebenes Dokument auf viele unterschiedliche Arten formatieren kann, ohne dass an dem eigentlichen Dokument etwas geändert werden muss.
Folgende 3 Teile gehören zu einem SGML-Dokument:

  • Document Type Definition
    Diese definiert die Grammatik für den Aufbau eines SGML-Dokumentes. In ihr werden der hierarchische Aufbau festgelegt und es werden die Tags für die Dokumente definiert
  • Deklaration
    Sie legt grundlegende Dinge fest, wie zugelassene und verbotene Zeichen, den verwendeten Zeichensatz und noch einiges mehr
  • Dokument Instanz
    enthält die eigentlichen Textdateien

Die mit Hilfe von SGML erzeugten Texte können dann als HTML ausgeben werden, es können reine ASCII-Texte erzeugt werden und es besteht die Möglichkeit, die SGML-Datei formatiert auf einem Drucker auszugeben.

HTML ist eine Anwendung von SGML und XML ist eine Untermenge. In XML sind Tags nicht vordefiniert wie in HTML (z.B. werden zwischen den Tags <head> und </head> Informationen über das html-Dokument geliefert, wie der Titel, der Inhalt usw.), sondern müssen selber definiert werden.

Auf Grund der Tatsache, dass XML eine Untermenge von SGML ist, bleibt das oben Beschriebene auch für XML gültig.

Beispiel

Die nun folgende DTD soll zum besseren Verständnis dienen:

mail.dtd:

<!ELEMENT email (absender, a_mail, empfaenger, e_mail, betreff, nachricht)>
  <!-- Dieses Element schließt die 6 Tags, die in Klammer stehen, ein -->

<!ELEMENT absender (#PCDATA)>
  <!-- enthält nur den Namen des Absenders -->

<!ELEMENT a_mail (#PCDATA)>
  <!-- enthält nur die Email-Adresse des Absenders -->

<!ELEMENT empfaenger (#PCDATA)>
  <!-- enthält nur den Namen des Empfaengers -->

<!ELEMENT e_mail (#PCDATA)>
  <!-- enthält nur die Email-Adresse des Empfaengers -->

<!ELEMENT betreff (#PCDATA)>
  <!-- enthält die bekannte Betreffszeile, die in Mail-Programmen angezeigt werden -->

<!ELEMENT nachricht (#PCDATA)>
  <!-- zwischen <text> und </text> steht nun die eigentliche Nachricht -->

Ein gültiges XML-Dokument, das die oben festgelegten Regeln befolgt, könnte also folgendermaßen aussehen:

<!DOCTYPE email SYSTEM "mail.dtd">
<email>

  <absender>
     Jack O'Neill
  </absender>

  <a_mail>
    jack@stargate.com
  </a_mail>
  
  <empfaenger>
    Samantha Carter
  </empfaenger>

  <e_mail>
    sam@stargate.com
  </e_mail>

  <betreff>
    Neues Stargate gefunden
  </betreff>

  <text>
    Hallo Sam,
    Wir haben in der Antarktis ein neues Stargate gefunden.
    Mit freundlichen Grüßen

    Jack O'Neill
  </text>

Nicht erlaubt in XML sind sich überlappende Tags, also XML-Dokumente der Form:

<DOCTYPE element SYSTEM "mail.dtd">

<element>
  Dies ist ein einfacher Text!
<element_2>
  Dies ist auch nur ein einfacher Text!
</element>
</element_2>

CSS

Diese beiden Dateien geben jedoch noch keine Information darüber, wie das Dokument auf einem Ausgabemedium (z.B. einem Drucker) ausgegeben werden sollen, sie geben also keinen Aufschluss über die Formatierung. Der Browser verwendet für die Darstellung von XML-Dokumenten Default-Werte, solange nichts anderes angegeben wurde.
Will man die Formatierung selber festlegen, so kann man das mit CSS (Cascading Style Sheets) machen. In diesem Projekt wird CSS jedoch nicht benötigt und wurde hier nur der Vollständigkeit halber erwähnt.
Mit Hilfe von XML tauschen die Geräte Informationen über gespeicherte Video- und Musikdateien aus. Die Darstellung der Dateien erfolgt dabei so, wie es der Hersteller des betreffenden UPnP-Gerätes geplant hat, damit es am besten auf dem Display angezeigt werden kann.

 
grundlagen/xml.txt · Zuletzt geändert: 2009/03/01 20:04 (Externe Bearbeitung)
 
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki