Probleme mit Namespaces in XML-Datei

T

tine2

Ich habe in einer Datei (Datei A) u.a. foglenden Schemainhalt definiert:
...
<xsd:element name="A" type="AType"/>
...
<xsd:complexType name="AType">
<xsd:sequence>
<xsd:element ref="ns1:AId"/>
<xsd:element ref="ns1:AName"/>
<xsd:element ref="A" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="xy" type="xsd:boolean" use="optional"/>
</xsd:complexType>

nun habe ich obige Definition in einer anderen Schema-Datei benutzt (Datei B), wobei "nsa" der namespace für Datei A ist.
...
<xsd:complexType name="ElementType">
<xsd:sequence>
<xsd:element ref="ContentElement" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ContentElement">
</xsd:complexType>

<xsd:element name="A" type="nsa:AType" substitutionGroup="ContentElement"/>

wenn ich nun eine XML-Datei erstellen möchte, die auf dem Schema der Datei B beruht, lege ich meiner XML-Datei als Schema die Datei B zugrunde und erhalte nun (meiner Meinung nach) darin ein Konstrukt, dass folgendermaßen aussieht:
<A>
<ns1:AId>...</ns1:AId>
<ns1:AName>...</ns1:AName>
<nsa:A>
<ns1:AId>...</ns1:AId>
<ns1:AName>...</ns1:AName>
....
</nsa:A>
</A>

Der Validator sagt, dass er kein Element "nsa:A" an der Stelle erwartet, sondern ein Element "A". Also habe ich den Namespace "nsa" weggelassen:

<A>
<ns1:AId>...</ns1:AId>
<ns1:AName>...</ns1:AName>
<A>
<ns1:AId>...</ns1:AId>
<ns1:AName>...</ns1:AName>
....
</A>
</A>

Jetzt sagt der Validator, dass er kein Element "A", sondern ein Element "A" erwartet....?
Kann mir irgendjemand BITTE erklären, wo der Fehler liegt und warum meine XML-Datei weder in der ersten, noch der 2. Version valide ist?

Vielen Dank schon mal für die Hilfe

tine2
 

Neue Beiträge

Zurück