heiDeny: XML-Schema mit "redefine"

Beitrag lesen

Liebe Alle,

ich möchte mit Hilfe des Elements "redefine" von "http://www.w3.org/2001/XMLSchema" ein neues Schema definieren, das jedoch auf mehr als einem bereits vorhandenen Schema aufbaut/schemakonform bleibt und einen eigenen Namespace: "http://www.heissnamesp.uli-heim.de" mit dem Präfix "heiss" besitzt.

Die vorhandenen Schemata sind: "http://www.loc.gov/standards/mets/mets.xsd" (mets) "http://www.loc.gov/standards/mods/mods-3-7.xsd" (mods) und ein eigenes Schema "dfgnumber.xsd" (dfg) das vollständig einbezogen werden soll.

eigene DFG-Schema:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:dfg="http://www.dfgnamesp.uli-heim.de"
        targetNamespace="http://www.dfgnamesp.uli-heim.de"
        elementFormDefault="qualified"
        xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning">
        
        
        <xsd:element name="dfg" vc:minVersion="1.0" vc:maxVersion="1.1">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="SystematikFaecherFachkollegien" minOccurs="0" maxOccurs="unbounded">
                        <xsd:complexType>
                            <xsd:sequence>
                                <xsd:element name="id" type="dfg:NummernType"  minOccurs="1" maxOccurs="1"/>
                            </xsd:sequence>
                            <xsd:attribute name="version" type="xsd:string" default="Amtsperiode2012-2015"/>
                        </xsd:complexType>
                    </xsd:element>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
    
    <xsd:simpleType name="NummernType">
        <xsd:list>
            <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="1"/>
                    <xsd:enumeration value="2"/>
                    <xsd:enumeration value="3"/>
                    <xsd:enumeration value="4"/>
                    <xsd:enumeration value="11"/>
                    <xsd:enumeration value="12"/>
                    <xsd:enumeration value="21"/>
                </xsd:restriction> 
            </xsd:simpleType>
        </xsd:list>
    </xsd:simpleType>
    
</xsd:schema>

METS soll dabei quasi das "Rahmenschema" innerhalb von "heiss" bilden, in das MODS mit "mdRef" oder "mdWrap?" für MDTYPE=MODS eingebunden werden soll.

Grundsätzlich soll jeder Einbezug jeweils mit dem entsprechenden Präfix (mets, mods, dfg) gekennzeichnet sein, der im daraus generierten XML aufrufbar ist. Eine Modifikation (extension, restiction), die nicht einem der genannte Quellschemata entspricht, soll das Präfix "heiss" erhalten.

DFG soll unter MDTYPE=OTHER OTHERMDTYPE=DFG und der entsprechende MDTYPEVERSION ebenfalls mit dem METS-Element (mdRef) oder mdWrap? in METS eingebunden, aber nicht modifiziert werden, während METS und MODS in ihrem Umfang an verfügbaren Elementen und deren Nutzung in "heiss" anpassbar sein sollen, so dass das daraus generierbare XML-Dokument eben nur das zur Verfügung steht, was in "heiss" aus METS und MODS entnommen und angepasst wurde.

Ich bin Schema-Anfänger und experimentiere daran bereits seit über einem Monat. Vielleicht kann mir jemand helfen hier einen Aufpunkt zu finden, damit ich beginnen kann das Schema mit "redefine" zu schreiben. Einen Plan, welche Elemente und in welcher Form enthalten sein sollen, habe ich bereits. Sicher ist das für jemanden mit Erfahrung eine leichte Aufgabe. Bisher war von mir jedoch kein Versuch der Umsetzung mit "redefine" auch nur ansatzweise erfolgreich. Einfache Schemata zu schreiben, zu referenzieren, mit "import" für mehr als ein Schema, anstelle von "redefine" zu arbeiten, war relativ unproblematisch, aber nicht zweckdienlich. Ich würde mich freuen, wenn mir jemand helfen könnte. Vielleicht ist auch die Herangehensweise völlig kontraproduktiv.

Das DFG-Schema, das die DFG-Fachsystematik http://www.dfg.de/dfg_profil/gremien/fachkollegien/faecher/ mit Hilfe von Filteregeln darstellen soll, werde ich ebenfalls noch einmal angehen müssen. Derzeit ist es eben nur eine einfache Liste von Nummern. Letztendlich werde ich es jedoch mit kaskadierenden Prädikaten versuchen, damit alle Ebenen der DFG-Fachsystematik mit ihren Abhängigkeiten zueinander einbezogen werden können. Leider muss ich auch hier noch herausfinden wie das gehen soll.