Проверка XSD для значений перечисления - PullRequest
0 голосов
/ 08 апреля 2011

можно ли ограничить вхождение значения элемента указанным числом раз? например:

<sample>
   <values>
       <value>SAMPLE1</value>
       <value>SAMPLE1</value>
   </values>
</sample>

Возможные значения: «SAMPLE1», «SAMPLE2», «SAMPLE3». может встречаться максимум три раза, но каждое значение должно быть уникальным.

В примере «SAMPLE1» встречается дважды, что неверно. Можно ли ограничить это в XSD?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2011

Вы можете ограничить использование значения «указанное количество раз», при условии, что число равно 0 или 1: используйте xs: уникальное, как описано Олегом.Если вам нужно другое число, вам понадобится xs: assert, входящий в XSD 1.1.

0 голосов
/ 08 апреля 2011

Вы можете сделать <value> уникальным в определенной области (например, в <values>). Вот пример:

<xs:element name="sample" type="SampleType">
    <xs:unique name="valueKey">
        <xs:selector xpath="*/values"/>
        <xs:field xpath="value"/>
    </xs:unique>
</xs:element>

Используя элемент selector, вы определяете область действия, а field определяете, какой элемент должен быть уникальным в области действия.

Для получения дополнительной информации см. документация .

...