Thomas Müller: XML-Schema !!!!!!!!!!dringend!!!!!!!!!!

Beitrag lesen

Mein Problem:
Ich habe mittels XML-Schemas unter dem Namespace "../CommonUsed/Types"
einen "complexType" namens "Element" definiert, dieser enthält eine qualifizierte Elementdeklaration "description".
Des weiteren habe ich unter dem Namespace "../Metadata/Types" einen
"complexType" mit dem Namen "Abstract-Stencil" definiert, welcher
"Element" erweitert. Unter dem Namespace "../Metadata" deklariere
ich ein Element("stencil") vom eben diesem Typ("Abstract-Stencil").
Möchte ich nun eine "Instanz" des Namespaces "../Metadata" anlegen,
muss ich für das "description" Element den Namespace
"../CommonUsed/Types" verwenden, was ich aber nicht möchte.
Wenn ich aber die Elementdeklaration für den Typ "Abtstract-Stencil"
in der gleichen Datei halte wie die Definition seiner selbst("Abstract-Stencil"),
so kann ich problemlos das "description" Element unter dem Namespace
im welchem "Abstract-Stencil" definiert und deklariert wurde verwenden.
Ich möchte aber Typdefinition und deren Deklaration weites gehend
voneinander Trennen.
Wie kann ich das Realisieren?

Hier noch ein paar Ausschnitte der wichtigsten Stellen:

<xs:schema targetNamespace="../CommonUsed/Types"
           xmlns:target="../CommonUsed/Types"
           elementFormDefault="qualified">

<xs:complexType name="Element">
  xs:complexContent
   <xs:restriction base="xs:anyType">
    xs:all
     <xs:element name="description"
                 type="xs:string"
                 minOccurs="0"
                 maxOccurs="1"/>
    </xs:all>
   </xs:restriction>
  </xs:complexContent>
 </xs:complexType>
</xs:schema>

<xs:schema targetNamespace="../Metadata/Types"
           xmlns:target="../Metadata/Types"
           xmlns:types="../CommonUsed/Types"
           elementFormDefault="qualified">

<xs:import namespace="../CommonUsed/Types"
            schemaLocation="Pfadangabe zum entsprechenden Schema"/>
 <xs:complexType name="Abstract-Stencil">
  xs:complexContent
   <xs:extensionn base="types:Element">
    xs:sequence
     <xs:element name="stencil"
                 type="target:Abstract-Stencil"
                 minOccurs="0"
                 maxOccurs="unbounded"/>
    </xs:sequence>
   </xs:restriction>
  </xs:complexContent>
 </xs:complexType>
</xs:schema>

<xs:schema targetNamespace="../Metadata"
           xmlns:target="../Metadata"
           xmlns:types="../Metadata/Types"
           elementFormDefault="qualified">

<xs:import namespace="../Metadata/Types"
            schemaLocation="Pfadangabe zum entsprechenden Schema"/>
 <xs:element name="stencil" type="types:Abstract-Stencil"/>
</xs:schema>

<stencil xmlns="../Metadata"
         schemaLocation="../Metadata
                         Pfadangabe zum entsprechenden Schema">
 <decription/><!--
                   Genau hier wird jetzt der
                   entsprechende NS gefordert :-(
               -->
</stencil>