1

I have the following XML sequence

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

I want to limit "a" to a list of values, like [ x, y, z] and "b" to another list like [xx, yy, zz]

Is it possible to do this using XSD, and if it is how?

If this is not possible, how do you recommend to change the XML format in order to make it ready for XSD validation? (I do have more than two property name/value pairs)

4

1 に答える 1

1

XSDは、ネストを使用して必要なこと(条件付き検証)を実行します。

したがって、XSDを使用して1つの属性の値を別の属性の値に条件付きにすることはできませんが(Fyodor Soikinが彼の回答で述べているように)、XSDを使用して属性の値を要素自体に条件付きにすることができます。

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

この場合、各プロパティは独自の要素であり、各「値」属性には独自の列挙があります。

これにより、各名前付きプロパティの数を制限できるという追加の利点が得られますが、欠点は、より多くの要素を管理する必要があることです。

状況の詳細によっては、この方法でXSDを使用するのが最善のオプションである場合もあれば、必要な名前/値の検証を実行できる別のシステムを実装する方がよい場合もあります。

于 2010-06-14T13:45:21.200 に答える