EN15907-XML-Anwendungsschemata

Aus DIF Filmographie Wiki
Wechseln zu: Navigation, Suche

Betrifft: EN15907-XML-Implementierung

Hintergrund

Das XML-Basis-Schema für den EN 15907-Standard definiert die Elemente und die Struktur einer filmografischen Beschreibung. Die Inhalte der meisten Elemente und auch die etlicher Attribute unterliegen dabei keiner Kontrolle durch das Schema. In praktischen Datenaustausch-Szenarien benötigen die Beteiligten oft eine bessere Vorhersagbarkeit der Elementinhalte, als dies durch das Basis-Schema gewährleistet werden kann.

Gefordert ist daher eine Beschränkung auf solche Aussagen, über deren Bedeutung sich die Austauschpartner verständigt haben. Gleichzeitig soll die allgemeinere Bedeutung der Datenelemente nicht verändert werden, so dass deren Inhalte auch ohne Kenntnis des Anwendungsschemas gültig bleiben.

Methodik

Zur Ausdifferenzierung von Schemadefinitionen bietet die XML-Schemasprache einige Konstrukte an, die im vorliegenden Kontext wie folgt gebraucht werden:

  • Eine Elementdefinition im Basis-Schema basiert auf einer Typdeklaration
  • Die Typdeklaration verwendet nur die grundlegenden XML-Datentypen
  • Das Anwendungsschema verwendet einen eigenen, vom Basis-Schema unterscheidbaren Namensraum
  • Die Typdeklaration des Basis-Schemas wird im Anwendungsschema zu Konstruktion eines abgeleiteten Typs herangezogen
  • Der abgeleitete Typ kann unter dem Namensraum des Anwendungsschemas für anwendungsspezifische Typrestriktionen verwendet werden

Instanzen eines Anwendungsschemas deklarieren (mindestens) zwei Namensräume: den des Basis-Schemas und den des Anwendungsschemas. Für die Validierung braucht nur das Anwendungsschema herangezogen werden, denn dieses enthält eine Import-Anweisung für das Basis-Schema.

Beispiel:

Im Anwendungsschema sei der TitleRelationshipType des Basis-Schemas abgeleitet zu einem anwendungsbezogenen TitleRelationship, indem der ursprüngliche Inhaltstyp string durch einen Aufzählungstyp ersetzt wird:

   <xs:complexType name="TitleRelationship">
       <xs:simpleContent>
           <xs:restriction base="cw:TitleRelationshipType">
               <xs:enumeration value="Originaltitel"/>
               <xs:enumeration ...
               (...)

Nehmen wir weiter an, das Anwendungsschema sei in der XML-Instanz unter dem Namensraumkürzel "kvb" und das Basis-Schema als "cw" deklariert. Nun können wir das ursprüngliche Element "cw:TitleRelationship" mit einer Typrestriktion aus dem Namensraum "kvb" versehen:

   <cw:TitleRelationship xs:type="kvb:TitleRelationship">Originaltitel</cw:TitleRelationship> 

Diese Aussage wird von einem validierenden Parser als gültig erkannt. Wogegen

   <cw:TitleRelationship xs:type="kvb:TitleRelationship">Original-Titel</cw:TitleRelationship> 

als ungültig zurückgewiesen wird, da die Schreibweise "Original-Titel" in der Aufzählung gültiger Werte nicht vorkommt. Ohne das Anwendungsschema wären beide Aussagen dagegen gleichermaßen valide:

   <cw:TitleRelationship>Originaltitel</cw:TitleRelationship> 

ebenso wie

   <cw:TitleRelationship>Original-Titel</cw:TitleRelationship> 

Eine zum Anwendungsschema konforme XML-Instanz ist damit immer auch konform mit dem Basis-Schema.


Zurück zur Übersicht der EN15907-XML-Implementierung.