XSD列挙を使用してXML属性を検証する方法は?
-
27-09-2019 - |
質問
次のXMLシーケンスがあります ジェネラコディセタグプレ
"a"
を[x、y、z]などの値のリストに制限し、"b"
を[xx、yy、zz]などの別のリストに制限したい
XSDを使用してこれを行うことは可能ですか?それがどのように行われるか?
これが不可能な場合、XSD検証の準備をするためにXML形式をどのように変更することをお勧めしますか?(私は2つ以上のproperty
の名前/値のペアを持っています)
解決
XSDは、ネストを使用して必要なこと(条件付き検証)を実行します。
したがって、XSDを使用して、ある属性の値を別の属性の値に条件付きにすることはできません( Fyodor Soikinは彼の回答で述べています)、XSDを使用して、属性の値を要素自体に条件付きにすることができます: ジェネラコディセタグプレ
この場合、各プロパティは独自の要素であり、各「値」属性には独自の列挙があります。
名前付きプロパティごとに持つことができる数を制限できるという追加の利点がありますが、欠点は、より多くの要素を管理する必要があることです。
状況の詳細によっては、この方法でXSDを使用するのが最善のオプションである場合もあれば、必要な名前/値の検証を実行できる別のシステムを実装する方がよい場合もあります。
所属していません StackOverflow