Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


XML Basics

Zusammenfassung:

XML Markup Language 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.

XML Basics

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 muß, 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 Datenstruktur umzugehen weiß.

Ob das nun ein Webbrowser ist, der Skalierbare Vektorgrafiken (SVG, eine Spezialform von XML) anzeigt, ob das ein Systemprogramm ist, das eine in XML definierte System- oder Serverkonfiguration auswertet, ob das ein Java-, C#.NET-, C++ oder in einer anderen Sprache geschriebenes Programm ist, das in XML definierte Prozeßstrukturen schrittweise abarbeitet: immer und überall ist ein Folgeprogramm notwendig, um XML weiter zu verarbeiten.

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, kennen zu müssen, 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.

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, daß 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.

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

XSL bietet 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.

pic/xmlbasics.png

Grundvoraussetzung für effizientes Programmieren mit XSL ist, daß 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 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.

Insofern sehe ich XML als eine extrem leistungsfähige Schnittstellensprache für einen sehr breiten Einsatzbereich:

Auswertung, Transformation XPath, XSLT, XQuery
Verknüpfung XInclude, XLink, XPointer
Validierung, Testen DTD, XML Schema, Relax NG, Schematron, Schematron QuickFix, 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, NLM JATS, TEI
Grafiken SVG, X3D
Geodaten CityGML (City Geography Markup Language), GML (Geography Markup Language), GPX (GPS Exchange Format), KML (Google Earth: Keyhole Markup Language)
Landwirtschaft AgroXML
Prozeßdefinition ANT, XProc
Webservices SOAP, WSDL, REST
Office-Anwendungen OASIS Open Document Format for Office Applications

qrpic/_01_Basics_XML.jpg

wg / 9. Oktober 2017


XML Intro



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


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

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