Question

J'ai la séquence XML suivant

<property name="a"  value="x" />
<property name="b"  value="xx" />

Je veux limite "a" à une liste de valeurs, comme [x, y, z] et "b" à une autre liste comme [xx, yy, zz]

Est-il possible de le faire en utilisant XSD, et si elle est comment?

Si cela est impossible, comment recommandez-vous de changer le format XML afin de le rendre prêt pour la validation XSD? (Je ne possède plus de deux paires nom de property / valeur)

Était-ce utile?

La solution

XSD accomplit ce que vous voulez (validation conditionnelle) à l'aide d'imbrication.

Ainsi, alors que vous ne pouvez pas utiliser XSD pour que les valeurs d'une condition d'attribut sur les valeurs d'une autre (comme Fiodor Soikin dit dans sa réponse ), vous pouvez utiliser XSD pour que les valeurs d'une condition d'attribut sur l'élément lui-même:

<propertyNameA value="x"/>
<propertyNameB value="xx"/>

Dans ce cas, chaque propriété est son propre élément et chaque attribut « valeur » a sa propre énumération.

Il vous donne l'avantage supplémentaire d'être en mesure de limiter le nombre de chaque propriété nommée, vous pouvez avoir, mais l'inconvénient est que vous devez gérer plusieurs éléments.

En fonction des spécificités de votre situation, en utilisant XSD cette façon pourrait être la meilleure option, ou il pourrait être préférable de mettre en œuvre un autre système qui peut faire la validation nom / valeur dont vous avez besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top