Utilizamos espacios de nombres porque la gente xeep queriendo usar las mismas palabras para significar cosas diferentes en su propio Idaho privado. Por lo general, puedes determinar desde el contexto lo que quiere decir una persona. En una base de datos de personal, el XML es registros de personal. En una base de datos de registro de vehículos, el XML es registros de registro de vehículos.
Ambos mantienen una etiqueta llamada "ubicación", pero la etiqueta significa cosas diferentes para cada uno y contiene campos diferentes.
Ahora, eso es genial: ¿pero qué sucede si necesita o quiere almacenar XML de ambos en la misma base de datos? O, lo que es más interesante, ¿qué pasa si ambas bases de datos desean almacenar fragmentos XML de alguna otra base de datos común (por ejemplo, una base de datos de Cuentas).
espacios de nombres XML asocian con cada etiqueta XML un URI, de modo que el nombre de la etiqueta tiene una url delante, eso es parte del nombre de la etiqueta (por supuesto, los documentos XML actuales usan una taquigrafía). Al elegir cuidadosamente el URI, es fácil estar seguro de que los nombres de las etiquetas no colisionarán, es como si las dos etiquetas de ubicación fueran nombradas de manera completamente diferente, por lo que no hay confusión. Como beneficio adicional, las dos etiquetas de ubicación completamente diferentes pueden incluir elementos de la base de datos de cuentas y declarar explícitamente que están hablando de lo mismo.
Lo que hace que todo esto sea útil es XPATH.
Con lo anterior, puede comenzar a escribir expresiones XPATH que digan cosas como: encuentre las secciones accounts:account overdue
en cualquier parte de este xml. O bien: encuéntreme cualquier elemento accounts:warning message
en cualquier parte de este fragmento particular de XML, donde el mensaje de advertencia es un nodo secundario (sin importar la profundidad) de un nodo personnel:payment
o un nodo vehicle:status
.
Esa expresión XPATH puede usarse en algún lugar de un documento XSLT, cuyo trabajo es convertir el XML en XHTML o XPDF, para su visualización.
¿Cuál es la recompensa? ¿Por que hacerlo? Como puede buscar en el archivo de registro XML, extraiga todas las cuentas vencidas donde aparezcan, sin confundirlas con etiquetas de "mensaje" producidas por otros sistemas, conviértalas a xhtml y visualícelas en negrita roja a través de una etiqueta css : todo sin escribir un trozo de código de procedimiento.
Me sorprende que [esta falacia] (http://lists.xml.org/archives/xml-dev/200306/msg00010.html) todavía tenga influencia, 10-15 años después. También vea [esto] (http://lists.xml.org/archives/xml-dev/200305/msg00836.html) – arayq2
¿Está diciendo que es falso que los espacios de nombres son una buena solución, o está diciendo que es falso que eran destinados a ser utilizados para el conflicto, y en la práctica se utilizan de esa manera (con los inconvenientes)? Solo afirmo lo último. –
Estoy diciendo que los espacios de nombres XML no son una solución en absoluto. el dispositivo "resuelve" solo algunos casos de uso, pero de ningún modo todos, y además a costa de evitar una solución general, que de hecho existe, y de hecho existía incluso antes de que esta estupidez viera la luz del día. Y, por cierto, originalmente tenían "la intención" de marcar la procedencia, pero cuando se señaló que este ya era un problema resuelto, los proponentes comenzaron a mover los postes y se mantuvieron hasta que los críticos [encontraron cosas mejores que hacer con su tiempo] (http://lists.xml.org/archives/xml-dev/200305/msg00344.html). – arayq2