Разница между xsd: ключом и xsd: уникальным - PullRequest
11 голосов
/ 10 августа 2009

В чем разница между использованием xsd: unique и xsd: key?

Ответы [ 5 ]

11 голосов
/ 12 ноября 2011

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

xsd: key требует наличия поля для всех результатов селектора.Каждый элемент в селекторе должен иметь ключ.

Обратите внимание, что xsd: keyref не является обязательным для xsd: key, ключ xsd: может быть там без любого xsd: keyref.

5 голосов
/ 17 августа 2009

Я нашел свой ответ:

Все это имеет отношение к кардинальности:

xsd: ключ используется для кратности (0..N) и (1..1). xsd: unique используется для необязательной (0..1) кратности. Это также причина, почему выбранное поле в xsd: unique может быть nill.

Источник моего ответа: http://www.xml.com/lpt/a/987

1 голос
/ 09 октября 2011

См. http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/primer.html#quartelyReport.

В примере, описанном в ссылке, элементы "keyRefed" - это значения числовых атрибутов частей zip регионов и элементов "keyed"являются значениями атрибута number части деталей.

Unique объявляет, что значения должны быть уникальными, но также могут иметь значение null, ключ - что они должны быть уникальными.Оба типа могут быть ссылками с помощью элементов «keyRefed».

1 голос
/ 10 августа 2009

похоже на базу данных.

поле ключа похоже на primarykey .. unique и id

уникальное поле не является ключом, но оно должно быть уникальным ...

0 голосов
/ 10 августа 2009

xsd: ключ уникален и используется для набора элементов ключ в области видимости xsd: unique просто уникален в области видимости.

Надеюсь, это поможет ...

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