marco: XSD Probleme

Beitrag lesen

Ich lerne mich gerade in XSD Schemadefinitionen für XML ein und mir haben sich zwei Fragen gestellt und hoffe, jemand kann mir weiterhelfen. smile

1. Bei der Definition von Kindelementen lese ich immer von folgenden Elementen:

<sequence>: Bestimmt, dass die Kindelemente in der angegebenen Reihenfolge auftreten müssen
<choice>: Man hat die Auswahl für ein Kindelement
<all>: Beliebige Reihenfolge für Kindelemente, allerdings darf jedes nur 0 oder 1 mal vorkommen.

Wie definiere ich aber Kindelemente, die in beliebiger Reihenfole und beliebig oft vorkommen? In XML muss das ja irgendwie möglich sein, denn in XHTML, welches von XML abgeleitet ist, kann ich auch beliebige Tags in beliebiger Anzahl zusammenwürfeln.

2. Auch hier geht es um Kindelemente. Bestimmte Elemente sind definiert, und sie erhalten jeweils andere Kindelemente. Ich skizziere das mal:

<A>
   <B>
      <D></D>
   </B>

<C>
      <E></E>
   </C>
</A>

In A sollen also B und C möglich sein. In B wiederrum D und in C lediglich E. Das ganze ist mittels mehrerer Complex-Types definiert. Allerdings ist Tag D, welcher nur in B verfügbar sein sollte, auch in C verfügbar! (Zumindest wird von meinem Validator kein Fehler geworfen). Kann man bestimmte Tags als Kindknoten irgendwie verbieten?