Una colisión de nombres es una circunstancia en la que dos o más identificadores en un espacio de nombres dado o en un ámbito determinado no pueden resolverse sin ambigüedades , y dicha resolución sin ambigüedades es un requisito del sistema subyacente.
Ejemplo: nombres de elementos XML
En XML , los nombres de los elementos pueden originarse y cambiarse para reflejar el tipo de información contenida en el documento. Este nivel de flexibilidad puede causar problemas si los documentos separados codifican diferentes tipos de información, pero usan los mismos identificadores para los nombres de los elementos.
Por ejemplo, el siguiente documento de muestra define la semántica básica de un documento de "persona" y un documento de "libro". Ambos usan un elemento "título", pero el significado no es el mismo:
Nancy Davolio Dr. 29 Harry Potter y el legado maldito ABCD1234567
Para que una aplicación permita a un usuario consultar y recuperar correctamente el elemento "título", debe proporcionar una forma de especificar sin ambigüedades qué elemento de título se solicita. No hacerlo daría lugar a una colisión de nombres en el elemento del título (así como en cualquier otro elemento que compartiera esta similitud involuntaria).
En el ejemplo anterior, hay suficiente información en la estructura del documento en sí (que se especifica mediante el elemento "raíz") para proporcionar un medio de resolver sin ambigüedades los nombres de los elementos.
Por ejemplo, usando XPath :
// raíz / persona / título ;; el título formal de una persona // raíz / libro / título ;; el título de un libro
Dominio de colisión
El término dominio de colisión también puede usarse para referirse a un sistema en el que un solo nombre o identificador está abierto a múltiples interpretaciones por diferentes capas o procesamiento. La noción de un espacio de nombres ha sido ampliamente adoptada como una práctica de programación de software para evitar choques no deseados. Tenga en cuenta que su uso en el campo de las redes es superficialmente similar, pero bastante diferente en la realidad.