Über die XML-Spezifikation hinaus

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

Die vom W3C entwickelten Standards garantieren die Interoperabilität zwischen verteilten Systemen und den Anwendungsentwicklern überall auf der Welt. Während wir in diesem Buch von XML-Werkzeugen und -Strategien in unseren lokalen Anwendungen zur Entwicklung verteilter Anwendungen übergehen, treten einige neue XML-Begriffe und Probleme in den Vordergrund.

XML-Namensräume

Wie im Abschnitt Namensräume in XML erläutert wurde, bieten Namensräume ein Mittel, um Elemente aus verschiedenen Wissensdomänen oder Schemata zu kombinieren. Die Namensraum-Spezifikation bringt das fertig, indem Element- und Attributnamen mit einem URI qualifiziert werden; jeder URI entspricht einem eindeutigen Namensraum. In der Praxis werden Namensräume für mehrere Zwecke eingesetzt, aber der wichtigste ist, in einem Dokument Elemente zu verwenden, die in verschiedenen Schemata definiert sind (und möglicherweise aus verschiedenen Organisationen hervorgehen), ohne dabei Namenskonflikte heraufzubeschwören.

Namensräume benutzt man, indem ein benanntes xmlns-Attribut mit einem URI assoziiert wird. In einem XML-Dokument werden Namensräume in einem Elementnamen mit dem reservierten Semikolon-Zeichen angegeben, dem das xmlns-Symbol als Präfix voransteht. Zum Beispiel:

<sumc:purchaseOrder refnum="389473984-38844" xmlns:sumc="http://www.superultramegacorp.com">
  <sumc:product name="Magical Widget" sku="398-4993833">
    <sumc:qty value="24">Einmalbestellung</sumc:qty>
    <sumc:amount value="34.56">34.56</sumc:amount>
    <sumc:shipping value="übernacht">Nächster Tag</sumc:shipping>
  </sumc:product>
</sumc:purchaseOrder>

In diesem Dokument wird der Namensraum von SuperUltraMegaCorp definiert. Das Präfix sumc wurde damit im Attribut xmlns:sumc assoziiert. Elemente mit dem Präfix sumc: befinden sich in diesem Namensraum. Das purchaseOrder-Element hat nun einen Kontext, der es von einem ähnlich strukturierten Element unterscheidet, das für andere Geschäftsbereiche bestimmt ist.

Informationen extrahieren mit XPath

XPath wird detailliert in Abfragen von XML mit XPath erläutert. Im Moment ist es eine Erwähnung wert, damit Sie nicht anfangen, Ihre eigene XML-Abfragemethode zu entwickeln, ohne zu wissen, welche Standards bereits existieren. XPath bietet eine standardisierte Methode, um XML nach speziellen Informationen abzufragen, ob das ein einziges Element bzw. ein Knoten ist oder eine Ansammlung von Elementen. Die Standardisierung ist nicht dann wertvoll, wenn Sie die Innereien Ihrer Anwendung schreiben, sondern eher, wenn Sie Suchmöglichkeiten dazu anbieten müssen, ob programmatisch oder über das Web.

Verwendung von XLink zum Linken von XML-Dokumenten

Die XLink-Sprache ermöglicht das Einfügen von Elementen in XML-Dokumente, um Links zwischen verschiedenen Ressourcen zu erzeugen und zu beschreiben. XLink benutzt die XML-Syntax, um Strukturen zu erzeugen, die ähnlich zu Hyperlinks in HTML sind, aber auch komplexere Link-Strukturen. Die Link-Spezifikationen sind in den Attributen des Quelldokuments enthalten oder in zusätzlichen Dokumenten, die Links zwischen anderen Dokumenten beschreiben können. Normale Anwendungen betten die Link-Informationen in der Quelle des Links ein. Das Ziel eines Links wird mit einem URI und einem XPath-Ausdruck beschrieben; der URI gibt die Zielressource an, und der XPath-Ausdruck gibt einen speziellen Ort in der verbundenen Ressource an. XLink ist noch immer eine junge Spezifikation und wird in diesem Buch nicht weiter erläutert.

Kommunikation mit XML-Protokollen

Die XML Protocol-Arbeitsgruppe ist eine W3C-Gruppe, die es sich zur Aufgabe macht, die Entwicklung von XML-basierten Nachrichten- und Kommunikationsstandards zu untersuchen. Diese Standards versuchen, eine Methode für die Verpackung und das Versenden von Informationen über das Internet zu definieren. Einige konzentrieren sich auf Transaktionen, andere auf die garantierte Zustellung und wieder andere auf Routing- und Enveloping-Mechanismen. Die Protocol-Activity-Seite ist eine ausgezeichnete Online-Ressource für den Vergleich dieser verschiedenen Protokolle bei der Entwicklung von verteilten Systemen. Die Spezifikationen Web Distributed Authoring and Versioning der IETF, zusammengenommen unter WebDAV bekannt, benutzen XML, um interoperable Werkzeuge für das Management und Authoring von Websites zu unterstützen. Python, Webdienste und SOAP behandelt detailliert unter anderem Remote Procedure Calls und Webdienste (inkusive SOAP). Weitere Spezifikationen behandeln andere Aspekte des verteilten Rechnens, insbesondere Themen wie Authentifizierung und sichere Kommunikation.

Ersetzung von HTML durch XHTML

Die eXtensible Hypertext Markup Language bzw. XHTML ist für all jene von uns ein willkommenes Geschenk, die sich damit plagen mußten, HTML zu parsen. Obwohl es eine W3C-Spezifikation für HTML gibt, sind viele Implementierungen dazu nur teilweise konform. Das liegt zum Teil daran, daß HTML aus einigen frühen Implementierungen entstand statt aus einer formalen Spezifikation, ebenso wie an den Versuchen der Browser-Hersteller, noch mit dem schlimmsten HTML-Code »das richtige zu tun«. Die Versuche, HTML nachträglich in eine SGML-Form zu zwingen, haben die Konformität weiter behindert, auch wenn nur deshalb, weil die Regeln für das Parsen komplexer wurden und die Hersteller ungern von vorne anfangen wollen. Wenn ein Browser HTML parst, konzentriert er sich auf Anzeigeattribute, nicht auf die Organisation der Informationen im Dokument. Während XHTML nichts am Fokus auf die Darstellung ändert, ist es eine XML-basierte Auszeichnungssprache, die Sie mit einem XML-Parser parsen können. Das kann die Arbeitszeit mit XHTML drastisch verkürzen. Es erleichtert Ihnen auch, XHTML in andere Anwendungen einzuschleusen oder XML-Namensräume zusammen mit XHTML zu benutzen, das in andere Domänen und Systeme vorgedrungen ist.

Die erste Version der XHTML-Spezifikation, XHTML 1.0, definiert einen monolithischen Dokumenttypen, der stark der HTML 4-Spezifikation entspricht. Zukünftige Versionen von XHTML ab Version 1.1 bewegen sich in Richtung eines modularen Ansatzes. Verschiedene Aspekte der Sprache werden in separaten Komponenten definiert sein, und verschiedene Anwendungen werden die Flexibilität haben, selbst zu entscheiden, welche Komponenten sie unterstützen. Dahinter steckt zum Teil die Absicht, es Browsern mit sehr einfachen Displays, etwa Mobiltelefonen, zu ermöglichen, die Teile von XHTML nicht zu implementieren, die für ihre Anwendung keinen Sinn machen (z. B. Tabellen bei sehr kleinen Text-Displays). Ein weiterer Vorteil ist, daß Anwendungsentwickler neue Module definieren können, mit denen Dokumente erzeugt werden können, die sowohl für die Darstellung für Menschen wie auch für eine verbesserte Kommunikation von Rechner zu Rechner verwendet werden können.

Transformation von XML mit XSLT

Die XML Stylesheet Language, oder XSL, besteht aus zwei Spezifikationskomponenten: XSL Transformations (XSLT) und XSL Formatting Objects (XSL-FO). Mit der Transformationssprache werden XML-Dokumente aus ihrer ursprünglichen in eine andere Form übersetzt, die z. B. XML, HTML oder irgend etwas anderes sein könnte (inklusive einfacher Text). XSLT wird detailliert in Transformation von XML mit XSLT behandelt. Die XSL-FO-Spezifikation beschreibt spezielle Stile für die Darstellung und wird benutzt, um ein formatiertes Dokument zu beschreiben, das auf einem Satzgerät ausgedruckt oder auf einem Bildschirm angezeigt werden kann. Sie ist noch nicht so umfassend implementiert wie XSLT und wird in diesem Buch nicht weiter behandelt.

  

<< 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