UnidadDidactica5Namespaces-curso2011-12.pdf

10
JJ Taboada León IES San Sebastián, Departamento de Informática LENGUAJE DE MARCAS Y SGI Curso 2011 / 2012 Unidad 5: Namespaces …… <país nombre=“España”> <capital>Madrid</capital> </país> <inversión> <capital>2000</capital> </inversión> …..

Transcript of UnidadDidactica5Namespaces-curso2011-12.pdf

Page 1: UnidadDidactica5Namespaces-curso2011-12.pdf

JJ Taboada León IES San Sebastián, Departamento de Informática

LENGUAJE DE MARCAS Y SGI Curso 2011 / 2012

Unidad 5:

Namespaces

……

<país nombre=“España”>

<capital>Madrid</capital>

</país>

<inversión>

<capital>2000€</capital>

</inversión>

…..

Page 2: UnidadDidactica5Namespaces-curso2011-12.pdf

Guíon del tema

Contenidos

¿Qué es Namespace?

¿Cómo resolver el

conflicto de nombres?

Espacio de nombres con

XSLT

Actividades

Añadir namespaces a un

documento

Buscar en internet

documentos que utilicen

namespaces

Page 3: UnidadDidactica5Namespaces-curso2011-12.pdf

¿Qué es el espacio de nombres?

Es el medio por el que podemos diferenciar elementos de

distintos tipos de documentos XML cuando los combinamos

en otros documentos.(son como sacos de nombres)

Los espacios de nombres XML proporcionan un método para

evitar conflictos de nombre de elemento.

Ambos contienen un elemento <capital>, pero los

elementos tienen diferente contenido y significado.

Un analizador XML no sabrá cómo manejar estas diferencias.

<país nombre=“España”>

<capital>Madrid</capital>

</país>

<inversión>

<capital>2000€</capital>

</inversión>

Page 4: UnidadDidactica5Namespaces-curso2011-12.pdf

¿Cómo resolver el Conflicto de

nombre ?

Utilizando un prefijo de nombre

Problema:

¿Quién controla el uso de prefijos?

¿Y si dos empresas eligen los mismos prefijos?

……

<h:país nombre=“España”>

<h:capital>Madrid</h:capital>

</h:país>

<f:inversión>

<f:capital>2000€</f:capital>

</f:inversión>

…..

Page 5: UnidadDidactica5Namespaces-curso2011-12.pdf

Solución al conflicto de nombres (I)

Aprovechar los dominios de internet que son únicos

Asignamos la URI a los nombres de prefijos

Identificador uniforme de recursos (URI)

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. Otro tipo, no tan común de la URI es el nombre universal de

recursos (URN).

En nuestro ejemplo sólo utilizaremos las direcciones URL.

La URL sería el espacio de nombres al que

pertenece el elemento

En XML se declara como:

xmlns: prefijo = " URI “

Ejemplo

<h:país xmlns:h=“http://www.geograf.com“>

Page 6: UnidadDidactica5Namespaces-curso2011-12.pdf

Solución al conflicto de nombres(II)

Los espacios de nombres se pueden declarar en los elementos

que se utilizan o en el elemento raíz de XML:

…..

<bolsa:inversiones

xmlns:h=" http://www.geograf.com /"

xmlns:f=" http://www.bolsa.es ">

……

<h:país nombre=“España”>

<h:capital>Madrid</h:capital>

</h:país>

<f:inversión>

<f:capital>2000€</f:capital>

</f:inversión>

</bolsa:inversiones>

…..

Page 7: UnidadDidactica5Namespaces-curso2011-12.pdf

Actividad: Añadir Namespaces a un

documento

1. Abrir Notepad++ y teclear el siguiente código XML

2. Guardar el documento como namespace.xml

3. Abrir en el navegador. Se debe obtener una vista normal

Cambiar la url del espacio de nombre bolsa por la vuestra

personal y probar el resultado

<?xml version="1.0" encoding="ISO-8859-1"?> <bolsa:inversiones xmlns:bolsa="http://www.bolsa.com" xmlns:geog="http://www.geog.es"> <geog:país geog:nombre="Francia"> <geog:capital>París</geog:capital> <bolsa:capital>1200€</bolsa:capital> </geog:país> </bolsa:inversiones>

Page 8: UnidadDidactica5Namespaces-curso2011-12.pdf

Los espacios de nombres por defecto

La definición de un espacio de nombres por defecto de un

elemento nos evita usar prefijos de todos los elementos

secundarios. Se tiene la siguiente sintaxis:

…..

<bolsa:inversiones

xmlns =" http://www.geograf.com /"

xmlns:f =" http://www.bolsa.es ">

……

<país nombre=“España”>

<capital>Madrid</capital>

</país>

<f:inversión>

<f:capital>2000€</f:capital>

</f:inversión>

</bolsa:inversiones>

…..

Page 9: UnidadDidactica5Namespaces-curso2011-12.pdf

Ejemplo real de Espacios de nombres

<?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 Colección de CD</h2> <table border="1"> <tr> <th align="left">Titulo</th> </tr> <xsl:for-each select="catalogo/cd"> <tr> <td> <xsl:value-of select="titulo"/> </td> </tr> </xsl:for-each> </table> …….

Las etiquetas que no son las etiquetas HTML

tienen el prefijo xsl, identificado por el espacio de

nombres xmlns: xsl =

"http://www.w3.org/1999/XSL/Transform"

Ejercicio: Buscar en internet dos documentos que utilicen namespaces

Page 10: UnidadDidactica5Namespaces-curso2011-12.pdf

Uso de Espacios de Nombres en

XSLT

Actividad: Crear una hoja de estilos llamada

namespaces.xsl para el documento de la actividad anterior

que obtenga una página html con:

El capital referido al término geográfico

El capital referido al término bursátil

Cambiar la url del espacio de nombre de la hoja de estilos

xmlns:xsl="http://www.w3.org/1999/XSL/Transform”

por otra cualquiera y probar