Hallo,
Das root Element im original schema liegt so vor:
<element name="root">
[...]
</element>
Das Schema möchte bzw. kann ich nicht ändern. Wie kann ich nun in dem anderen Schema hinterlegen, das die xml Datei neben den elementen to:aa to:bb to:cc to:dd noch ein weiteres Element zulässig ist zb tx:ee
Nein, du hast keine Chance.
-
die Verwendung von Namensräumen sagt, dass in der Schema noch was anderes vorhanden ist (andere Schemas die inkludiert werden, sonst wäre es nicht möglich ein zu:xx zu referenzieren, denn ein <xs:element name="zu:xx"> ist nicht zulässig)das wiederum bedeutet einen tragetNamespace*
-
du könntest theoretisch zwar xs:redefine verwenden, aber nicht um Elemente zu redefinieren.
(link:http://www.edition-w3c.de/TR/2001/REC-xmlschema-1-20010502/#modify-schema])
* Und wenn der targetNamespace nicht derselbe ist wie in "deinem" schema geht es gar nicht.
Deshalb hast du keine Möglichkeit das root-Element nicht neu definieren.
. Ich könnte das Element tx:ee im zweiten Schema als
<element name="ee" substitutionGroup="to:ee">
.
.
</element>definieren (funktioniert auch soweit). Allerdings hat dies den Nachteil, dass an dem Elemten to:aa einige Bedingungen hängen, die mich einschränken.
Was hat die Definition von aa mit der Definition von 'wasauchimmer' zu tun (es sei denn, durch unique oder key/keyref)?
Grüße
Thomas