Espacios de nombres de XML
- Página Anterior Atributos de XML
- Página Siguiente Visualización de XML
El espacio de nombres XML proporciona un método para evitar conflictos de nombres de elementos.
Conflicto de nombres
En XML, los nombres de los elementos los define el desarrollador. Cuando dos documentos diferentes usan el mismo nombre de elemento, ocurre un conflicto de nombres.
Este documento XML lleva información de una tabla:
<table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
Este documento XML contiene información sobre la mesa (un mueble):
<table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
Si estos dos documentos XML se usan juntos, debido a que ambos contienen elementos <table> con contenido y definiciones diferentes, ocurrirá un conflicto de nombres.
El usuario o la aplicación XML no puede determinar cómo manejar este tipo de conflictos.
Solución de conflictos de nombres con prefijos
El uso de prefijos permite evitar fácilmente conflictos de nombres en XML.
Este XML contiene información sobre las tablas HTML y un mueble:
<h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</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>
Ahora, no hay conflicto de nombres, ya que ambos documentos usan nombres diferentes para nombrar sus elementos <table> (<h:table>
y <f:table>
)。
Al usar prefijos, creamos dos tipos diferentes de elementos <table>.
Espacio de nombres XML - atributo xmlns
Al usar prefijos en XML, debe definirse el prefijo.Espacio de nombres(Espacios de nombres)。
El espacio de nombres se puede definir a través de xmlns
Para definir.
La declaración del espacio de nombres utiliza esta sintaxis: xmlns:prefijo="URI"。
<root>; <h:table xmlns:h="http://www.w3.org/TR/html4/">; <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table xmlns:f="https://www.codew3c.com/furniture">; <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root>
En el ejemplo anterior:;
El primer elemento <table>; xmlns
El atributo es h:
El prefijo proporciona un espacio de nombres limitado.
El segundo elemento <table>; xmlns
El atributo es f:
El prefijo proporciona un espacio de nombres limitado.
Si se define un espacio de nombres para un elemento, todos los subelementos con el mismo prefijo están asociados con el mismo espacio de nombres.
El espacio de nombres también se puede declarar en el elemento raíz de XML:
<root xmlns:h="http://www.w3.org/TR/html4/"> xmlns:f="https://www.codew3c.com/furniture"> <h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</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> </root>
Atención:El analizador no utiliza el URI del espacio de nombres para buscar información.
El propósito del uso de URI es solo proporcionar un nombre único para el espacio de nombres.
Sin embargo, muchas empresas a menudo lo utilizan como puntero para apuntar a páginas web existentes, que contienen información sobre el espacio de nombres.
Identificador de recursos uniforme (URI)
Identificador de recursos uniforme (Identificador de recursos uniforme,URI) que es una cadena que identifica recursos de Internet.
El URI más común esLocalizador de recursos uniforme (Localizador de recursos uniforme,URL),que identifica las direcciones de dominio de Internet.
Otra variedad menos común de URI esNombre de recurso uniforme (Nombre de recurso uniforme,URN)。
Espacio de nombres predeterminado (Default Namespaces)
Definir un espacio de nombres predeterminado para los elementos nos libera de usar prefijos en todos los subelementos.
Por favor, utilice la siguiente sintaxis:
xmlns="namespaceURI"
Este documento XML contiene información sobre una tabla HTML:
<table xmlns="http://www.w3.org/TR/html4/"> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
Este XML contiene información sobre un mueble:
<table xmlns="https://www.codew3c.com/furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
Aplicación real del espacio de nombres
XSLT es un lenguaje que se puede utilizar para convertir documentos XML a otros formatos.
El siguiente documento XML se utiliza para convertir XML en HTML.
Si observa detenidamente el siguiente documento XSL, verá que la mayoría de las etiquetas son etiquetas HTML.
Las etiquetas no HTML tienen prefijo xsl, indicado por el espacio de nombres: "http://www.w3.org/1999/XSL/Transform":
El espacio de nombres "http://www.w3.org/1999/XSL/Transform" identifica los elementos XSLT en el documento HTML:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <table border="1"> <tr> <th style="text-align:left">Title</th> <th style="text-align:left">Artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Si desea aprender más sobre XSLT, lea nuestro Tutorial de XSLT.
- Página Anterior Atributos de XML
- Página Siguiente Visualización de XML