Extensible Markup Language (XML)

Extensible Markup Language (XML)

Zielgruppe sind StudentInnen und ambitionierte Informatik-Amateure

Es werden keine Kenntnisse vorausgesetzt. Grundkenntnisse der Informatik sind jedoch hilfreich.



XML-Beispiel

<personenliste>

<person>
<nr> 123 </nr>
<name> Anna </name>
</person>

<person>
<nr> 234 </nr>
<name> Bert </name>
</person>

<person>
<nr> 345 </nr>
<name> Christine </name>
</person>

</personenliste>


Wie würden sie die Daten einer weiteren Person in das Beispiel einfügen ?
Wie würden sie weitere Daten zu bereits erfassten Personen hinzufügen, z.B. Geschlecht, Geburtsdatum, Größe ?

XML-Familie


Man kann die Namen der Elemente frei erfinden. In diesem Fall muss man jedoch die Regeln zur Verarbeitung (z.B. mit → XSL) selbst angeben.

In einem XML-Standard sind die Namen aller verwendbaren Elemente und Attribute für eine bestimmte Anwendung festgelegt. Alle einschlägigen Programme kennen den jeweiligen Standard und können daher dessen Elemente und Daten ohne weitere Angaben sinnvoll verarbeiten. Beispiel: Jedes Browser-Programm kennt den HTML-Standard und kann damit arbeiten.


Ausschnitt eines HTML-(Quell)-Textes:
<h1> Überschrift (Headline) </h1>
<p> Absatz (Paragraph) </p>
<p style="color:blue"> In blauer Farbe </p>
Daraus würde ihr Browser-Programm eine große Überschrift und 2 Absätze mit Text erzeugen. Der 2. Absatz wird in blauer Farbe dargestellt.


Ausschnitt eines SVG-(Quell)-Textes:
<rect width="20" height="30" fill="blue" />
<circle r="10" fill="red" />
Damit kann ihr Browser-Programm oder ein Büro-Programm (Textverarbeitung) ein blaues Rechteck und einen roten Kreis darstellen.


Ausschnitt eines MathML-(Quell)-Textes:
<mi>x</mi> <mo>=</mo>
<msqrt> <mn>2</mn> </msqrt>
Damit kann ein Browser oder Büro-Programm die Wurzel aus 2 als Formel-Bild darstellen.


Ausschnitt eines ODF-(Quell)-Textes:
<text:p>
Absatz einer Textverarbeitung
</text:p>
Damit kann ein Textverarbeitungs-Programm einen Absatz (Paragraph) darstellen.


Ausschnitt eines RSS-(Quell)-Textes:
<item>
<title> Überschrift </title>
<link> http://www.provider.com/news.html </link>
<description> Beschreibung </description>
<content> Text der Meldung </content>
</item>


Ausschnitt eines KML-(Quell)-Textes:
<Placemark>
<name> Wien </name>
<Point>
<coordinates> 16.37,48.21,0 </coordinates>
</Point>
</Placemark>


Ausschnitt eines CML-(Quell)-Textes:
<molecule>
<formula concise=" H 2 O 1 "/>
<name convention="IUPAC">Oxidane</name>
<atomArray>
<atom elementType="H" x3="0.63" y3="-0.03" z3="0.48"/>
<atom elementType="O" x3="0.15" y3="0.03" z3="-0.34"/>
<atom elementType="H" x3="-0.78" y3="0.00" z3="-0.13"/>
</atomArray>
</molecule>


Ausschnitt eines XSL-(Quell)-Textes:
Variable  x=123
<xsl:variable name="x" select="123" />
<xsl:if test="bedingung">
Bedingte Verzweigung
</xsl:if>
<xsl:for-each select="liste">
Text in der Schleife wird wiederholt
</xsl:for-each>


Auch für Menschen ist XML-Text lesbar, wenn auch nicht so wie eine Zeitung. Man kann den Text mit einfachen Mitteln (mit jedem Text-Editor-Programm) lesen und bei Bedarf auch manuell ändern, ergänzen oder komplett neu verfassen.

XML verwendet den → Unicode-Zeichensatz und kann daher in den Daten fast alle weltweit verwendeten Schrift-Zeichen enthalten.





Mit → CSS (Cascading StyleSheets) kann man Regeln zur Formatierung aller (dargestellten) XML-Elemente angeben.
Darüber hinaus kann man CSS-Regeln Live mit Javascript-Programmen ändern.

Der einfache XML-Text enthält selbst keine Formatierung. Er kann dazu jedoch CSS-Regeln angeben, z.B.:
<p style="color:red"> Text in roter Farbe </p>
Ein Programm (z.B. Browser) sollte die CSS-Regeln befolgen und diese Daten in roter Farbe darstellen.

XML-Standard


Gerade wegen seiner besonders einfachen Regeln kann man mit diesem Standard viele Aufgaben innerhalb der Informatik und an der Schnittstelle zwischen IT und anderen Bereichen hervorragend lösen.


<Auszeichnungs-Elemente> und Daten

  Der Text eines XML-Dokuments besteht nur aus Auszeichnungs-(Markup)-Elementen und Daten.
Elemente werden in < > Klammern eingeschlossen. Man muss Anfang und  /Ende eindeutig bezeichnen, z.B. so
<element> Daten </element>
Die jeweiligen Daten werden vom Element umschlossen.
Ein Element kann nicht nur Daten enthalten sondern auch weitere, darin verschachtelte Unter-(Child)-Elemente mit deren Daten.



Beispiel: Geschäfts-Daten der letzten Monate:
<jahr nr="2000">
<monat nr="10">
<umsatz> 123 </umsatz>
</monat>
<monat nr="11">
<umsatz> 234 </umsatz>
</monat>
<monat nr="12">
<umsatz> 345 </umsatz>
</monat>
</jahr>
<jahr nr="2001">
<monat nr="1">
<umsatz> 456 </umsatz>
</monat>
<monat nr="2">
<umsatz> 567 </umsatz>
</monat>
<monat nr="3">
<umsatz> 678 </umsatz>
</monat>
</jahr>



Es steht jedem frei, eine DTD für bestimmte Anwendungen zu definieren und zu publizieren. So wurde z.B. KML für geografische Daten von der Firma Keyhole definiert und ist heute als Standard klassifiziert, der von vielen Programmen verwendet wird, z.B. von GoogleEarth.


Text und Beispiele dieses Kapitels sind stark vereinfacht, um die wesentlichen Eigenschaften von XML zu verdeutlichen.

Wer XML für eigene Entwicklungen verwendet, sollte sich wesentlich intensiver mit den Details dieser wichtigen Technologie auseinandersetzen...

XML-Links