Конфликт именования - это обстоятельство, когда два или более идентификатора в данном пространстве имен или данной области не могут быть однозначно разрешены , и такое однозначное разрешение является требованием базовой системы.
Пример: имена элементов XML [ править ]
В XML можно создавать и изменять имена элементов, чтобы отразить тип информации, содержащейся в документе. Такой уровень гибкости может вызвать проблемы, если отдельные документы кодируют разные виды информации, но используют одни и те же идентификаторы для имен элементов.
Например, следующий образец документа определяет базовую семантику для документа «человек» и документа «книга». Оба они используют элемент "title", но значение не одно и то же:
<root> <person> <fname> Нэнси </fname> <lname> Даволио </lname> <title> Доктор </title> <age> 29 </age> </person> <book> <title> Мисс </title> <isbn> ABCD1234567 </isbn> </book> </root>
Чтобы приложение позволяло пользователю правильно запрашивать и извлекать элемент «title», оно должно предоставлять способ однозначно указать, какой элемент заголовка запрашивается. Несоблюдение этого правила может привести к конфликту имен в элементе заголовка (а также в любых других элементах, которые разделяют это непреднамеренное сходство).
В предыдущем примере в структуре самого документа (которая определяется «корневым» элементом) достаточно информации, чтобы обеспечить средства однозначного разрешения имен элементов.
Например, используя XPath :
// root / person / title ;; формальный титул для человека // корень / книга / название ;; название книги
Домен коллизии [ править ]
Эта статья, возможно, содержит оригинальные исследования . ( Сентябрь 2007 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Термин « домен коллизии» также может использоваться для обозначения системы, в которой одно имя или идентификатор открыты для множественной интерпретации различными уровнями или обработкой. Понятие пространства имен широко используется в качестве практики программирования для предотвращения нежелательных конфликтов. Обратите внимание, что его использование в области сетевых технологий внешне похоже, но в действительности сильно отличается.