2010-03-02 8 views
10

Ich versuche, eine ungeordnete Liste von Variablen in var1 tritt zweimal und var2 tritt unendlich oft (Use Case in meinem Projekt ist anders). Das Element erlaubt mir nicht, maxOccurs zu verwenden.XSD erlaubt mir nicht unbegrenzt in allen Indikator haben

Gibt es irgendeine Arbeit für das, was ich versuche zu tun?

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="testcomment"> 
    <xs:complexType> 
     <xs:all> 
     <xs:element name="var1" type="xs:string" maxOccurs="2" /> 
     <xs:element name="var2" type="xs:integer" maxOccurs="unbounded" /> 
     </xs:all> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
+2

http://stackoverflow.com/a/3827606/637142 –

Antwort

1

Was Sie versuchen, klingt zu tun, wie der Typ eines Elements in der Liste könnte, ohne zu lesen grünes Licht mehrdeutig sein, in welchem ​​Fall es keine Arbeit um, weil den Klassen von Sprachen in XSD ist es beschreiben kann .

Können Sie einen relevanten Teil Ihrer XSD hochladen?


Update: Nein, das können Sie nicht mit XSD tun. Die Regeln, was Sie in ein Element eingeben können, sind zum Beispiel here aufgeführt. Diese Einschränkung hat einen Namen - die UPA- oder Unique Particle Attribution-Einschränkung. Es hat alles mit Ambiguität zu tun und die Microsoft-Website hat eine gute Erklärung dafür, warum existiert here.

Sie können entweder das Dokumentlayout ändern, um diese Art von Deklaration zu umgehen, oder eine aussagekräftigere Schemasprache wie RelaxNG verwenden.

+0

Wie in stackoverflow Code eingeben .. Ich bin ziemlich neu zu diesem – Vignesh

+0

Sie taten, vor ein paar Minuten. Poste es zurück, markiere es und klicke auf den kleinen Knopf im Editor, der wie ein Binärcode aussieht (10101) und dein XML einrastet, wodurch es korrekt angezeigt wird. – Brabster

+0

Ja .. Danke .. Ich habe den Code geschrieben .. :) – Vignesh

3

einfach, verwenden Sie einfach <xs:choice maxOccurs="unbounded"> statt <xs:all>. Dies wird den gewünschten Effekt ergeben.

Verwandte Themen