2016-07-04 20 views
2

Ich muss die XML-Validierung, dieWie kann XSD 1.0 verwendet werden, um sicherzustellen, dass nur ein Element der Reihe nach untergeordnet ist?

<myshape> 
     <dimension/> 
     <mycircle> 
      <radius>2</radius> 
     </mycircle> 
</myshape> 

<myshape> 
     <dimension> 
      <height>5</height> 
     </dimension> 
     <mycircle/> 
</myshape> 

in einer der folgenden Form sein kann, das heißt, nur ein Element sollte den Wert enthalten und andere nicht sollte.

Ich habe versucht xs:choice, aber das Problem ist, würde ich beide Elemente in XML haben, aber nur eines sollte die untergeordneten Elemente enthalten. Wie kann ich das bestätigen?

Jede Hilfe wäre willkommen.

PS: Dies ist ein Problem in Legacy-Code ist, so kann ich nicht wechseln XSD1.1

Antwort

2

Sie nicht Ihre Einschränkung in XSD 1.0 (A-Content-Modell für ein Element basieren kann nicht auf einen Wert darstellen können ein anderes Element.) Wenn Sie die Assertionen von XSD 1.1 nicht verwenden können, müssen Sie Ihre Contraint Out-of-Band mit XSD erzwingen.