stringtranslate.com

Конфликт имен

Конфликт имен — это ситуация, когда два или более идентификаторов в заданном пространстве имен или заданной области действия не могут быть разрешены однозначно , и такое однозначное разрешение является требованием базовой системы.

Пример: имена элементов XML

В XML имена элементов могут быть созданы и изменены для отражения типа информации, содержащейся в документе. Этот уровень гибкости может вызвать проблемы, если отдельные документы кодируют разные виды информации, но используют одни и те же идентификаторы для имен элементов.

Например, следующий образец документа определяет базовую семантику для документа "person" и документа "book". Оба они используют элемент "title", но значение не одинаково:

<root> <person> <fname> Нэнси </fname> <lname> Даволио </lname> <title> Доктор </title> <age> 29 </age> </person> <book> <title> Гарри Поттер и проклятое дитя </title> <isbn> ABCD1234567 </isbn> </book> </root>                

Чтобы приложение позволяло пользователю правильно запрашивать и извлекать элемент "title", оно должно предоставлять способ однозначно указать, какой элемент title запрашивается. Невыполнение этого требования приведет к конфликту имен элемента title (а также любых других элементов, которые разделяют это непреднамеренное сходство).

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

Например, используя XPath :

 //root/person/title ;; официальное звание человека //root/book/title ;; название книги

Домен коллизии

Термин «домен коллизий» может также использоваться для обозначения системы, в которой одно имя или идентификатор открыты для множественных интерпретаций различными уровнями или обработкой. Понятие пространства имен широко применяется в практике программирования программного обеспечения для предотвращения нежелательных коллизий. Обратите внимание, что его использование в области сетевых технологий на первый взгляд похоже, но на самом деле совершенно иное.

Смотрите также

Ссылки