XML Basics

XML Basics

XML Basics

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

pic/XMLBasics1.png

XML - 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
Prozeßdefinition 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 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 in 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 (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, 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.

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, 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 / 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 / 4. Januar 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf:

Vorname
Nachname
Mailadresse







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: info2018@wilfried-grupe.de

www.wilfried-grupe.de/_01_Basics_XML_Uebersicht.html