Diferencia entre revisiones de «Usuario:Lmorillas/modulo lenguajes de marcas/xml/namespaces»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con '{{MiTitulo|Uso de namespaces}} == Uso de Namespaces == ===Motivación === * Objetivo: resolver conflictos cuando coinciden elementos con el mismo nombre, pero con diferente sig…')
 
 
(2 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 +
<noinclude>
 
{{MiTitulo|Uso de namespaces}}
 
{{MiTitulo|Uso de namespaces}}
 +
</noinclude>
  
 
== Uso de Namespaces ==
 
== Uso de Namespaces ==
 +
(Ejemplos de
 
===Motivación ===
 
===Motivación ===
 
* Objetivo: resolver conflictos cuando coinciden elementos con el mismo nombre, pero con diferente significado.
 
* Objetivo: resolver conflictos cuando coinciden elementos con el mismo nombre, pero con diferente significado.
 
* Ocurre con frecuencia cuando construimos nuevas estructuras desde definiciones existentes.
 
* Ocurre con frecuencia cuando construimos nuevas estructuras desde definiciones existentes.
* Recomendación del W3C. Se usa para identificar el origen de cada elemento.
+
* Recomendación del W3C. Se usa para identificar el origen de cada elemento: http://www.w3.org/TR/REC-xml-names/
 
+
'''Ejemplo 1'''
 +
<source lang="xml">
 +
<table>
 +
  <tr>
 +
    <td>Apples</td>
 +
    <td>Bananas</td>
 +
  </tr>
 +
</table>
 +
This XML carries information about a table (a piece of furniture):
 +
</source>
 +
'''Ejemplo 2'''
 +
<source lang="xml">
 +
<table>
 +
  <name>African Coffee Table</name>
 +
  <width>80</width>
 +
  <length>120</length>
 +
</table>
 +
</source>
 
===Declaración de namespaces ===
 
===Declaración de namespaces ===
 
* A cada namespace se le asigna un prefijo
 
* A cada namespace se le asigna un prefijo
 
* El prefijo hace referencia a una URI (Uniform Resource Identifier), que no suele tener equivalencia física (convención para crear espacios únicos)
 
* El prefijo hace referencia a una URI (Uniform Resource Identifier), que no suele tener equivalencia física (convención para crear espacios únicos)
 +
 +
<source lang="xml">
 +
<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.w3schools.com/furniture">
 +
  <f:name>African Coffee Table</f:name>
 +
  <f:width>80</f:width>
 +
  <f:length>120</f:length>
 +
</f:table>
 +
 +
</root>
 +
</source>
 +
 +
'''Declaración al inicio'''
 +
<source lang="xml">
 +
<root
 +
xmlns:h="http://www.w3.org/TR/html4/"
 +
xmlns:f="http://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>
 +
</source>
  
 
===Namespace por defecto ===
 
===Namespace por defecto ===
 
* Sin prefijo: los elementos sin especificación del namespace están en el namespace por defecto, excepto si el elemento que no tiene prefijo es hijo de un elemento que sí que lo tiene.
 
* Sin prefijo: los elementos sin especificación del namespace están en el namespace por defecto, excepto si el elemento que no tiene prefijo es hijo de un elemento que sí que lo tiene.
  
 +
<source lang="xml">
 +
<table xmlns="http://www.w3.org/TR/html4/">
 +
  <tr>
 +
    <td>Apples</td>
 +
    <td>Bananas</td>
 +
  </tr>
 +
</table>
 +
</source>
 
=== Namespace vacío ===
 
=== Namespace vacío ===
 
* Si un elemento no va a estar asociado a ningún namespace, se puede definir un namespace vacío.
 
* Si un elemento no va a estar asociado a ningún namespace, se puede definir un namespace vacío.

Última revisión de 07:46 10 ene 2013



Uso de Namespaces

(Ejemplos de

Motivación

  • Objetivo: resolver conflictos cuando coinciden elementos con el mismo nombre, pero con diferente significado.
  • Ocurre con frecuencia cuando construimos nuevas estructuras desde definiciones existentes.
  • Recomendación del W3C. Se usa para identificar el origen de cada elemento: http://www.w3.org/TR/REC-xml-names/

Ejemplo 1

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>
This XML carries information about a table (a piece of furniture):

Ejemplo 2

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

Declaración de namespaces

  • A cada namespace se le asigna un prefijo
  • El prefijo hace referencia a una URI (Uniform Resource Identifier), que no suele tener equivalencia física (convención para crear espacios únicos)
<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.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
 
</root>

Declaración al inicio

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

Namespace por defecto

  • Sin prefijo: los elementos sin especificación del namespace están en el namespace por defecto, excepto si el elemento que no tiene prefijo es hijo de un elemento que sí que lo tiene.
<table xmlns="http://www.w3.org/TR/html4/">
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

Namespace vacío

  • Si un elemento no va a estar asociado a ningún namespace, se puede definir un namespace vacío.

Namespaces y atributos

  • La declaración de namespaces no tienen efecto sobre los atributos
  • Si los atributos no están calificados, no se asocian a ningún namespace.