XML-Validierung / XML-Schema

XML-Schema

XML-Schema

➪ XML-Schema ist ein XML-Dokument mit dem Namespace http://www.w3.org/2001/XMLSchema. Es ermöglicht, Elemente, Attribute, deren Datentypen und evtl. gegenseitige Abhängigkeiten detailliert zu definieren, auch mit der Zuweisung von Namespaces. Dabei unterstützt XML-Schema eine ganze Anzahl von Standard-Datentypen, die in gängigen Programmiersprachen Verwendung finden.

Bei der praktischen Arbeit mit XML-Schema wird es mühsam, wenn Sie keinen professionellen Editor zur Verfügung haben. Einer dieser Editoren ist der Oxygen XML Editor 19.1. Über Datei|Neu erhalten Sie dieses Fenster:

pic/Oxygen_Editor_XSD_1.png

Der Editor generiert eine grafische Darstellung, die Sie für die praktische Arbeit verwenden können.

pic/Oxygen_Editor_XSD_2.png

Hinter der grafischen Darstellung liegt ein XML-Dokument mit einem besonderen Aufbau. Hier finden Sie einen Namespace, dem ein Namespace-Präfix "xs" zugeordnet ist.

pic/Oxygen_Editor_XSD_3.png

XML-Schema ermöglicht unter anderem, ein XML-Dokument zu validieren, das heißt, die Dokumentstruktur (Elemente, Attribute, Namespaces) sowie die Datentypen der Textinhalte zu überprüfen. Dabei ist die Grundvoraussetzung, dass die XML-Dokumente wohlgeformt sind.

XML-Schema bietet eine strukturelle Prüfung, keine Detailprüfung. Zwar ist es möglich, die Zulässigkeit der Inhalte präzise einzugrenzen: Strings müssen einem bestimmten Pattern entsprechen, Zahlen in einem klar definierten Wertebereich liegen. Aber eine Detailprüfung ist das nicht. Die Detailprüfung ist eher der Schwerpunkt von Schematron: die Prüfung, ob an einer mit XPath exakt definierten Feldadresse ein ganz bestimmter, vordefinierter Wert steht. XML-Schema und Schematron sind sehr mächtige Standards, deren weitreichende Möglichkeiten in der Praxis nur teilweise verwendet werden.

Daneben erlaubt XML-Schema, einen beträchtlichen Teil der anschließenden Programmierlogik automatisch zu generieren. In unterschiedlichen Programmiersprachen und technologischen Ansätzen werden mit XML-Schema Klassen generiert, deren instanziierbare Objekte automatisch mit den Inhalten der XML-Dokumente befüllt werden können. Daten aus dem XML-Stream werden also unmittelbar in der objektorientierten Programmierung übernommen. Das setzt aber voraus, dass die XML-Dokumente definitiv Schema-valide sind.

So findet sich in der Developer-Eingabeaufforderung zum VisualStudio (z.B. zu finden in C:\Program Files (x86)\Microsoft Visual Studio 14.0) Zugriff auf das Programm "xsd.exe", das u.a. in der Lage ist,

XML dient zum internationalen Datenaustausch zwischen verschiedenen Betriebssystemen und Rechnerarchitekturen ebenso wie zur Struktur- und Prozessdefinition im Rahmen komplexer Workflows. Häufig dient XML hierbei auch als temporäres Zwischenformat von umfangreichen Konvertierungsstrecken, auch vieler Nicht-XML-Formate. In allen Fällen ist eine hohe Datenqualität der XML-Dokumente unabdingbar.

Ist ein XML-Dokument XSD-valide, so kann die nächste Stufe der Weiterverarbeitung gestartet werden, andernfalls wird die Auswertung des XML-Dokuments von vornherein unterbunden: Der Prozess wird gestoppt. Dabei sind die Validierungskriterien häufig sehr präzise definiert, um eine hohe Datenqualität zu erreichen.

Tatsächlich arbeiten viele Data Consumer mit diesem kompromisslosen Ansatz: Nicht XSD-valide XML-Dokumente wollen wir nicht haben. Keine Diskussion. Der Lieferant ist dafür verantwortlich, valide Daten zu übertragen. Nicht valide Daten werden abgelehnt und gelten als nicht empfangen.

wg / 4. April 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf.






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

www.wilfried-grupe.de/XSD.html