Veloconnect XML-Schema

Die XML-Syntax der Nachrichten wird in einem XML-Schema festgelegt. Die normative Beschreibung dieses Schemas ist den Dateien mit Endung xsd zu entnehmen, die im Verzeichnis xsd zu finden sind. Diese Dateien sind normativ für die syntaktische Korrektheit und können von geeigneten Parsern zur automatischen Validierung verwendet werden. Die Datei veloconnect-1.3.xsd enthält alle erforderlichen Import-Deklarationen für diesen Zweck. Sofern in dieser Spezifikation Angaben zur Syntax von XML-Elementen gemacht werden, handelt es sich nur um Umschreibungen des in den xsd-Dateien niedergelegten XML-Schemas.

Zur Beschreibung von geschäftsbezogenen Entitäten wie Preis, Menge, Artikel wird auf das Vokabular zurückgegriffen, das durch die Universal Business Language 1.0 (UBL), zur Verfügung gestellt wird. Das UBL-Schema ist in mehrere Namensräume zerlegt, wir verwenden davon explizit folgende:

  • urn:oasis:names:specification:ubl:schema:xsd:UnspecializedDatatypes-1.0

  • urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0

  • urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0

Dabei haben wir folgende Änderungen und Ergänzungen in den beiden letzten Namensräumen vorgenommen:

  • CommonBasicComponents wurde um die Elemente DeliveryDate und BacklogIndicator ergänzt

  • CommonAggregateComponents wurde um die Element RecommendedRetailPrice, UnitPrice und ItemReplacement ergänzt

  • Das Element Item in CommonAggregateComponents wurde um die Elemente RecommendedRetailPrice und ItemInformation ergänzt

Grundsätzlich sind diese Änderungen jedoch dergestalt, dass Dokumentinstanzen nach dem originalen UBL-Schema auch gültige Dokumente nach dem geänderten Schema sind.

Die Schemadefinitionen von veloconnect verteilen sich auf mehrere Module, die z.T. abhänig voneinander sind. Jedes Modul hat seinen eigenen Namensraum, dessen Name entsprechend der Versionsrichtlinie gebildet wird. In der aktuellen Spezifikation haben wir fünf Module mit den folgenden Namensräumen:

In den Schemadateien und in dieser Spezifikation werden für Namensräume folgende Präfixe verwendet:

  • udt für urn:oasis:names:specification:ubl:schema:xsd:UnspecializedDatatypes-1.0

  • cbc für urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0

  • cac für urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0

  • vcc für urn:veloconnect:catalog-1.1

  • vcp für urn:veloconnect:profile-1.3

  • vct für urn:veloconnect:transaction-1.0

  • vcr für urn:veloconnect:receipt-1.3

  • vco für urn:veloconnect:order-1.1

  • xsd für http://www.w3.org/2001/XMLSchema

Diese Präfixe sind nicht verpflichend. Insbesondere bei XML-Dokumenten die über ein Objekt-Schema-Mapping (wie z.B. JAXB) erzeugt werden können die verwendeten Präfixe komplet anders ausfallen, wie z.B. ns1, ns2 etc. Entscheidend für die Korrektheit des XML-Dokuments sind immer die vollqualifizierten Namen der Elemente, die sich aus dem lokalen Namen und dem Namespace ergeben. Der Präfix ist nur ein Hilfsmittel, um den Namespace kurz und prägnant mitzuteilen.

Innerhalb jeder xsd-Datei wird für den aktuellen Namensraum kein Präfix verwendet. Eine nach diesem XML-Schema gültige XML-Dokumentinstanz muss qualifizierte Namen, d.h. mit Namensraumangaben, verwenden. Dies ermöglicht dann insbesondere die Unterscheidung unterschiedlicher Versionen dieser Spezifikation. Im Abschnitt Versionierung und Kompatibilität wird näher erläutert, wie sich zukünftige Versionen der veloconnect-Spezifikation von dieser unterscheiden können und was bei Implementierungen zu beachten ist, um dem Rechnung zu tragen.