Diferencia entre revisiones de «Usuario:Lmorillas/modulo lenguajes de marcas/xml/namespaces»
De WikiEducator
(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 18:46 9 ene 2013
Contenido
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.