Los últimos tutoriales de desarrollo web
 

XML Los espacios de nombres


Los espacios de nombres XML proporcionan un método para evitar conflictos de nombres de elementos.


conflictos de nombre

En XML, los nombres de elementos se definen por el desarrollador. Esto a menudo resulta en un conflicto cuando se trata de mezclar documentos XML a partir de diferentes aplicaciones XML.

Este XML lleva la información de tabla HTML:

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

Este XML lleva información sobre una mesa (a piece of furniture) :

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Si se añaden estos fragmentos XML juntos, no habría un conflicto de nombres. Tanto contener un <table> elemento, pero los elementos tienen un contenido y significado diferente.

A una aplicación XML usuario o no sabrán cómo manejar estas diferencias.


La solución del conflicto de nombres El uso de un prefijo

Los conflictos de nombres en XML se pueden evitar fácilmente utilizando un nombre de prefijo.

Este XML lleva información sobre una tabla HTML, y una pieza de mobiliario:

<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>

En el ejemplo anterior, no habrá ningún conflicto, porque los dos <table> elementos tienen diferentes nombres.


Los espacios de nombres XML - Los xmlns Attribute

Al usar prefijos en XML, un namespace se debe definir para el prefijo.

El espacio de nombres se puede definir por un xmlns atributo en la etiqueta inicial de un elemento.

La declaración de espacio de nombres tiene la siguiente sintaxis. xmlns: prefix =" 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="http://www.w3ii.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:

Los xmlns atribuyen en el primer <table> elemento da la h: Prefijo un espacio de nombres cualificado.

Los xmlns atribuyen en el segundo <table> elemento da la f: Prefijo un espacio de nombres cualificado.

Cuando un espacio de nombres se define para un elemento, todos los elementos secundarios con el mismo prefijo se asocian con el mismo espacio de nombres.

Los espacios de nombres también pueden ser declaradas en el elemento raíz XML:

<root
xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3ii.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>

Note: El URI de espacio no es utilizado por el analizador para buscar información.

El propósito de usar un URI es dar el espacio de nombres un nombre único.

Sin embargo, las empresas suelen utilizar el espacio de nombres como un puntero a una página web que contiene información de espacio de nombres.


Identificador uniforme de recursos (URI)

Un Uniform Resource Identifier (URI) es una cadena de caracteres que identifica un recurso de Internet.

El URI más común es el Uniform Resource Locator (URL) que identifica una dirección de dominio de Internet. Otra, no tan común tipo de URI es el Universal Resource Name (URN) .


Los espacios de nombres por defecto

La definición de un espacio de nombres predeterminado para un elemento nos ahorra el uso de prefijos en todos los elementos secundarios. Tiene la siguiente sintaxis:

xmlns="namespaceURI"

Este XML lleva la información de tabla HTML:

<table xmlns="http://www.w3.org/TR/html4/">
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

Este XML lleva información sobre un mueble:

<table xmlns="http://www.w3ii.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Los espacios de nombres en el uso real

XSLT es un lenguaje que puede ser utilizado para transformar documentos XML en otros formatos.

El documento XML a continuación, es un documento que se utiliza para transformar XML en HTML.

El espacio de nombres "http://www.w3.org/1999/XSL/Transform" identifica los elementos XSLT dentro de un 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 obtener más información sobre XSLT, por favor lea nuestra Tutorial XSLT .