Схема XSD: Элемент Уникальный внутри узла, не повторяющиеся значения - PullRequest
0 голосов
/ 29 сентября 2011

Я хотел бы проверить файл XML со схемой, для которой значения в том же узле не могут быть повторены.Здесь важен порядок подписей.Мой недопустимый XML-код:

   <person>
      <name>Peter Petrelli</name>
      <subject1>Mathematics</subject1>
      <note1>8.5</note1>
      <subject2>Natural Science</subject2>
      <note2>4.5</note2>
      <subject3>Mathematics</subject3>
      <note3>7</note3>
   </person>
</school>

Невозможно, чтобы математика была более одного раза.

Как я могу проверить это с помощью схемы XSD?

Большое спасибо

1 Ответ

0 голосов
/ 29 сентября 2011

При более разумном дизайне проблем не будет:

<person>
<name>Peter Petrelli</name>
<subject>
    <name>Mathematics</name>
    <note>2</note>
</subject>
<subject>
    <name>Natural Sciences</name>
    <note>2.5</note>
</subject>
<subject>
    <name>Mathematics</name>
    <note>4</note>
</subject>

, тогда определение внутри элемента может быть:

    <unique name="su">
        <selector xpath="subject" />
        <field xpath="name"/>
    </unique>
...