Die XML-Spezifikationen

(Auszug aus "Python & XML" von Christopher A. Jones & Fred L. Drake, Jr.)

In der Presse sieht man oft Hinweise darauf, dass XML eine bestimmte industriespezifische Anwendung »jetzt unterstützt«. Der dann folgende Artikel ist oft verwirrend und bietet einen kleinen Happen Information über ein Industriekonsortium, das eine neue Spezifikation für eine XML-basierte Sprache herausgegeben hat, mit der die Interoperabilität von Daten innerhalb der zum Konsortium gehörenden Industrie unterstützt wird. Mit unserem technischen Sachverstand bemerken wir normalerweise, dass es nicht in den Bereichen anwendbar ist, mit denen wir uns beschäftigen, oder aber die Spezifikation ist noch zu sehr in der Entwurfsphase, um von Nutzen zu sein. Tatsächlich werden unsere Vorgesetzten wahrscheinlich meistens mit uns darin übereinstimmen, oder sie werden ihre geheimen Gründe haben, anderer Meinung zu sein. Wenn wir jedoch die Firmenleiter ein paar Sprossen hinaufsteigen, finden wir oft einen zunehmend höheren Verwirrungsgrad bezüglich XML vor. Dies wird manchmal von einem Aufruf begleitet, XML zu übernehmen (allzuoft mit einer Liste von besonderen Zusatzspezifikationen, die nicht dafür bestimmt sind, zusammen benutzt zu werden), oder der Reaktion, dass XML noch viel zu unreif sei, um ernsthaft benutzt zu werden.

Also müssen wir darüber nachdenken, womit wir gerade noch arbeiten können, damit dabei folgende Kriterien erfüllt werden:

  • Es muss in unserer Anwendung technisch Sinn machen.
  • Es sollte hinreichend gut definiert sein, dass eine Implementierung möglich ist.
  • Es muss (zumindest) unseren direkten Vorgesetzten erklärt und begründet werden können.
  • Das höhere Management darf nicht ausflippen.

Okay, da wir technisch veranlagte Leute sind, müssen wir vielleicht den letzten Punkt ignorieren; er wird definitiv nicht in diesem Buch behandelt. Tatsächlich kann das meiste hiervon nicht wirklich in technischem Material abgedeckt werden. Es gibt viele Spezifikationen in unterschiedlichen Reifephasen, und die meisten sind spezifisch für die eine oder andere Industrie. Wir können jedoch hervorheben, was die grundlegenden Spezifikationen sind, weil es jene sind, die Sie brauchen werden, unabhängig von Ihrer Industrie oder anderen Anforderungen.

Die XML 1.0-Empfehlung

Die XML-Spezifikation selbst ist ein Dokument, das vom W3C erstellt wurde und auch dort gewartet wird. Beim Schreiben dieser Zeilen lautet die aktuelle Version Extensible Markup Language (XML) 1.0 (zweite Auflage). (Die zweite Auflage unterscheidet sich von der ersten nur durch einige Textkorrekturen und -klarstellungen; die Spezifikation als solche ist stabil.)

(Anmerkung der data2type-Redaktion: Der aktuelle W3C-XML-Standard ist XML 1.1, Stand Februar 2015.)

XML selbst ist keine Auszeichnungs- bzw. Markup-Sprache, sondern eine Metasprache, mit deren Hilfe spezielle Auszeichnungssprachen definiert werden können. In diesem Punkt hat sie sehr viel von SGML geerbt. Die Spezifikation deckt fünf Aspekte von Auszeichnungssprachen ab:

  • die Menge struktureller Formen, die ausgezeichnet werden können
  • die spezifische Syntax von Auszeichnungskomponenten
  • eine Schemasprache, mit der spezifische Sprachen definiert werden können
  • eine Definition von Gültigkeitseinschränkungen
  • die minimalen Anforderungen an verarbeitende Werkzeuge

Im Unterschied zu SGML kann man XML als solches benutzen, ohne eine spezielle Auszeichnungssprache in irgendeiner Art formal zu definieren. Ob das in Ihren Anwendungen nützlich ist oder nicht, sei dahingestellt, aber in einigen Entwicklerkreisen hat dies die Akzeptanz von XML-basierten Technologien deutlich beschleunigt. Das kann daran liegen, dass die Eintrittskarte zum XML-Universum recht preiswert ist. Man kann mit XML anfangen, ohne einige der esoterischen Teile der Spezifikation zu kennen, und die Entwicklung von Prototypen mit XML-Technologien kann ohne Unmengen von Vorplanungen beginnen.

XML-Grundlagen stellt die meistverwendeten Teile der Spezifikation vor und behandelt jene Teile detaillierter, die für die meisten Leser dieses Buches besonders wichtig sind. Wenn irgendwelche Details von besonderem Interesse für Sie sind, sollten Sie die Zeit investieren und die relevanten Teile der Spezifikation lesen. Auch wenn sie bisweilen ein wenig umständlich erscheint, so ist sie im allgemeinen doch keine besonders schwer zu lesende Spezifikation.

Namensräume in XML

Obwohl die XML 1.0-Empfehlung zwar spezifische syntaktische Aspekte von XML sowie einen Weg definiert, um Dokumenttypen zu erzeugen, erläutert sie jedoch nicht, wie man Komponenten mehrerer Dokumenttypen kombiniert. Die Empfehlung Namespaces in XML (von nun an Namensräume genannt), behandelt die syntaktische und strukturelle Mechanik der Kombination von strukturellen Komponenten aus verschiedenen Spezifikationen, hält sich jedoch weitgehend bedeckt, was die Bedeutung der resultierenden Kombinationen angeht. Dazu verweist sie auf Spezifikationen, die noch nicht geschrieben waren, als die Empfehlung veröffentlicht wurde.

Diese Empfehlung schränkt zusätzlich die syntaktische Konstruktion konformer Dokumente ein. Sie ermöglicht es einem Dokument, die Quelle eines jeden Elements oder Attributs anzugeben, indem es in einen Namensraum plaziert wird. Jeder Namensraum umfaßt Definitionen für Elemente und Attribute. Wie die Elemente und Attribute definiert werden, wird nicht von dieser Spezifikation behandelt, d. h., das Konzept der Validierung eines beliebigen Dokuments, das Namensräume verwendet, ist nicht gänzlich geklärt. Es ist möglich, einen Dokumenttyp mit XML 1.0 zu erzeugen, der eine gewisse Unterstützung für Namensräume bietet, aber ein solches Schema verliert viel von der Flexibilität, die die Namensraum-Spezifikation bietet. So müßte der Dokumenttyp die spezifischen Präfixe angeben, an die jeder Namensraum gebunden ist, während die Namensraum-Spezifikation Präfixe erlaubt, die vom Dokument statt vom Schema bestimmt werden. Alternative Schemasprachen, die eine bessere Unterstützung von Namensräumen haben, wurden bereits definiert; sie werden kurz in XML-Grundlagen diskutiert.

XML als Grundlage

Wie dessen Vorgänger SGML bietet XML die Möglichkeit, Sprachen zu definieren, die den Anforderungen Ihrer Anwendung entsprechen. Indem die exakte Syntax der grammatikalischen Elemente angegeben wird (z. B. die Zeichen, mit denen bezeichnet wird, wo ein Element beginnt), hat es den Aufwand für die Erstellung konformer Software reduziert – die notwendigen Komponenten für die Gewinnung der Daten einer Anwendung aus XML sind wesentlich kleiner und einfacher zu benutzen als die entsprechenden Komponenten für SGML.

Die zusätzlichen Spezifikationen, die von der Fachpresse so gern diskutiert werden, sobald eine neue Version herauskommt, entstehen im allgemeinen, indem neue Sprachen aus den grundlegenden Empfehlungen für XML und Namensräume definiert werden. Diese werden oft anhand von Schemadefinitionen dokumentiert oder anhand von von Komitees erzeugten Dokumenten, die zu beschreiben versuchen, wie die Sprache benutzt werden soll. Da es in jeder Industrie mindestens ein Konsortium gibt, das sich z.T. mit dem Datenaustausch zwischen verschiedenen Industriekomponenten beschäftigt (man denke an Ärzte, Apotheken und Krankenhäuser im Gesundheitswesen), nehmen viele Standards diese Form an. Viele der XML-Standards leiten sich aus früheren Versuchen ab, ältere industriespezifische SGML-Sprachen zu benutzen, und viele andere sind neu.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Python & XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2002 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Python & XML" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de