Как проверить атрибуты XML, используя перечисление XSD? - PullRequest
1 голос
/ 14 июня 2010

У меня есть следующая последовательность XML

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

Я хочу ограничить "a" списком значений, например [x, y, z] и "b", другим списком, например [xx,yy, zz]

Возможно ли это сделать с помощью XSD, и если да, то как?

Если это невозможно, как вы рекомендуете изменить формат XML, чтобы сделатьготов к проверке XSD?(У меня есть более двух property пар имя / значение)

1 Ответ

1 голос
/ 14 июня 2010

XSD выполняет то, что вы хотите (условная проверка), используя вложенность.

Таким образом, пока вы не можете использовать XSD, чтобы сделать значения одного атрибута условными относительно значений другого (как говорит Федор Сойкин)в его ответе ) вы можете использовать XSD, чтобы сделать значения атрибута условными для самого элемента:

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

В этом случае каждое свойство является своим собственным элементом, и каждый атрибут «значения»имеет собственное перечисление.

Это дает вам дополнительное преимущество, заключающееся в том, что вы можете ограничить количество каждого именованного свойства, которое вы можете иметь, но недостатком является то, что вам нужно управлять большим количеством элементов.

В зависимостив зависимости от конкретной ситуации, использование XSD таким способом может быть лучшим вариантом, или может быть лучше внедрить другую систему, которая может выполнить проверку имени / значения, которая вам нужна.

...