XML Schema: Attribute und Elemente nur unter bestimmten Bedingungen

ThreeD

Fleet Captain Special
Mitglied seit
04.11.2005
Beiträge
307
Renomée
6
Hallo zusammen,

vielleicht kann mir hier ja einer weiterhelfen:

ich versuche gerade, ein XML-Schema aufzusetzen. So weit funktioniert es ganz gut, allerdings hänge ich an zwei Punkten:

1. Ich habe ein Element, welches verschiedene Attribute haben kann. Z.B. "type", "call", "user" und "thread". Nun will ich aber, dass das Attribut "thread" nur dann angegeben werden darf, wenn das Attribut "call" nicht angegeben wurde und umgekehrt. Ist so etwas möglich?
Wenn ich das Schema unter VS 2005 schreibe, scheint es dort ähnliches zu geben. Wenn ich ein Element mit dem Attribut "ref" definiere, dürfen bestimmte weitere Attribute nicht mehr angegeben werden. So was will ich auch.

2. Ich habe ein Element "wait" und ein Element "random". Innerhalb von random darf das Element wait verwendet werden, innerhalb von wait darf das Element random verwendet werden. Verwende ich allerdings das Element random innerhalb von wait, soll dann in diesem random kein wait mehr zugelassen werden.

Hat jemand Vorschläge?

MfG,
ThreeD
 
Also bei XML Schema geht 1. mit Attributen soweit ich weiß nicht, bei Elementen kannst du mit <xs:choice> Auswahl zwischen Elementen bauen.

RelaxNG kann das glaub ich, ansonsten gibt es Schematron, mit dem du Regeln einbauen kannst.

2. weiß ich nicht so genau, hast du mal in der Schema-Doku geblättert?
 
Ich hab schon die Doku durchgeblättert :P Aber manchmal übersieht man ja was, was dann andere sehen bzw. wissen. Aber das mit den Attributen geht wohl definitv nicht, auch das zweite geht nicht. choice verwende ich natürlich schon, allerdings nützt mir das auch nichts, da das wait innerhalb von random ja nur unter der Bedingung verwendet werden darf, dass random nicht schon innerhalb eines waits vorkommt.

Aber deine beiden anderen Vorschläge schau ich mir mal an.

MfG,
ThreeD
 
Ok, nachdem ich das Ganze mit Schematron so wie ichs wollte hinbekommen habe, bin ich auf der Suche nach einem Freeware Xml-Editor, der Xml-Schema und Schematron Validierung unterstützt. Kann gut sein, dass es das aber gar net gibt.

MfG,
ThreeD
 
Zurück
Oben Unten