Fenrrid: Attributabhängigkeiten in XSD

Hallo :-)

Ich habe ein Problem beim Erstellen einer XSD-Datei zu meiner XML-Datei.

...und zwar habe ich eine XML-Datei mit folgender Form:

<element type="a">
...
</element>
<element type="b">
...
</element>

Das Problem ist nur, dass ein Element des Typs a z.b. andere Unterelemente beinhalten darf als ein Element des Typs b. Aber wie kann ich das in einer XSD handhaben? Ich finde keinen Befehl der einer if-Abfrage gleich käme bei der dann die Regeln Abhängig von einem Attribut gemacht werden.
Ich hoffe hier kann mir jemand weiterhelfen.

Danke schonmal

  1. @@Fenrrid:

    nuqneH

    Das Problem ist nur, dass ein Element des Typs a z.b. andere Unterelemente beinhalten darf als ein Element des Typs b.

    Das hört sich nach einem Designfehler an. Wenn 'element[@type="a"]' und 'element[@type="b"]' derart unterschiedlich sind, dann sind wohl eher verschiedene Elementtypen 'element_a' und 'element_b' angebracht.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Ist es denn überhaupt nicht möglich es auf diese Weise zu machen? Da sich meist nur die Reihenfolge oder 1 Unterelement unterscheiden würde es mich trotzdem interessieren ob es irgendwie möglich ist.

      1. Ich muss Gunnar B. Recht geben, Es spricht fuer einen Designfehler deiner XML Struktur. Wenn du auf gleichen Elementnamen bestehst, koenntest du hoechsten ein zweites Schema anlegen, und einen anderen targetNamespace definieren, so dass du zwei elemente mit gleichen namen aber unterschiedlichen namespace hast. Mir ist nichts dergleichen bekannt, deine Problem mit xsd zu loesen, eventuell mit attributegruppen, aber wie gesagt ...