Ограничить значения элемента, чтобы быть уникальным в рамках элементов под тем же XPath - PullRequest
2 голосов
/ 25 февраля 2010

Рассмотрим этот XML -

<Root>
  <Foo>
    <UniqueValue>A100</UniqueValue>
  </Foo>
  <Foo>
    <UniqueValue>A101</UniqueValue>
  </Foo>
  <Foo>
    <UniqueValue>B102</UniqueValue>
  </Foo>
  <Foo>
    <UniqueValue>A101</UniqueValue> <!-- This should be an error -->
  </Foo>
  <Foo>
    <UniqueValue> A101 </UniqueValue> <!-- This should be an error but not critical for now -->
  </Foo>
</Root>

Как ограничить элемент простого типа <UniqueValue> так, чтобы его значения были уникальными? Кроме того, я не хочу ограничиваться цифрами.

1 Ответ

2 голосов
/ 26 февраля 2010

Попробуйте наложить ограничение уникальности на "Root". Обратите внимание, что это должно быть в определении элемента, а не в определении типа:

<xsd:element name="Root" type="RootType">
  <xsd:unique name="uniqueValues">
    <xsd:selector xpath="Foo"/>
    <xsd:field xpath="UniqueValue"/>
  </xsd:unique>
</xsd:element>

В зависимости от используемого вами синтаксического анализатора вам может потребоваться включить дополнительные параметры для проверки (например, «полная проверка схемы», проверка ограничения идентификации и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...