Столкновение имен
Конфликт имен — это ситуация, когда два или более идентификаторов в данном пространстве имен или заданной области не могут быть однозначно разрешены , и такое однозначное разрешение является требованием базовой системы.
Пример: имена элементов XML
[ редактировать ]В XML имена элементов могут создаваться и изменяться в соответствии с типом информации, содержащейся в документе. Такой уровень гибкости может вызвать проблемы, если отдельные документы кодируют разные виды информации, но используют одни и те же идентификаторы для имен элементов.
Например, следующий образец документа определяет базовую семантику для документа «человек» и документа «книга». Оба они используют элемент «title», но смысл не один и тот же:
<root>
<person>
<fname>Nancy</fname>
<lname>Davolio</lname>
<title>Dr.</title>
<age>29</age>
</person>
<book>
<title>Harry Potter And The Cursed Child</title>
<isbn>ABCD1234567</isbn>
</book>
</root>
Чтобы приложение могло позволить пользователю правильно запрашивать и получать элемент «title», оно должно предоставлять способ однозначно указать, какой элемент заголовка запрашивается. Невыполнение этого требования может привести к конфликту имен элемента заголовка (а также любых других элементов, которые имеют это непреднамеренное сходство).
В предыдущем примере в структуре самого документа (которая задается корневым элементом) достаточно информации, чтобы обеспечить средства однозначного разрешения имен элементов.
Например, используя XPath :
//root/person/title ;; the formal title for a person //root/book/title ;; the title of a book
Домен коллизий
[ редактировать ]![]() | Эта статья , возможно, содержит оригинальные исследования . ( сентябрь 2007 г. ) |
Термин «домен коллизий» также может использоваться для обозначения системы, в которой одно имя или идентификатор открыто для множества интерпретаций на разных уровнях или при обработке. Понятие пространства имен получило широкое распространение в практике программирования для предотвращения нежелательных конфликтов. Обратите внимание, что его использование в сетевой области внешне похоже, но на самом деле совершенно другое.