Атрибуты служат для представления данных. С другой стороны, элементы также могут быть использованы для той же самой цели. По этой причине разумно задать вопрос: «Нужны ли нам вообще атрибуты?», потому что почти все, что вы можете сделать, используя атрибуты, можно также выполнить и при помощи элементов (или субэлементов). Однако следующие задачи могут быть сделаны только при использовании атрибутов:
♦ определение уникального значения;
♦ усиление ограничения ссылочной целостности.
Атрибут может быть задан в виде идентификатора типа атрибута. Значение идентификатора типа атрибута должно быть уникальным в пределах документа XML. Поэтому идентификатор атрибута всегда применяется для определения уникального значения.
Атрибут типа IDREF должен ссылаться на правильный идентификатор, объявленный в том же самом документе. Иными словами, значение атрибута IDREF должно появляться в документе в качестве значения соответствующего идентификатора атрибута.
Атрибут типа IDREFS задает список строк, разделенных пробелами, которые ссылаются на значения атрибута ID. Например, следующая строка показывает фрагмент XML с атрибутом IDREFS: department Members=«10102 18316»
В этом примере предполагается, что атрибут No элемента Employee является идентификатором атрибута, тогда как атрибут Members элемента Department является типом IDREFS.
Пары ID/IDREF и ID/IDREFS соответствуют отношению «первичный ключ/внешний ключ» в базе данных с небольшими отличиями. В документе XML значения различных идентификаторов типов атрибутов должны быть различными. Например, если у вас есть атрибуты CustomeriD и saiesOrderiD в документе XML, то эти значения должны быть различными.