Как проверить атрибуты XML с помощью перечисления XSD?

StackOverflow https://stackoverflow.com/questions/3037505

  •  27-09-2019
  •  | 
  •  

Вопрос

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

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

Я хочу ограничить "a" в список значений, таких как [x, y, z] и "b" в другой список, как [XX, YY, ZZ

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

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

Это было полезно?

Решение

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top