Espaciu de nomes
N'informática, un espaciu de nomes ye un conxuntu de símbolos que s'usen pa organizar oxetos de distintes clases, de mou que pueda facese referencia a esos oxetos pol nome. En Java, un espaciu de nomes asegura que tolos identificadores que contién han de tener nomes únicos pa que puedan identificase con facilidá. Col envís d'alministrar l'espaciu de nomes, Java ufre'l mecanismu de crear paquetes Java. Hai exemplos destacaos como:
- los sistemes de ficheros son espacios de nomes qu'asinen nomes a los ficheros;[1]
- dellos llinguaxes de programación organicen les variables y subrutines n'espacios de nomes;[2][3][4]
- les redes d'ordenadores y los sistemes distribuíos asinen nomes a recursos como ordenadores, imprentadores, sitios web, ficheros (remotos), etc.
Parte de | identificador únicu |
---|---|
Etiqueta de Stack Exchange | Stack Exchange |
Los espacios de nomes de vezu tán estructuraos como xerarquíes pa permitir la reutilización de nomes en diferentes contestos. Como analoxía, pué considerase un sistema de nomes de persones onde cada persona tien un nome propiu, al igual qu'unos apellíos compartíos colos familiares. Si los nomes propios de los miembros de la familia son únicos sólo en cada familia, entós cada persona tendrá una identificación única pola combinación del nome propiu colos apellíos; sólo hai una Xana Naide, anque pué haber Xanes abondo. Nel espaciu de nomes de la familia Naide, sólo «Xana» ye abondo pa designar a esta persona ensin ambigüedá , mentanto que nel espaciu de nomes «global» de toles persones, precísase usar el nome completu.
De mou asemeyáu, los sistemes de ficheros xerárquicos organicen los ficheros en direutorios. Cada direutoriu ye un espaciu de nomes separáu, de manera que dambos direutorios «cartes» y «factures» pueden contener un ficheru «pa_xana».
En programación informática, los espacios de nomes empléguense de vezu col envís d'agrupar símbolos ya identificadores al rodiu d'una funcionalidá determinada y pa torgar choques de nomes ente múltiples identificadores que compartan el mesmu nome.
En redes, el Sistema de nomes de dominiu organiza los sitios web (y otros recursos) n'espacios de nomes xerárquicos.
Conflictos de nome
editarLos nomes de los elementos tán definíos pol desendolcador. Dacuando, esto produz un conflictu al tentar entemecer documentos XML dende diferentes aplicaciones XML.
Esti XML lleva informacion d'una tabla HTML («table», n'inglés):
<table>
<tr>
<td>Mazanes</td>
<td>Naranxes</td>
</tr>
</table>
Esti XML lleva información d'una mesa (que n'inglés tamién ye «table»):
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
Si estos fragmentos XML s'entemecieran, habría un conflictu de nomes. Dambos contienen un elementu <table>, pero los elementos tienen distintu conteníu y significáu.
Un analizador XML nun sabrá como xestionar estes diferencies.
Solución con un prefixu
editarLos conflictos de nomes en XML pueden evitase fácilmente usando un prefixu de nome.
El siguiente XML estrema ente la información sobro la tabla HTML ya'l mueble usando los prefixos «h» y «f» nel xml/xml_namespaces.asp del principiu
<h:table>
<h:tr>
<h:td>Mazanes</h:td>
<h:td>Naranxes</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
Referencies
editar- ↑ Adya, Atul; Bolosky, William; Castro, Miguel; Cermak, Gerald; Chaiken, Ronnie; Douceur, John; Howell, Jon; Lorch, Jacob et ál.. «FARSITE: Federated, Available, and Reliable Storage for an Incompletely Trusted Environment». Proc. USENIX Symp. on Operating Systems Design and Implementation. Archivado del original el 28-07-2010. «The primary construct established by a file system is a hierarchical directory namespace, which is the logical repository for files.»
- ↑ «C# FAQ: What is a namespace». http://en.csharp-online.net/:+ C# Online Net. Archiváu dende l'orixinal, el 2013-10-20. Consultáu'l 23-02-2010. «A namespace is nothing but a group of assemblies, classes, or types. A namespace acts as a container—like a disk folder—for classes organized into groups usually based on functionality. C# namespace syntax allows namespaces to be nested.»
- ↑ «An overview of namespaces in PHP». PHP Manual. Consultáu'l 06-09-2019. «What are namespaces? In the broadest definition namespaces are a way of encapsulating items. This can be seen as an abstract concept in many places. For example, in any operating system direutories serve to group related files, and act as a namespace for the files within them.»
- ↑ «Creating and Using Packages». Java Documentation. Oracle. «A package is a grouping of related types providing access protection and name space management. Note that types refers to classes, interfaces, enumerations, and annotation types. Enumerations and annotation types are special kinds of classes and interfaces, respectively, so types are often referred to in this lesson simply as classes and interfaces.»