Tutorial XML

INICIO XML Introducción XML XML Cómo utilizar Árbol XML Sintaxis XML Elementos XML Atributos XML Espacios de nombres XML Pantalla XML Solicitud Http XML Analizador XML DOM XML XPath XML XML XSLT XQuery XML Enlace X XML Validador XML DTD XML Esquema XML Servidor XML Ejemplos XML Cuestionario XML Certificado XML

XML-AJAX

AJAX Introducción AJAX XMLHttp Solicitud AJAX Respuesta AJAX Archivo XML AJAX AJAXPHP Ajax ASP Base de datos AJAX Aplicaciones AJAX Ejemplos de AJAX

DOM XML

DOM Introducción Nodos DOM Acceso DOM Información del nodo DOM Lista de nodos DOM Atravesando DOM Navegación DOM DOM obtener valores Nodos de cambio de DOM Eliminar nodos DOM Nodos de reemplazo de DOM DOM Crear nodos Agregar nodos DOM Nodos de clonación de DOM Ejemplos de DOM

Tutorial XPath

Introducción a XPath Nodos XPath Sintaxis XPath Ejes XPath Operadores XPath Ejemplos de XPath

Tutorial XSLT

XSLT Introducción Idiomas XSL Transformación XSLT XSLT <plantilla> XSLT <valor-de> XSLT <para-cada> XSLT <ordenar> XSLT <si> XSLT <elegir> Aplicar XSLT XSLT en el cliente XSLT en el servidor XSLT Editar XML Ejemplos de XSLT

Tutorial de XQuery

Introducción a XQuery Ejemplo de XQuery XQuery FLWOR XQuery HTML Términos de XQuery Sintaxis XQuery XQuery Agregar Seleccionar XQuery Funciones XQuery

DTD XML

Introducción a DTD Bloques de construcción DTD Elementos DTD Atributos DTD Elementos DTD vs Attr Entidades DTD Ejemplos de DTD

Esquema XSD

XSD Introducción XSD Cómo XSD <esquema> Elementos XSD Atributos XSD Restricciones XSD

Complejo XSD

Elementos XSD XSD vacío Solo elementos XSD Solo texto XSD XSD mixto Indicadores XSD XSD <cualquiera> XSD <cualquieratributo> Sustitución XSD Ejemplo XSD

Datos XSD

Cadena XSD Fecha XSD XSD Numérico Miscelánea XSD Referencia XSD

Servicios web

Servicios XML XML WSDL JABÓN XML XML RDF RSS XML

Referencias

Tipos de nodos DOM Nodo DOM Lista de nodos DOM DOM NamedNodeMap Documento DOM Elemento DOM Atributo DOM Texto DOM DOM CDATA Comentario DOM DOM XMLHttpSolicitud Analizador DOM Elementos XSLT Funciones XSLT/XPath

Espacios de nombres XML


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


Conflictos de nombres

En XML, los nombres de los elementos los define el desarrollador. Esto a menudo genera un conflicto al intentar mezclar documentos XML de diferentes aplicaciones XML.

Este XML lleva información de la tabla HTML:

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

Este XML lleva información sobre una mesa (un mueble):

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

Si estos fragmentos XML se agregaran juntos, habría un conflicto de nombres. Ambos contienen un elemento <table>, pero los elementos tienen diferente contenido y significado.

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


Resolviendo el conflicto de nombres usando un prefijo

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

Este XML contiene información sobre una tabla 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>

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



Espacios de nombres XML: el atributo xmlns

Al usar prefijos en XML, se debe definir un espacio de nombres para el prefijo.

El espacio de nombres se puede definir mediante un atributo xmlns en la etiqueta de inicio de un elemento.

La declaración del espacio de nombres tiene la siguiente 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.w3schools.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 atributo xmlns en el primer elemento <table> le da al prefijo h: un espacio de nombres calificado.

El atributo xmlns en el segundo elemento <table> le da al prefijo f: un espacio de nombres calificado.

Cuando se define un espacio de nombres 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 se pueden declarar en el elemento raíz XML:

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

Nota: el analizador no utiliza el URI del espacio de nombres para buscar información.

El propósito de usar un URI es darle al espacio de nombres un nombre único.

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


Identificador uniforme de recursos (URI)

Un identificador uniforme de recursos (URI) es una cadena de caracteres que identifica un recurso de Internet.

El URI más común es el Localizador uniforme de recursos (URL) que identifica una dirección de dominio de Internet. Otro tipo de URI no tan común es el nombre de recurso uniforme (URN).


Espacios de nombres predeterminados

Definir un espacio de nombres predeterminado para un elemento nos evita usar prefijos en todos los elementos secundarios. Tiene la siguiente sintaxis:

xmlns="namespaceURI"

Este XML lleva información de la 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.w3schools.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Espacios de nombres en uso real

XSLT es un lenguaje que se puede utilizar para transformar documentos XML en otros formatos.

El documento XML a continuación, es un documento utilizado para transformar XML en HTML.

El espacio de nombres "http://www.w3.org/1999/XSL/Transform" identifica 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, lea nuestro Tutorial XSLT .