Zum Hauptinhalt springen
Ich habe einige Nachforschungen über den Umgang mit XML-Daten (Extensible Markup Language) unter VOS und OpenVOS angestellt und dachte, es wäre nützlich, meine Erkenntnisse mit einem breiteren Publikum zu teilen.

 

WAS IST XML?
Die folgende Beschreibung von XML stammt aus dem Buch "XML: A Beginner's Guide", von Dave Mercer. (Osborne/McGraw Hill, 2001).

 

"SGML (Standard Generalized Markup Language) ist eine internationale Norm (ISO 8879) für die Definition von geräte- und systemunabhängigen Methoden zur Darstellung von Informationen, die sowohl von Menschen als auch von Maschinen gelesen werden können. Sprachen, die den Regeln von SGML entsprechen, werden Anwendungen genannt, und HTML ist eine SGML-Anwendung. [...] HTML hat keine Bestimmungen, um sich selbst auf standardisierte Weise um neue Tags, Attribute, Datenstrukturen oder Inhaltstypen zu erweitern... XML ist keine vordefinierte Sprache wie HTML, sondern ein vordefinierter Weg, um neue Sprachen zu definieren und gleichzeitig die übermäßig komplexe Natur von SGML zu vermeiden. Technisch gesehen umfasst XML eine Teilmenge der in SGML enthaltenen Funktionen."

 

Ein XML-Schema ist eine Methode zur Definition eines bestimmten XML-Dokuments (oder einer Klasse von Dokumenten). Es beschreibt die Struktur eines Dokuments, einschließlich der Elemente, Attribute, Datentypen und Einschränkungen, die verwendet werden können, ähnlich wie man eine Datenbank definieren würde.

 

Eine XML Document Type Definition (DTD) erfüllt einen ähnlichen Zweck wie ein Schema.

XML gibt es seit über 10 Jahren, und es gibt eine Reihe von konkurrierenden Produkten und Methoden sowie eine Reihe von entsprechenden Standards. Es gibt auch viele Fachbücher über XML. O'Reilly veröffentlicht ein Buch mit dem Titel "Learning XML", das hilfreich sein kann. Siehe www.oreilly.com. Die Website http://xml.com/, die von O'Reilly unterhalten wird, enthält eine Reihe hilfreicher Artikel und Links.

Die XML-Standards werden vom World Wide Web Consortium veröffentlicht, das sich unter http://www.w3.org befindet. Die Standards sind ziemlich trocken, so dass ich nicht empfehle, sie zu lesen.

 

XML ähnelt HTML und hat ein ähnliches Erbe wie HTML, ist aber eine viel universellere Kodierung. HTML beschreibt, wie die Daten bei der Anzeige auf einer Webseite aussehen sollen. HTML an sich hält nicht fest, ob eine Zahl eine Menge, einen Preis oder eine Bestandsnummer darstellt. XML hingegen kümmert sich normalerweise nicht darum, wie die Daten aussehen; es beschreibt, was die Daten bedeuten. Eine häufige Anwendung von XML ist die Erstellung einer textuellen Kodierung einer bestimmten Datenbank. XML kann sagen, dass es sich bei diesem Feld um einen numerischen Preis handelt und bei jenem Feld um eine alphanumerische Lagernummer und so weiter. Alle Daten in einem XML-Dokument sind als Text kodiert, was bedeutet, dass schwierige Probleme wie Endianness oder die binäre Darstellung von Gleitkommazahlen wegfallen. Daher setzt sich XML als eine gute Sprache für die Kommunikation von Daten zwischen Computern immer mehr durch.
TOOLS ZUR VERARBEITUNG VON XML

 

Ich kenne zwei weit verbreitete Open-Source-Pakete, die XML verarbeiten. Das erste ist Expat und das zweite ist Xerces. Beide Pakete wurden im Jahr 1999 entwickelt. Expat war das Werk einer einzelnen Person; Xerces wurde von IBM entwickelt.

 

Es gibt zwei konkurrierende Modelle für den Umgang mit XML. Das eine ist das Document Object Model (DOM) und das andere ist die Simple API for XML (SAX). Die SAX-Methode (die von Expat verwendet wird) liest ein XML-Dokument auf lineare Weise und ruft jedes Mal, wenn ein Markup-Element auftritt, eine Handler-Funktion auf. Die DOM-Methode liest das gesamte XML-Dokument und erstellt eine baumstrukturierte Hierarchie. Sie können sich SAX als eine sequenzielle Zugriffsmethode und DOM als eine zufällige Zugriffsmethode vorstellen. Xerces unterstützt sowohl SAX- als auch DOM-APIs. Es gibt Drittanbieter-Pakete, die eine DOM-API für expat bereitstellen (siehe "simkin").

 

Wir verwenden zwar den Begriff "XML-Dokument", aber in der Praxis kann der XML-kodierte Text eine Datei oder ein Datenstrom sein. In der Regel liefern Sie die Funktionen, die den Text sammeln und an den Parser weitergeben, so dass er aus einer beliebigen Quelle stammen kann.

 

EXPAT

 

Expat ist darauf ausgelegt, XML zu lesen und jedes Mal, wenn ein XML-Element auftaucht, eine Aktion durchzuführen. Ich habe keine Dokumentation gesehen, die nahelegt, dass es XML-basierte Datenströme erstellen kann. Expat ist in C geschrieben. Es gibt auch eine Version von Xerces für Perl und Java.
Eine Portierung von expat nach VOS ist verfügbar unter:

 

Die Hauptwebsite für Expat ist:

 

und

 

Eine schöne Einführung in expat finden Sie auf der Sourceforge-Seite home ; hier ist der Link:

 

 

Links zu anderen Open-Source-Paketen, die expat verwenden, finden Sie unter http://www.libexpat.org/.

 

XERCES

 

Xerces kann XML-Datenströme sowohl lesen als auch schreiben. Xerces ist in C++ geschrieben und für den Aufruf durch C++-Programme konzipiert.

 

Tom Mallory und ich haben Mitte 2008 Xerces Version 2.8.0 für einen Kunden von Stratus portiert. Unser Ziel war eine Plattform der V-Serie. Die aktuelle Version von Xerces ist 3.0.1. Wenn Sie daran interessiert sind, eine Kopie dieser Portierung zu erhalten, wenden Sie sich bitte an Ihr Account-Team.

 

Die Hauptseite für xerces ist:

 

WELCHES IST ZU VERWENDEN?

 

Wenn Sie nur ein XML-kodiertes Dokument parsen wollen und Ihre Verarbeitung mit dem sequentiellen Lesen des Datenstroms kompatibel ist, dann empfehle ich expat. Es ist zwar in C geschrieben, aber dank der Tatsache, dass alle VOS-Programmiersprachen Funktionen und Unterprogramme aufrufen können, die in jeder anderen Programmiersprache geschrieben wurden, können Sie expat von jeder VOS-Sprache aus aufrufen.

 

Wenn Sie unter anderem die Möglichkeit benötigen, auf ein XML-Dokument nach dem Zufallsprinzip zuzugreifen, oder wenn Sie XML erstellen möchten und mit der Programmierung in C++ vertraut sind, dann empfehle ich Xerces.

 

Wenn Sie Unterstützung benötigen, um Ihre Anwendung um die Fähigkeit zur Verarbeitung von XML-Dokumenten zu erweitern, wenden Sie sich an Ihr lokales Stratus Account-Team.

© 2024 Stratus Technologies.