Guon del tema Contenidos Qu es Namespace? Cmo resolver el conflicto de nombres? Espacio de nombres con XSLT
Actividades Aadir namespaces a un documento Buscar en internet documentos que utilicen namespaces 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 mtodo 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 cmo manejar estas diferencias.
<pas nombre=Espaa> <capital>Madrid</capital> </pas> <inversin> <capital>2000</capital> </inversin> Cmo resolver el Conflicto de nombre ? Utilizando un prefijo de nombre
Problema: Quin controla el uso de prefijos? Y si dos empresas eligen los mismos prefijos?
Solucin 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 ms comn es el Uniform Resource Locator (URL) que identifica una direccin de dominio de Internet. Otro tipo, no tan comn de la URI es el nombre universal de recursos (URN). En nuestro ejemplo slo utilizaremos las direcciones URL. La URL sera el espacio de nombres al que pertenece el elemento En XML se declara como: xmlns: prefijo = " URI Ejemplo <h:pas xmlns:h=http://www.geograf.com> Solucin al conflicto de nombres(II) Los espacios de nombres se pueden declarar en los elementos que se utilizan o en el elemento raz de XML:
<h:pas nombre=Espaa> <h:capital>Madrid</h:capital> </h:pas> <f:inversin> <f:capital>2000</f:capital> </f:inversin> </bolsa:inversiones> .. Actividad: Aadir Namespaces a un documento 1. Abrir Notepad++ y teclear el siguiente cdigo 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:pas geog:nombre="Francia"> <geog:capital>Pars</geog:capital> <bolsa:capital>1200</bolsa:capital> </geog:pas> </bolsa:inversiones> Los espacios de nombres por defecto La definicin 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 ">
<pas nombre=Espaa> <capital>Madrid</capital> </pas> <f:inversin> <f:capital>2000</f:capital> </f:inversin> </bolsa:inversiones> .. Ejemplo real de Espacios de nombres
<xsl:template match="/"> <html> <body> <h2>Mi Coleccin 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 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 pgina html con: El capital referido al trmino geogrfico El capital referido al trmino burstil 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