Metasprache XML

Grundlage für intelligente Webdienste

Veröffentlicht: 03. Feb 2005 | Aktualisiert: 06. Feb 2004

Von Jürgen Mauerer

office xml

XML (eXtensible Markup Language) ist die wohl wichtigste Neuentwicklung seit Einführung der Webtechnologie. Der offene Standard vereinfacht den Austausch von Daten zwischen zentralen Anwendungen unabhängig von Plattform, Betriebssystem und Programmiersprachen - auch über Unternehmensgrenzen hinaus. Das .NET Framework bietet eine Reihe von Klassen zum Bearbeiten und Überprüfen von XML-Daten.

Eine der herausragenden Eigenschaften von XML ist die Trennung von Inhalt und Darstellung. Diese Trennung vereinfacht die Verwendung von Datenfragmenten oder auch ganzen Dokumenten für unterschiedliche Plattformen, etwa für Internet-Browser, WAP oder andere Medien. Unternehmen können dank XML beispielsweise ihre Produkte mit relativ geringem Aufwand für einen Online-Shop, einen traditionellen Katalog oder auch für den Austausch mit Lieferanten via Internet aufbereiten.

XML ist so konzipiert, dass es die Ausgabe für alle erdenklichen Medien vereinfacht. Hier kommt XSLT (XML Style Language Transformation) ins Spiel. Die Technologie bereitet XML-basierte Dokumente für die verschiedenen Plattformen auf und definiert die Mechanismen, wie bestehende XML-Dokumente in neue Dokumente transformiert werden. Selbst die Sprachausgabe ist dabei denkbar.

XML ist als offener Standard Basis von Web Services, also Anwendungen, die über das gesamte Internet verteilt sind. Die Applikationen können über die XML Web Services Daten gemeinsam nutzen sowie Funktionen anderer Anwendungen aufrufen - unabhängig davon, wie diese programmiert sind. Langfristiges Ziel ist die Integration von Anwendungen und Geschäftsprozessen zwischen Unternehmen weltweit.

XML ist eine Metasprache, die anwendungsbezogen die inhaltliche Struktur und Daten beliebiger Natur beschreibt und auch der Entwicklung von spezifischen Markierungssprachen dient. Inzwischen gibt es eine Vielzahl an XML-basierten Protokollen und Formaten. Die Bandbreite reicht von Standards für die Zusammenarbeit an Web-Dokumenten oder den Datenabgleich über das Internet bis hin zur Kommunikation von Softwareobjekten über das Netz. Zu nennen sind hier etwa SyncML, SOAP, XHTML oder WML.

* * *

Auf dieser Seite

Einführung: Das ist XML Einführung: Das ist XML
XML und .NET XML und .NET
XSL: XML für verschiedene Plattformen aufbereiten XSL: XML für verschiedene Plattformen aufbereiten

Einführung: Das ist XML

XML-Dokumente bestehen im Prinzip aus einer baumförmigen Struktur. Die Datenstruktur weist Knoten (Nodes) auf, die mit der Root beginnen. Jeder dieser Knoten kann selbst wieder Nodes enthalten. Die Äste eines XML-Baumes sind Elemente, Attribute und deren Inhalte. XML-Dokumente müssen den Regeln einer DTD (Document Type Definition) beziehungsweise eines XML Schemas folgen.

DTDs und XML Schemas sind formale Spezifikationen aller in einem Dokumenttyp erlaubten Strukturen, also eine Art formale Grammatik, in der die Bezeichnungen der in Dokumenteninstanzen zulässigen Tags und deren Verschachtelung definiert sind. Ein weiterer XML-spezifischer Begriff sind Namespaces (Namensräume). Namensräume definieren für jede Anwendung einen eigenen Gültigkeitsbereich von Bezeichnern. Bezeichner sind bei XML entsprechende Element- und Attributnamen.

Wie HTML-Dokumente müssen auch XML-Dokumente verarbeitet werden. Das ist Aufgabe der so genannten Parser. Parser sind Programme, die syntaktische Strukturen erkennen und nach definierten Regeln weiterverarbeiten. Der Parser liest das Dokument und erzeugt eine Baumstruktur, die schließlich an den Browser übergeben wird. Der Browser sorgt für die Darstellung. 

Die baumförmige Darstellung von XML-Dokumenten ist für den Endanwender kaum zu gebrauchen, gefragt ist vielmehr ein passables Layout. Auch dafür ist XML gerüstet: Über Stylesheets lässt sich das Aussehen von XML-Dokumenten definieren. Prinzipiell kann man  Cascading Style Sheets (CSS) oder die Extensible Stylesheet Language (XSL) für das Layout verwenden. Die Hauptrolle spielt jedoch XSL. XSL deckt nicht nur die Formatierung von XML-Dokumenten ab, sondern ist mit dem Ableger XSLT (XML Style Language Transformation) auch für die Transformation von XML-Dokumenten auf verschiedene Plattformen zuständig.

XML verstehen
Mit XML lassen sich Inhalte flexibel austauschen, eigene Erweiterungen einführen und Inhalte vergleichsweise einfach für die unterschiedlichsten Zielmedien aufbereiten. Dare Obasanjo beschreibt in diesem englischsprachigen Artikel, wie die Meta-Sprache funktioniert.

XML: Fragen und Antworten
Was sind Namespaces, welchen Sinn haben DTDs oder XML Schemas und wie wird XML-Code verarbeitet? XML wirft viele Fragen auf. Aaron Skonnard beantwortet sie.

XML-Namespaces und deren Einfluss auf XPath und XSLT
XML-Namespaces sind in den meisten XML-Empfehlungen und Arbeitsentwürfe des W3Cs enthalten. Dieser Artikel zeigt, wie Namespaces funktionieren und wie sie mit anderen W3C-Technologien wie XPath und XSLT zusammenarbeiten.

Der schnelle Einstieg in XML Schemas
Warum verwendet man heutzutage lieber XML Schemas, obwohl Document Type Definitions (DTD) einen ähnlichen Zweck erfüllen? Aaron Skonnard beantwortet diese Frage und gibt eine Einführung in die Syntax von XML Schemas. In englischer Sprache.

XML Schema-Entwurfsmuster
Über das XML Schema lassen sich Struktur und Einschränkungen von XML-Dokumenten spezifizieren. Dare Obasanjo befasst sich in diesem Artikel mit Techniken zur Erstellung von flexiblen Schemas, die eine modulare Entwicklung von zugrunde liegenden Daten und/oder Schemata ermöglichen.

 

XML und .NET

Das .NET Framework bietet eine Reihe von Klassen zum Bearbeiten und Überprüfen von XML-Daten. Sie befinden sich überwiegend im Namensraum System.Xml. Die XmlTextReader-Klasse etwa kann man zum schnellen und effizienten Lesen von XML verwenden. In Verbindung mit der XmlValidatingReader-Klasse kann sie XML-Dokumente programmgesteuert anhand einer DTD oder eines XML-Schemas überprüfen. Dadurch ist gewährleistet, dass die XML-Daten gültig sind und potenzielle Fehler vermieden werden, bevor die Daten mit anderen Teilen einer Anwendung in Kontakt kommen.

XML lässt sich auch mit ADO.NET verknüpfen. So kann man das Lesen und Schreiben von XML direkt aus dem DataSet durchführen. Wenn die XML an Komplexität gewinnt, kann diese in ein XmlDataDocument mit einem verknüpften DataSet geladen werden, um sowohl die XML- als auch die Tabellenansicht der Daten gleichzeitig zu erhalten.

Wird das DataSet über die XmlReader-Technik mit XML-Daten gefüllt, wird automatisch eine Definition oder XSD (XML Schema Definition) für die XML-Daten generiert. Die XSD wird während des Einlesens von der Struktur des XML-Dokuments abgeleitet. Dies kann sich als sehr nützlich erweisen, da mithilfe des DataSets schnell eine XSD erzeugt werden kann, die von einem vorhandenen XML-Dokument abgeleitet wurde.

Die XML-Klassen des .NET Framework
Microsoft .NET bietet eine Reihe von neuen XML-APIs und -Klassen, die auf Standards wie DOM, XPath, XSD und XSLT basieren. XmlWriter, XmlReader und XmlNavigator-Klassen enthalten eine Reihe von Funktionen, die vorher manuell erstellt werden mussten.

Überprüfen von XML-Dokumenten in .NET
Das Überprüfen von XML-Dokumenten ist ein wichtiger Bestandteil des Datenaustauschs. Die .NET-Plattform enthält mehrere Klassen, mit denen sich XML-Dokumente anhand von DTDs oder XML-Schemas überprüfen lassen. Auf diese Weise stellen Sie sicher, dass XML Daten gültig sind, und vermeiden potenzielle Fehler, bevor die Daten mit anderen Teilen einer Anwendung in Kontakt kommen.

Das XML Document Object Model (DOM)
Das Document Object Model (DOM) definiert die logische Struktur eines XML-Dokuments und die Schnittstellen, die für eine Anwendung notwendig sind. Mit Hilfe des DOM lassen sich einzelne Teile von XML-Dokumenten wie Elemente, Attribute, Text oder Kommentare bearbeiten. Dieser Artikel führt in das XML DOM ein und zeigt, wie man damit XML-Dokumente verändern kann.

ADO.NET und XML
In der Vergangenheit gab es nur eine recht dürftige Verbindung zwischen den traditionellen Datenzugriffstechnologien und XML. Mit ADO.NET und dem XmlDataDocument-Objekt steht Entwicklern nun das Beste aus beiden Welten zur Verfügung. Rockford Lhotka befasst sich in diesem Artikel mit den Grundlagen der Arbeit mit XML in ADO.NET.

Serialisierung und XML
XML ist innerhalb des .NET Framework das Rückgrat für die Serialisierung von Klasseninstanzen. Die für die Nutzung dieser Funktionalität benötigten Namensräume des .NET Frameworks sind System.XML und System.XML.Serialization.

Verwaltete SQLXML 3.0-Klassen
Kevin Farnham beschreibt in diesem Artikel, wie Sie mit Hilfe der verwalteten SQLXML-Klassen Informationen aus SQL Server 2000-Datenbanken auf effiziente Weise extrahieren können. 

Nützliche XML Tools
Das .NET Framework bietet eine Reihe von Klassen zum Bearbeiten von XML-Daten. Sie befinden sich überwiegend im Namensraum System.Xml. Mittlerweile gibt es viele Erweiterungen und nützliche Tools für den Umgang mit XML. Dieser Artikel beschreibt die wichtigsten Tools und zeigt, wie Sie diese sinnvoll verknüpfen, um eindrucksvolle XML-Lösungen erstellen zu können. 

 

XSL: XML für verschiedene Plattformen aufbereiten

Eine wichtige Eigenschaft von XML ist die Trennung von Inhalt und Darstellung. Diese Trennung vereinfacht die Verwendung von Datenfragmenten oder auch ganzen Dokumenten für unterschiedliche Plattformen. Um die Vorzüge von XML richtig ausschöpfen zu können, ist eine Technik notwendig, die XML-basierte Dokumente für die verschiedenen Plattformen aufbereitet. Hier kommt XSL (eXtensible Style Language) ins Spiel.

XSL definiert die Mechanismen, wie bestehende XML-Dokumente in neue Dokumente transformiert werden. Selbst die Sprachausgabe ist dabei denkbar. XSL besteht im Prinzip aus drei Komponenten: XPath (XML Path Language),  XSLT (XML Style Language Transformation) und XSL selbst.

XPath dient dazu, bestimmte Dokumententeile eines XML-Dokuments anzusprechen (wichtig vor allem bei umfangreichen Dokumenten). XSLT beschreibt, wie man die Baumdarstellung eines XML-Dokuments in eine andere Baumdarstellung verwandelt. XSL verfügt neben XSLT über einen Satz Formatierungsobjekte samt zugehöriger Eigenschaften.

Die zentrale Rolle bei der XSL-Transformation spielen die Template-Regeln, die in einem XSL-Dokument enthalten sind. Eine Template-Regel beinhaltet so genannte Pattern (Muster), die spezifizieren, welche Ausgangsinhalte gegen neue Inhalte ausgetauscht werden. Der XSL-Prozessor liest dabei das XML-Dokument und das XSL-Stylesheet. Aus den im XSL-Stylesheet enthaltenen Anweisungen erzeugt der XSL-Prozessor ein neues Dokument. Diese Dokumente werden vom Parser auf syntaktische Strukturen hin überprüft und nach den Template-Regeln in das neue Format umgewandelt. Der Prozess läuft meist serverseitig ab.

XSLT - eine Einführung
Die Spezifikation von XSLT definiert die Regeln, wie bestehende XML-Dokumente in neue umgewandelt werden. Dieser englischsprachige Artikel beschreibt, wie Sie die Instruktionen und Template-Regeln von XSLT nutzen, Namensräume verwalten, das Ergebnis der Transformation kontrollieren und Stylesheets verwenden.  

So verbessern Sie XSL
Kurt Cagle führt in diesem Artikel in die Grund-Architektur von XSL ein, der Fokus liegt dabei auf den Template-Mechanismen. Zudem zeigt er, wie Sie mit Kombinationen von Templates und Skripting die Transformation der XML-Dokuemnte via XSL verbessern und beschleunigen können.

XSLT erweitern
Für XSLT gibt es mittlerweile eine Reihe von Erweiterungen. Dare Obasanjo zeigt in diesem Artikel, wie Sie eine Bibliothek mit über 60 Zusatzfunktionen für XSLT implementieren.

XPath- und XSLT-APIs im .NET Framework
XPath dient dazu, bestimmte Dokumententeile eines XML-Dokuments anzusprechen. Dessen Infrastruktur ist sehr wichtig für die XML-Funktionen des .NET Framework. In diesem Artikel geht es um die Implementierung des XPath-Navigators und des XSLT-Prozessors. Er enthält praktische Beispiele wie die asynchrone Transformation oder serverseitige Transformationen mit ASP.NET.