xmlns qué que prefijo nombres está espacio definido xml url xml-namespaces

que - ¿Por qué son URLs en espacios de nombres XML?



xmlns que es (4)

Cuando pregunta por qué un estándar es como es, hay dos interpretaciones posibles de su pregunta: (a) cuáles son los beneficios percibidos de la elección de diseño que se realizó, y (b) cuál fue la secuencia histórica de eventos que condujo a este diseño que se adopta sobre otros diseños.

Claramente, el uso de URI de tipo HTTP otorga exclusividad. Pero eso también podría haberse logrado de otras maneras, por ejemplo inventando un nuevo esquema de URI. Creo que si rastrea los argumentos que se hicieron en ese momento, encontrará que muchas de las personas que abogan por el uso de URI de estilo HTTP también estaban defendiendo que los URI de espacio de nombres deberían ser referenciables, tal vez a un esquema o a otro tipo del documento. De hecho, es política del W3C para sus propios espacios de nombres que siempre haya un documento que pueda recuperarse cuando escriba el URI de espacio de nombres en un navegador, y que le diga algo útil sobre el espacio de nombres.

Así que sospecho que el hecho de que usemos URI que parecen deferencia, pero no define ninguna semántica para lo que sucede cuando se desreferencia, es de hecho el resultado de un compromiso del comité entre dos o más campos opuestos. Pero tendrías que hacer una investigación histórica adecuada para confirmar eso.

Toma esta línea como solo un ejemplo:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> </configuration>

Algunas investigaciones breves me han enseñado que no es necesario alojar nada necesariamente en esa URL. Por lo tanto, si solo se trata de una referencia a un espacio de nombres contenido en un ensamblado local, ¿por qué usar URL en lugar de espacios de nombres regulares como los que normalmente usa .NET (System.Data, por ejemplo)?


El núcleo del problema es que los espacios de nombres deben ser URI. No hay una buena razón para tal cosa ya que todo lo que necesita es un identificador único para dar contexto a los elementos definidos.

Dado que tienen que ser URI, todas las posibilidades carecen de sentido, porque se necesita un esquema (por ejemplo, http) aunque un espacio de nombres no tenga nada que ver con tal cosa.

Entonces para responder a la pregunta de por qué: como todas las malas ideas, alguien pensó que era una buena idea en ese momento.


Es solo una convención. Los URI (que son lo que son, en realidad no son URL) son una forma conveniente y globalmente familiar de identificar recursos. Por otro lado, los identificadores estilo .NET son familiares y reconocibles para, bueno, los desarrolladores .NET - hay bastante más en XML que en .NET.


W3 explicación aquí

Al igual que los espacios de nombres en .NET, los espacios de nombres en los documentos XML están diseñados para ayudar a prevenir y resolver las colisiones de nombres, especialmente si los documentos XML provienen de diferentes organizaciones y / o dominios de conocimiento.

El formato del documento XML ha sido estilizado por las mismas personas responsables de HTML, por lo que puede encontrar similitudes sintácticas en los elementos del formato. Semánticamente, los espacios de nombres dotNET y XML tienen el mismo objetivo.