<table><tr><td>Manzanas</td><td>Plátanos</td></tr></table>
Este documento XML contiene información sobre una mesa (un mueble):
<table><name>Mesa de centro africana</name><width>80</width><length>120</length></table>
Si estos dos documentos XML se utilizan juntos, se producirá un conflicto de nombres porque ambos documentos contienen elementos <table> con contenido y definiciones diferentes.
El analizador XML no puede determinar cómo manejar dichos conflictos.
Los conflictos de nombres en XML se pueden evitar fácilmente utilizando prefijos de nombres.
Este XML contiene información sobre una tabla HTML y un mueble:
<h:table><h:tr><h:td>Manzanas</h:td><h:td>Plátanos</h:td></h:tr></h:table><f:table ><f:name>Mesa de centro africana</f:name><f:width>80</f:width><f:length>120</f:length></f:table>
En el ejemplo anterior, no hay conflicto porque los dos elementos <table> tienen nombres diferentes.
Cuando se utilizan prefijos en XML, se debe definir un llamado espacio de nombres para el prefijo.
El espacio de nombres se define en el atributo xmlns de la etiqueta de apertura del elemento.
La sintaxis para la declaración de espacio de nombres es la siguiente. xmlns: prefijo =" URI ".
<root><h:table xmlns:h="http://www.w3.org/TR/html4/"><h:tr><h:td>Manzanas</h:td><h:td> Plátanos</h:td></h:tr></h:table><f:table xmlns:f="//www.w3cschool.cn/furniture"><f:name>Café africano Tabla</f:name><f:width>80</f:width><f:length>120</f:length></f:table></root>
En el ejemplo anterior, el atributo xmlns de la etiqueta <table> define el espacio de nombres calificado para los prefijos h: y f:.
Cuando se define un espacio de nombres en la etiqueta de apertura de un elemento, todos los elementos secundarios con el mismo prefijo se asocian con el mismo espacio de nombres.
Los espacios de nombres se pueden declarar en el elemento en el que se utilizan o en el elemento raíz XML:
<root xmlns:h="http://www.w3.org/TR/html4/"xmlns:f="//www.w3cschool.cn/furniture"><h:table><h:tr><h :td>Manzanas</h:td><h:td>Plátanos</h:td></h:tr></h:table><f:table><f:name>Café africano Tabla</f:name><f:width>80</f:width><f:length>120</f:length></f:table></root>
Nota: El analizador no utiliza los URI de espacio de nombres para buscar información.
Su propósito es darle al espacio de nombres un nombre único. Sin embargo, muchas empresas suelen utilizar espacios de nombres como punteros a páginas web reales existentes que contienen información sobre el espacio de nombres.
Visite http://www.w3.org/TR/html4/.
Un identificador uniforme de recursos (URI) es una cadena de caracteres que identifica un recurso de Internet.
El URI más utilizado es un localizador uniforme de recursos (URL) que se utiliza para identificar una dirección de nombre de dominio de Internet. Otro URI utilizado con menos frecuencia es el nombre uniforme de recurso (URN).
En nuestro ejemplo solo usamos URL.
Definir un espacio de nombres predeterminado para un elemento nos ahorra el trabajo de usar un prefijo en todos los elementos secundarios. Su sintaxis es la siguiente:
xmlns="espacio de nombresURI"
Este XML lleva la información de la tabla HTML:
<table xmlns="http://www.w3.org/TR/html4/"><tr><td>Manzanas</td><td>Plátanos</td></tr></table>
Este XML contiene información sobre un mueble:
<table xmlns="//www.w3cschool.cn/furniture"><name>Mesa de centro africana</name><width>80</width><length>120</length></table>
XSLT es un lenguaje XML utilizado para transformar documentos XML a otros formatos, como HTML.
En el documento XSLT a continuación, puede ver que la mayoría de las etiquetas son etiquetas HTML.
Las etiquetas que no son HTML tienen el prefijo xsl y se identifican mediante este espacio de nombres:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform":<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><html><body><h2>Mi CD Colección</h2><table><tr><th align="left">Título</th><th align="left">Artista</th></tr><xsl:for-each select=" catálogo/cd"><tr><td><xsl:valor-de select="título"/></td><td><xsl:valor-de select="artist"/></td></tr></xsl:for-each></table></body></html></xsl:template></xsl:stylesheet>
Si desea obtener información sobre XSLT, busque tutoriales de XSLT en nuestra página de inicio.