XML / XML-Basics

XML-Basics

XML-Basics

➪ XML ist eine erweiterbare, flexible, stukturierte Markup-Sprache, die in unterschiedlichen Bereichen zum Einsatz kommt, etwa bei Transformation zu HTML, XML, Text, SVG, RTF, PNG, TIFF, PDF.

Auf dieser Seite:

pic/XMLBasics1.png

Was ist das für eine Sprache,

Auswertung, Transformation XPath, XSL, XQuery
Webseiten HTML
Verknüpfung XInclude, XLink, XPointer
Validierung, Testen DTD, XML-Schema (XSD), Relax NG, Schematron, XSpec, NVDL
Signatur, Verschlüsselung XML Signature, XML Encryption
Arbeit in verteilten Systemen XML-RPC
EDI XML, daneben Übertragungen von EDIFACT, ANSI X.12, SAP IDoc, CSV, CargoImp u.a.m.
Finanzberichte XBRL
Formatierung FO, XSL-FO, MathML, SVG, EPUB, WordML
Publishing-Standards DITA, DocBook, TEI
Grafiken SVG, X3D
Formatting Object TIFF, PNG, PDF, PS, PCL
Geodaten CityGML (City Geography Markup Language), GML (Geography Markup Language), GPX (GPS Exchange Format), KML (Google Earth: Keyhole Markup Language)
Landwirtschaft AgroXML
Prozessdefinition ANT, XProc
Webservices SOAP, WSDL, REST
Office-Anwendungen OASIS Open Document Format for Office Applications, RTF

XML: erweiterbar, flexibel

Zunächst ist XML eXtensible, also eine erweiterbare Markup Language. Sie besteht ausdrücklich nicht aus einer endlichen Menge von einigen Dutzend Schlüsselwörtern, die man (in diversen Programmiersprachen) kennen muss, um Code schreiben zu können, den der PC dann ausführt. Sondern XML ist erweiterbar. Potenziell können unendlich viele Begriffe definiert werden, in den unterschiedlichsten Sprachen, Zeichensätzen und Schreibweisen. Die einzige Bedingung ist, einige wenige grundlegende Anforderungen einzuhalten.

Zweitens handelt es sich um eine äußerst flexible Markierungssprache, die wohlgeformte, strukturierte Daten definiert und obendrein eine präzise Zuordnung zu einem fachlichen Kontext, auch mit Versionsunterschieden erlaubt. XML zieht seine Effizienz jedoch aus einer breiten Unterstützung durch andere Technologien.

Dabei kann XML sehr schwach strukturiert (dokumentzentriert: Die XML-Elemente dienen zur semantischen Strukturierung des Textes, was eine maschinelle Verarbeitung erschwert), sehr stark strukturiert (datenzentriert: XML-Elemente, Attribute etc. folgen einer klaren Strukturdefinition zur effizienten maschinellen Verarbeitung), aber auch mixed content haben (semistrukturiert: XML-Dokumente als Mischung aus starker und schwacher Strukturierung; die Ansätze zur effizienten Auswertung sind hier andere als bei Datenzentrierung).

Die vorliegende Arbeit hat ihren Schwerpunkt auf datenzentrierten Dokumenten. XML ist hier nie Selbst- oder Endzweck, sondern Teil einer Verarbeitungskette: Immer ist ein Folgeprogramm nötig, das mit der jeweiligen XML-Datenstruktur umzugehen weiß. Das mag ein Webbrowser sein, der skalierbare Vektorgrafiken (SVG, eine Spezialform von XML) anzeigt. Ebenso kann es ein Systemprogramm sein, das eine in XML definierte System- oder Serverkonfiguration auswertet. Auch kann es sich um ein in , , VisualBasic.NET, C++ oder in einer anderen Sprache geschriebenes Programm handeln, das in XML definierte Prozesse schrittweise abarbeitet.

Die Struktur der in XML vorliegenden Daten und die Programme, die sie auswerten, müssen also Hand in Hand gehen. XML-Datenstrukturen, die ein auswertendes Programm nicht verarbeiten kann, sind wirkungslos.

Die Programme folgen unterschiedlichen Verarbeitungsmodellen. SAX verarbeitet XML als sequenziellen Datenstrom und hält für bestimmte Ereignisse spezielle callback functions bereit. Das sehr speicherintensive DOM betrachtet XML dagegen auf der Baumstruktur und gewährt wahlfreien Zugriff mit Manipulationsmöglichkeiten. Daneben stehen noch die Pull-API (sequenzielle Verarbeitung mit Iterator) oder die Verarbeitung auf Byte-Ebene bereit. Häufig werden Objekte in XML-Dokumente umgewandelt (Serialisierung) oder umgekehrt (marshalling); siehe JAXB oder XML-Schema-Definition-Toolkit in .NET.

Trotzdem ist es nicht notwendig, die interne Logik jener Programme, die XML-Dokumente auswerten, zu kennen, um XML-Dokumente schreiben zu können, die das Programm auswerten kann. Es reicht aus, klare Vorgaben hinsichtlich der Struktur und Detailtypen der zu übermittelnden Daten verfügbar zu haben. Hier helfen diverse Standards weiter, die eine Strukturdefinition der XML-Dokumente erlauben, unter anderem DTD und XML-Schema (XSD).

XML-Schema erlaubt, die grundsätzlich extrem gestaltungsflexiblen Möglichkeiten von XML-Dokumenten auf eine endliche Anzahl zulässiger Element- und Attributnamen einzugrenzen, verbunden mit einer begrifflichen Zuordnung zu bestimmten Namespaces. Auf diese Weise wird eine Datenstruktur definierbar, die von Folgeprogrammen ausgewertet werden kann. Es besteht die Möglichkeit einer Vorprüfung (Validierung), ob das jeweilige XML-Dokument diesen Vorgaben entspricht; falls nicht, kann die Weiterverarbeitung gestoppt werden.

Freilich kommt es recht häufig vor, dass die verfügbaren Daten in einer Struktur vorliegen, die die Folgeprogramme nicht auswerten können. Dann wird eine Konvertierung erforderlich. Hier hilft XSLT, ab XSLT 2.0 auch dann, wenn die ursprünglichen Daten gar nicht in XML vorliegen, sondern beispielsweise in Textformaten wie CSV.

XSL ist selbst auch ein XML-Dokument, jedoch mit einem exakt definierten Aufbau sowie einer Reihe klar definierter Schlüsselbegriffe. XSL bietet (in Kombination mit XPath) sehr effiziente Ansätze zur Transformation vorliegender Daten in andere Strukturen.

XSL und XPath bieten effiziente Möglichkeiten zur Transformation von (strukturierten) XML-Dokumenten in diverse Zielformate, z.B. HTML, XML, Text, SVG, RTF, PNG, TIFF, PDF und andere mehr. Dabei können mehrere XML-Quelldokumente ebenso berücksichtigt werden wie mehrere Ausgabedokumente.

Grundvoraussetzung für effizientes Programmieren mit XSL ist, dass sowohl die Struktur des XML-Quelldokuments als auch die Struktur des Zielformats zweifelsfrei klar ist. Während das XML-Inputdokument die (hoffentlich) klar strukturierten Daten liefert, stehen in XSL/XPath jene Programmieranweisungen, die die Struktur des Quelldokuments in die gewünschte Zielstruktur konvertiert. Das Kind der Ehe von XML und XSL ist das gewünschte Dokument.

wg / 25. März 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf.




XML



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/_01_Basics_XML_Uebersicht.html