EN15907-XML-Anwendungsschemata

Aus DIF Filmographie Wiki
Version vom 13. Dezember 2017, 19:29 Uhr von Dbalzer (Diskussion | Beiträge) (Methodik)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
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: <source lang="xml">

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

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

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

</source> Diese Aussage wird von einem validierenden Parser als gültig erkannt. Wogegen <source lang="xml"> <cw:TitleRelationship

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

</source> 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: <source lang="xml"> <cw:TitleRelationship>Originaltitel</cw:TitleRelationship> </source> ebenso wie <source lang="xml"> <cw:TitleRelationship>Original-Titel</cw:TitleRelationship> </source> Eine zum Anwendungsschema konforme XML-Instanz ist damit immer auch konform mit dem Basis-Schema.


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