Was ist neu in XML-Schema 1.1?

Seit der Einführung von XML Schema 1.0 wurde dieser Standard weit verbreitet eingesetzt. Im Laufe der Jahre haben Entwickler verschiedene Änderungen gefordert, insbesondere die Möglichkeit, detailliertere Geschäftsregeln zu definieren und zu validieren, sowie eine flexible Weiterentwicklung der Schemata zu ermöglichen. Die Empfehlung für XML Schema 1.1 enthält zahlreiche Änderungen und Verbesserungen, die darauf abzielen, diese Probleme zu lösen.

Schauen wir uns die wichtigsten neuen Funktionen an und einige Ressourcen, mit denen Sie mehr über XML Schema 1.1 erfahren oder sofort damit beginnen können.

Erfahren Sie, was neu ist in XML-Schema 1.1

Es gibt eine umfassende Erklärung der neuen und verbesserten Funktionen in XML Schema 1.1 in unserem kostenlosen, Online-Schulungskurs zu XML Schema, auf den Sie jederzeit zugreifen und in Ihrem eigenen Tempo absolvieren können. Wenn Sie ein erfahrener Schema-Entwickler sind und einfach nur erfahren möchten, was in XSD 1.1 neu und verbessert wurde, können Sie direkt zu Kapitel 9 springen. Dieser Kurs ist eine hervorragende Möglichkeit, XML Schema 1.1 kennenzulernen und Ihre Schemata schnell an die neuen Funktionen anzupassen.

In diesem Artikel erkläre ich einige der wichtigsten Neuerungen und zeige Ihnen, wie Sie die neuen Funktionen mit XMLSpy implementieren können. XMLSpy-Versionen ab 2014 bieten umfassende Unterstützung für XML Schema 1.1, einschließlich der Validierung von XSD- und XML-Instanzdateien basierend auf XML Schema 1.1, sowie intelligente Bearbeitungswerkzeuge für XSD 1.1 im grafischen XML Schema 1.1-Editor.

Aussagen

Assertions, auch als Nebenbedingungen bezeichnet, ermöglichen in XML Schema 1.1 eine regelbasierte Validierung von Geschäftsprozessen, die mehr als ein Element betreffen. Diese Regeln werden mithilfe von XPath-Ausdrücken definiert. Beispielsweise können Sie das neue -Element verwenden, um zu prüfen, ob ein Ausgabenbetrag kleiner oder gleich dem zulässigen Betrag ist, ob ein Datum innerhalb eines bestimmten Zeitrahmens liegt und so weiter. In diesem Beispiel gibt die Assertion an, dass die Endzeit eines Meetings größer sein muss als die Startzeit. Dies wird hier in der XML-Schema-Designansicht dargestellt:

Und im entsprechenden Code:

Es ist einfach, die in einem Schema vorhandenen Einschränkungen (Assertions) mithilfe der Ansicht "Globals" zu überprüfen. Diese bietet eine Registerkarte "Einschränkungen" für XML-Schema-Dokumente der Version 1.1. Hier können Sie auch neue Einschränkungen hinzufügen und den Standard-Namensraum für XPath auswählen.

Alternativ können Sie diese Bedingungen im Bereich "Inhaltsmodell" definieren, indem Sie mit der rechten Maustaste auf ein Element im Inhaltsmodell klicken und "Kindbedingung hinzufügen" auswählen. Sie können den XPath-Test direkt im Inhaltsmodell über das Hilfenster "Details" definieren.

Diese Fähigkeit, Geschäftsregeln zu definieren und zu validieren, ist ein großer Vorteil von XML Schema 1.1, und diese grafische Darstellung hilft Ihnen, den Prozess zu verstehen und zu durchlaufen.

Alternative Formulierungen für Bedingungssätze

Alternative Typdefinitionen sind eine weitere Funktion, die entwickelt wurde, um XSDs leistungsfähiger zu machen, indem sie eine integrierte Flexibilität hinzufügen. Diese ermöglichen es, einem Element dynamisch einen Typ zuzuweisen, basierend auf einem Attributwert im XML-Dokument. Das Element xs:alternative hat zwei Attribute: type und test. Hier ist ein Beispiel unter Verwendung des Schemas für Meetings, das wir zuvor begonnen haben.

Wenn die Endzeit des Meetings vor Mittag liegt, ist der Typ des Meetings "MorningMeeting". Nach Mittag ist es "AfternoonMeeting". Um dies im XML-Schema-Designer zu definieren, klicken Sie einfach mit der rechten Maustaste auf das Element "Meeting" und wählen Sie "Kindelement hinzufügen / Alternative". Verwenden Sie die Hilfefunktion "Details", um einen XPath-Ausdruck einzugeben, und wählen Sie dann im Dropdown-Menü "Typ" den Typ aus, der dynamisch dem Element zugewiesen werden soll.

Ab sofort verwendet jedes Element vom Typ "Meeting" in einer XML-Datei, dessen Endzeit nach 12:00:00 Uhr liegt, den Typ "AfternoonMeeting". Ein grafischer XSD-Editor erleichtert es, diese Beziehungen visuell darzustellen und zu konfigurieren.

Schemaweite Attribute

XML Schema 1.1 ermöglicht es Ihnen, eine Reihe von Standardattributen zu definieren, die automatisch auf jeden komplexen Datentyp im Schema angewendet werden. Beispielsweise ist es in unserem Schema für Sitzungen hilfreich, wenn die Attribute "startTime" und "endTime" für alle Elemente gelten, ohne dass sie manuell hinzugefügt werden müssen. Dies spart Zeit und reduziert das Fehlerrisiko – insbesondere bei einem Schema mit einer großen Anzahl von Elementen. Das Element "xs:schema" in XML Schema 1.1 verfügt über ein optionales Element namens "defaultAttributes", das eine Attributgruppe identifiziert. (Wenn es ein bestimmtes Element gibt, bei dem die Standardattribute nicht angewendet werden sollen, können Sie dies mit dem Attribut "defaultAttributesApply="false"" angeben.) Es ist einfach, eine Attributgruppe hinzuzufügen und die Standardattribute im Bereich "Globals" des XML-Schema-Editors zu definieren.

Anschließend können Sie im Dialogfenster "Schema-Einstellungen", das über das Menü "Schema-Design" aufgerufen wird, die gerade erstellte Attributgruppe als Standardattribute auswählen. Verwenden Sie dazu die Auswahlliste.

Oben sind einige der wichtigsten Neuerungen aufgeführt, die mit XML Schema 1.1 eingeführt wurden. Weitere Neuerungen umfassen vererbbare Attribute, erweiterte Funktionen für Ersetzungsgruppen, einen Datentyp xs:error und weitere Verbesserungen. All diese Neuerungen werden im Detail mit praxisnahen Beispieldateien in Kapitel 9 des Online-Kurses "XML Schema" erläutert.

Weitere Ressourcen und Werkzeuge:

XML Schema 1.1 Recommendation XMLSpy XML Schema 1.1 Editor and validator RaptorXML XML Schema 1.1 Validation Server Free Online XML Schema 1.1 Training