Разница между xsd: key и xsd: unique

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

Ответ 1

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

Все это связано с мощностью:

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

Ответ 5

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

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