Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Пример: имена элементов 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 ;; формальный титул для человека // корень / книга / название ;; название книги

Домен коллизии [ править ]

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

См. Также [ править ]

Ссылки [ править ]