spacer
    home > webdesign > XML
spacer
Webdesign XML - Extensible Markup Language

XML - Extensible Markup Language

Was ist XML?

XML ist eine vereinfachte Form von SGML (Standard Generalized Markup Language) . So wie HTML mit SGML definiert ist, so kann man mit XML eigene Markup-Sprachen oder auch eigene Erweiterungen von HTML bzw. XHTML (Extensible Markup Language) mit eigenen Tags für bestimmte Elemente mit bestimmten logischen Bedeutungen definieren.

Die mit XML definierten Markup-Sprachen werden als XML-Anwendungen bezeichnet. Die Syntax, Struktur und Bedeutung der Tags wird für jede XML-Anwendung mit einer DTD oder einem Schema definiert. Die Verarbeitung kann mit XML-Parsern mit DOM oder SAX erfolgen. Wie die Elemente sichtbar dargestellt werden sollen, kann mit XSL oder CSS definiert werden. XML-Dokumente können auch Hypertext-Links enthalten, entweder wie in HTML oder in der Form von XLink oder XPointer.
XML-Anwendungen eignen sich einerseits für die Darstellung in Web-Browsern - also als Ersatz oder Ergänzung von HTML - und andererseits für die Verarbeitung mit EDV-Programmen (z.B. in der Textverarbeitung, Tabellenkalkulation, Datenbanken, kommerziellen Anwendungen u.a.) und als Austauschformat zwischen solchen Programmen - also als Ersatz für RTF, CSV und EDI.

Warum XML?

XML ist eine Metasprache zur Definition von Markup-Sprachen.

So wie HTML mit SGML definiert ist, so kann man mit XML eigene Markup-Sprachen definieren, und künftige Versionen von HTML werden ebenfalls mit XML definiert werden (XHTML).

So wie HTML festgelegt und normiert ist und daher für den weltweiten Austausch und die Übertragung und Verwendung von Web-Pages zwischen vielen verschiedenen Web-Servern und Web-Browsern geeignet ist, so kann man mit XML eigene Datei-Strukturen für verschiedene Zwecke definieren und normieren, die dann ebenfalls von vielen Personen mit vielen verschiedenen Programmen und auf vielen verschiedenen Rechnern verwendet werden können. Mit der Hilfe von Style-Sheets können XML-Dokumente außerdem ebenfalls, so wie HTML-Files, von Web-Browsern dargestellt und ausgedruckt werden.

Wofür kann man nun solche mit XML definierte Markup-Sprachen, sogenannte "XML-Applikationen", verwenden? Welchen Zweck kann es haben, mit XML solche Sprachen festzulegen und zu normieren? Welche Vorteile haben solche XML-Anwendungen gegenüber HTML oder anderen Datei-Formaten?

  • Mit XML kann man die logische Bedeutung von Daten, Informationen und Texten definieren - ähnlich wie die Tabellen- und Spalten-Bezeichnungen in Datenbanken und Tabellenkalkulationen.

  • XML ermöglicht im Gegensatz zu HTML die Definition eigener oder zusätzlicher "Befehle" (Tags) - ähnlich wie bei der Definition von Macros in der Textverarbeitung

  • XML-Applikationen eignen sich als Plattform- und Software-unabhängiges Austausch-Format für Daten zwischen verschiedenen Programmen und Rechnern - ähnlich wie RTF für Texte, CVS für Tabellen, EDI für kommerzielle Anwendungen - aber in einem einheitlichen, allgemein verwendbaren, Hersteller-unabhängigen Format.

Außerdem ist die Syntax von XML so streng festgelegt, daß XML-Anwendungen wesentlich einfacher, bequemer und effizienter von Programmen weiter verarbeitet werden können als HTML-Files.

Markup und Darstellung

Die HTML-Befehle beschreiben eigentlich nur, in welcher Art und Weise die Textteile strukturiert werden sollen (Überschrift, Absatz, Liste, Tabelle, Normalschrift, Fettschrift usw.).

Beispiel:

Der folgende HTML-Code

<p>
Stefan<b>Reiser</b>
<br>
Testergasse 47
<br>
D-1111 Teststadt
<br>
Geb. : 22 Juni 1968</p>
                  

bewirkt eine Darstellung wie

Stefan Reiser
Testergasse 47
D-1111 Teststadt
Geb. : 22 Juni 1968

Mit XML kann man Tags definieren, die die Bedeutung der Informationen angeben. Mit einer geeigneten DTD kann die obige Information also in einem XML-Dokument in der folgenden Form enthalten sein:

<person id="p4681" >
   <vorname>Stefan</vorname>
   <zuname>Reiser</zuname>
   <adresse>Testergasse 47 </adresse>
   <plz>D-1111</plz>
   <ort>Teststadt</ort>
   <geburtstag>
      <tag>22</tag>
      <monat>Juni</monat>
      <jahr>1968</jahr>
   </geburtstag>
</person>

Mit einem geeigneten Style-Sheet bewirkt das XML-Dokument genau die selbe Darstellung wie das obige HTML-Dokument:

Stefan Reiser
Testergasse 47
D-1111 Teststadt
Geb. : 22 Juni 1968

Mit einem anderen Style-Sheet kann dasselbe XML-Dokument aber auch in jeder beliebigen Art dargestellt werden.

Verarbeitung in Programmen

XML-Dokumente eignen sich nicht nur für die Darstellung in Web-Browsern und das Ausdrucken auf Papier, sondern auch für die weitere Verarbeitung in Programmen, in denen die logische Bedeutung der Informationen eine Rolle spielt.

Beispiel:

Eine Suche nach dem Wort "März" innerhalb von Absätzen <p> in HTML-Files der obigen Struktur würde nicht nur die Personen liefern, die im März geboren sind, sondern auch den Rektor mit dem Namen Leopold März sowie alle Personen, die in der Märzstraße wohnen.

Eine Suche nach dem Wort "März" innerhalb der in den XML-Files mit <geburtstag> bezeichneten Elemente würde hingegen wirklich nur die Personen liefern, die in diesem Monat Geburtstag haben.

Außerdem kann man die in den XML-Files beschriebenen Personen leicht nach den einzelnen Datenfeldern sortieren, also z.B. nach der Postleitzahl oder nach dem Geburtsjahr, oder das Durchschnittsalter berechnen oder andere Verarbeitungen der Daten vornehmen.

XML-Syntax

Start- und End-Tags

Die meisten Befehle (Tags) in SGML- und XML-Anwendungen - wie auch in HTML - treten paarweise als Start- und End-Tags auf und geben an, welche Bedeutung der dazwischen liegende (eventuell durch weitere Tags unterteilte) Text hat:

<xxx>  ... Text ...  </xxx>
                  

oder

<xxx  yyy="zzz"  ... >  ... Text ...  </xxx>
                  

In HTML ist der End-Tag in vielen Fällen optional, d.h. er darf weggelassen werden. Der Web-Browser kann dann auf Grund der in der HTML-Norm festgelegten Bedeutung der HTML-Tags "erraten", an welcher Stelle er sich den nicht angegebenen End-Tag "dazudenken" muss.

Beispiel:

Der HTML-Tag <p> beginnt einen neuen Absatz. Der End-Tag </p> muss nicht angegeben werden, denn immer wenn ein neuer Absatz mit <p> oder eine Überschrift mit <h1> bis <h6> oder eine Liste mit <ul> oder <ol> oder <dl> beginnt, bedeutet das automatisch das Ende des vorherigen Absatzes.

Bei XML-Anwendungen müssen (im Gegensatz zu HTML) die End-Tags immer angegeben werden und dürfen niemals weggelassen werden:

Beispiel:

Richtig ist

<p> ... Text ... </p><p> ... Text ... </p>
                  

Nicht richtig wäre

<p> ... falsch ... <p> ... falsch ...
                  

Diese "strengere" Regel hat unter anderem die folgenden Gründe: Im Gegensatz zur festgelegten HTML-Norm soll der Anwender bei XML-Applikationen die Möglichkeit haben, nachträglich zusätzliche Tags in der DTD oder im Schema zu definieren, und daher können die Verarbeitungsprogramme nicht so wie der HTML-Browser immer nach denselben Regeln die fehlenden End-Tags selbst korrigieren. Außerdem sind die verarbeitenden Programme viel einfacher zu schreiben und können viel effizienter ablaufen, wenn sie sich darauf verlassen können, daß das XML-File syntaktisch richtig ist, und keine automatische Fehlerkorrektur programmiert werden muss.

Einzelne Elemente ohne End-Tag

In HTML gibt es Tags, zu denen es keinen End-Tag gibt, weil sie nicht die Eigenschaften eines Textbereiches definieren sondern einzelne, selbständige Elemente darstellen. Beispiele sind <br> für einen Zeilenwechsel, <hr> für eine Trennlinie oder <img> für ein Bild.

Im XML müssen alle Tags der Form <xxx> immer einen End-Tag der Form </xxx> haben. Die XML-Tags, zu denen es keinen End-Tag gibt, müssen zur Unterscheidung davon in der Form

<xxx />
                  

oder

<xxx yyy="zzz" ... />
                  

gechrieben werden.

Nicht erlaubt ist also

<p> ... <br> ... falsch ... <br> ... falsch ... </p>
                  

sondern man muss stattdessen richtig

<p> ... <br /> ... <br /> ... </p>
                  

schreiben oder eventuell auch

<p> ... <br></br> ... <br></br> ... </p>
                  

Der Grund für diese "strengere" Regel liegt ebenfalls in einer Vereinfachung der Programmierung: Das Verarbeitungsprogramm muss nicht darauf "warten", welche End-Tags eventuell noch kommen werden, sondern weiß immer sofort, ob es sich um ein fertiges Einzel-Element oder um den Start-Tag eines längeren Elementes handelt.

Groß- und Kleinschreibung

Im Gegensatz zu HTML ist bei XML die Groß- und Kleinschreibung nicht egal: <xxx> und <Xxx> und <XXX> sind voneinander verschiedene Befehle.

Wenn ein Befehl als <xxx> definiert ist, dann darf man nicht stattdessen <XXX> schreiben, und auch eine Kombination wie

<XXX> ... falsch ... </xxx>
                  

wäre nicht erlaubt.

Parameter (Attribute)

Auch die Regeln dafür, wann die Werte von "Attributen" (also Parametern innerhalb von Befehlen) zwischen Quotes-Zeichen eingeschlossen werden müssen, sind bei XML strenger als das, was manche Web-Browser in HTML zulassen. Alle Attribut-Werte sollen immer in Quotes-Zeichen eingeschlossen werden. Dabei dürfen entweder das ASCII-Zeichen Double-Quotes " oder das ASCII-Zeichen Apostroph ' verwendet werden (natürlich nur paarweise, nicht vermischt), aber nicht die ähnlich aussehenden typographischen Anführungszeichen oder Akzentzeichen.

Richtig sind also nur die folgenden beiden Varianten:

<xxx  yyy="zzz"  ...  >
<xxx  yyy='zzz'  ...  >
                  

Entities

Wie in SGML (und daher auch in HTML) kann man auch in XML Entities definieren, bei denen einem Namen ein bestimmter Text zugeordnet wird. Diese Entities kann man dann überall im Text und auch in Parametern von Befehlen in der Form

&name;
                  

verwenden.

Typische Beispiele sind:
&lt;

für das Kleiner-Zeichen <
&gt;

für das Größer-Zeichen >
&amp;

für das Und-Zeichen &

Entities können aber nicht nur einzelne Zeichen sondern auch längere Textteile enthalten, wie die "Abkürzungen" in der Textverarbeitung.

Schachtelung von Tags

In XML müsssen Start- und End-Tags immer richtig geschachtelt werden.

Beispiel:

Richtig sind

<person>  <vorname>  ...  </vorname>  ...  </person>

<vorname>  ...  </vorname> <zuname>  ...  </zuname>
                  

Nicht erlaubt wären

<person> ... <vorname> ... </person> ... falsch ... </vorname>

<vorname> ... <zuname> ... falsch ... </vorname> ... </zuname>
                  

Anmerkung:

Diese Regeln gelten an sich auch für HTML genauso wie bei XML. Bei HTML können die Web-Browser aber auf Grund der festgelegten Bedeutung der HTML-Tags versuchen, zu erraten, was der Autor vermutlich gemeint hat, wenn er gegen diese Regel verstoßen hat.

Beispiel:

Bei einer (nicht erlaubten) Kombination wie

<p>  ...  <em>  ...  </p> <p> ... </em> ... </p>
                  

kann der Web-Browser möglicherweise erraten, welches Layout der Autor damit erreichen wollte. Und wenn er es nicht richtig errät, dann erscheint der Text zwar nicht in der richtigen Schriftart, aber zumindest immer noch vollständig lesbar und in der richtigen Absatz-Struktur.

Bei XML darf die Software nicht versuchen, solche Fehler durch Rateversuche zu korrigieren, sondern muss die Verarbeitung von fehlerhaften XML-Dokumenten immer mit einer Fehlermeldung abbrechen.

Ein Grund für diese "strengere" Regel ist, daß die XML-Befehle nicht nur das Layout des Textes (wie in HTML), sondern die Bedeutung der Textteile definieren, und falsche Interpretationen der Befehle daher nicht bloß zu unschönen, sondern zu logisch und inhaltlich falschen Ergebnissen führen würden.

Beispiele:

Wenn ein Text-Abschnitt irrtümlich in kursiver statt fetter Schrift dargestellt wird, ist das für das Verstehen des Textes im allgemeinen nicht so tragisch wie wenn der Name mit dem Geburtsort oder der Einkaufspreis mit dem Verkaufspreis verwechselt wird.

Die XML-Tags dienen nicht nur für die Interpretation der sichtbar angezeigten Texte durch einen kritisch denkenden Menschen, sondern auch für die Weiterverarbeitung der Informationen durch automatisch laufende Computer-Programme. Deshalb müssen die Syntax-Regeln von XML strenger eingehalten werden als die von HTML.

XML-Anwendungen

Unter XML-Anwendung oder XML-Applikation versteht man die Festlegung (Normierung) von XML-Befehlen für eine Klasse von XML-Dokumenten gleicher Struktur, also für einen bestimmten Zweck.

Das Format und die Struktur der XML-Files sowie die Eigenschaften und die Schachtelung der darin vorkommenden Elemente (XML-Befehle, Tags, Entities) werden für eine XML-Anwendung mit einer DTD oder einem Schema definiert - so wie man bei EDI mit UNSM und MIG das Format und die Struktur der Nachrichten und die Bedeutung der darin enthaltenen Daten für einen bestimmten Nachrichtentyp definieren kann.

Beispiele für XML-Anwendungen

  • DocBook (für gedruckte Texte und Bücher),

  • WML (für Online-Informationen auf kleinen Displays wie z.B. Handys),

  • XHTML (für Online-Informationen auf großen Displays wie z.B. PCs und Fernsehschirmen),

  • MathML (für mathematische Formeln),

  • CML (für chemische Formeln),

  • SVG (für Vektor-Graphiken),

  • u.v.a.

Definition von XML-Anwendungen

DTD (Document Type Definition)

Eine DTD beschreibt die Struktur einer Klasse von SGML- oder XML-Dokumenten, also einer SGML- oder XML-Applikation, mit Hilfe eines Text-Files, das alle Syntax-Regeln in einem von SGML vorgeschriebenen Format enthält. Beispielsweise ist jede HTML-Version durch eine DTD definiert. Eine Alternative dazu ist die Definition mit Hilfe eines Schemas.

Schema (Mehrzahl: Schemata)

Ein Schema beschreibt die Struktur einer Klasse von XML-Dokumenten, also einer XML-Applikation, ähnlich wie eine DTD, jedoch nicht in der DTD-Syntax sondern in einer eigenen XML-Syntax.

Verarbeitung von XML-Anwendungen

XML-Parser

Ein XML-Parser ist ein Programm, das ein XML-File liest und den Inhalt in der Form von DOM oder SAX liefert. Ein validierender Parser überprüft zusätzlich die Richtigkeit der Daten an Hand der DTD oder des Schemas.

DOM (Document Object Model)

DOM ist ein Objektmodell, es beschreibt die in einem Dokument einer bestimmten XML-Anwendung enthaltenen Elemente als Objekte, für die Verarbeitung mit einer objekt-orientierten Programmiersprache wie z.B. Java. DOM liefert eine komplette Baumstruktur aller Objekte eines XML-Dokuments und eignet sich daher nicht für extrem große XML-Files.

SAX (Simple API for XML)

SAX ist eine Programm-Schnittstelle (Application Programmers Interface API) für die Verarbeitung einer Klasse von XML-Dokumenten, also einer XML-Applikation, mit Hilfe einer objekt-orientierten Programmiersprache wie z.B. Java. SAX liefert ein XML-Element nach dem anderen in einem Eingabestrom und eignet sich daher auch für sehr große XML-Files.

Style-Sheets

CSS (Casading Style Sheets)

CSS ist ein vom W3-Consortium definiertes, einfaches Format für Style-Sheets für die Darstellung von HTML- und XML-Dokumenten.

DSSSL (Document Style Semantics Specification Language)

DSSL ist eine sehr mächtige und daher auch sehr komplexe Sprache für die Spezifikation der Darstellung von SGML-Dokumenten.

XSL (Extensible Style Language)

Mit XSL wird ein Style-Sheet definiert, das angibt, wie der in einem XML-Dokument definierte Inhalt vom Web-Browser oder von anderen Programmen dargestellt werden soll.
XSL ist mächtiger als CSS und DHTML:

  • Mit XSLT (Transformation) kann man aus einem XML-File ein anderes XML-File machen, also z.B. bestimmte Elemente weglassen, die Elemente in anderen Reihenfolgen anordnen und zusätzliche Elemente hinzufügen,

  • und mit XSL-FO (Formatierung) kann man das Layout der Darstellung für die Elemente festlegen.

Darstellung in Web-Browsern

Künftige Web-Browser werden XML-Files direkt am Bildschirm darstellen und am Drucker ausdrucken können, wenn mit einem Style-Sheet definiert ist, wie die einzelnen XML-Elemente dargestellt werden sollen. Erste Ansätze dafür gibt es im MS Internet Explorer Version 5 (mit einer Vor-Version von XSL Style-Sheets oder mit CSS) sowie in Netscape Version 5 und Mozilla (mit CSS Style-Sheets).

Zu diesem Zweck werden am Web-Server sowohl das XML-File mit dem Inhalt der Information als auch das XSL- oder CSS-File mit den Layout-Angaben abgespeichert - so ähnlich wie im Textsatzsystem LaTeX, wo der Inhalt im TEX-File und das Layout im STY-File definiert werden, und so wie dort hat man auch hier die Möglichkeit, den selben Inhalt wahlweise in verschiedenen Layouts darzustellen, z.B. für große und kleine Bildschirme und für Schwarz-weiß- und Farb-Drucker.

Wenn man die Informationen für alle Benutzer verfügbar machen will, also auch für diejenigen, die noch ältere Web-Browser verwenden, muss man sie am Web-Server (zusätzlich) im normalen HTML-Format zur Verfügung stellen - am besten mit einem Umwandlungsprogramm, das die XML-Files mit der Hilfe der Style-Files automatisch in Standard-HTML umwandelt. Und wenn die Informationen auch mit Handy-Telefonen und dergleichen erreichbar sein sollen, dann gleich auch noch im WML-Format.

Es gibt auch Umwandlungsprogramme, die "lockere" HTML-Files in "strenge" XHTML-Files umwandeln, damit diese mit XML-Software weiter verarbeitet oder auch durch zusätzliche Tags zu speziellen XML-Anwendungen erweitert werden können.

 

Copyright © 2004 -2006 by Stefan Reiser . Alle Rechte vorbehalten.

 
 
Schnellsuche
Suchen
       
   
 
 
sonstiges
  aktuelle Internet-News
  Scripte
  Webtools
  Suchmaschineneintrag
  Templates
  Provider
 
Bücher-Flash
 

 

Google
Web www.multi-online.com