XSD ne m'autorise pas à illimité à l'intérieur de tous les indicateurs
Je suis en train de faire liste non-ordonnée de variables var1 se produit deux fois et var2 se produit un nombre infini de fois (cas d'Utilisation dans mon projet est différent). L'élément ne me permet pas d'utiliser maxOccurs.
Est là tout le travail autour de ce que je suis en train de faire?
<?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>
Vous devez vous connecter pour publier un commentaire.
Ce que vous essayez de faire des sons comme le type d'un élément dans votre liste peut être ambiguë, sans la lecture-à l'avance, auquel cas il n'y a pas de travail dans XSD parce que des classes de langues, il peut décrire.
Vous pouvez poster jusqu'a ce que la partie pertinente de votre XSD?
Mise à jour: Non, vous ne pouvez pas faire cela avec XSD. Les règles de ce que vous pouvez mettre dans un
<xs:all>
élément sont répertoriés par exemple ici. Cette contrainte a un nom - l'UPA, ou d'Attribution de Particule Unique contrainte. Il y a tout à faire avec l'ambiguïté et le site web de Microsoft a une bonne explication de pourquoi existe ici.Vous pouvez soit modifier votre mise en page du document à supprimer la nécessité de ce type de déclaration, ou de chercher une plus expressif langage de schéma comme RelaxNG.
Je suis tombé sur le même problème et il y a une solution! Découvrez cette réponse:
https://stackoverflow.com/a/3827606/637142
facile, il suffit d'utiliser
<xs:choice maxOccurs="unbounded">
au lieu de<xs:all>
. Cela va donner l'effet que vous recherchez.