• No se han encontrado resultados

Espacios de Nombres. Documentación Electrónica. Soto Montalvo

N/A
N/A
Protected

Academic year: 2021

Share "Espacios de Nombres. Documentación Electrónica. Soto Montalvo"

Copied!
23
0
0

Texto completo

(1)

Espacios de Nombres

Documentaci´on Electr´onica

(2)

Contenido

Introducci´on

Declarar un espacio de nombres Nombres cualificados

Formas de declarar un espacio de nombres Alcance de los espacios de nombres Atributos ´unicos

(3)

Motivaci´

on

XML es un est´andar dise˜nado para permitir que se comparta informaci´on con facilidad

¿Qu´e pasar´ıa si uni´esemos informaci´on en XML procedente de dos fuentes diferentes para enviarla a una tercera? ¿Qu´e ocurre si se quieren combinar diferentes vocabularios (gram´aticas)?

I Si no tienen elementos con el mismo nombre no hay problema I Si tienen elementos con el mismo nombre se producir´an

colisiones

El concepto deEspacios de nombres o Namespacessurge de la posibilidad de combinar diferentes vocabularios XML evitando colisiones entre los nombres de los vocabularios

(4)

Motivaci´

on

Ejemplo: supongamos un documento XML con libros y otro con discos y queremos mezclar ambos

I Habr´a elementos con nombre diferente (p´aginas o tiempo) I Habr´a elementos con el mismo nombre (t´ıtulo o autor) Soluci´on: hacer uso de ambos Esquemas y utilizar espacios de nombres para distinguir aquellos elementos que no est´e claro a qu´e Esquema pertenecen

(5)

Concepto

Los espacios de nombres XML proporcionan un m´etodo simple para calificar nombres de elementos y atributos

No forma parte de la especificaci´on XML 1.0 original. Es una iniciativa de W3C

http://www.w3.org/TR/REC-xml-names/

Garant´ıa de singularidad de la asignaci´on de nombres de elementos y atributos XML: uso de URIs (identificador global ´unico)

I Se asocia una URI a cada etiqueta que identifica el espacio de nombres al que pertenece

(6)

Contenido

Introducci´on

Declarar un espacio de nombres

Nombres cualificados

Formas de declarar un espacio de nombres Alcance de los espacios de nombres Atributos ´unicos

(7)

Sintaxis

Para definir un espacio de nombres al que pertenece un elemento se a˜nade el atributo xmlns (“xml namespace”) a la definici´on de elemento:

xmlns:prefijo="namespace"

El valor del atributo puede ser una cadena cualquiera aunque por convenci´on suele ser una URI

(8)

Sintaxis

Es la URI la que define el espacio de nombres y no el prefijo I Diferentes documentos XML pueden tener distintos prefijos

que se refieren al mismo espacio de nombres

Elprefijo es opcional. Sirve de referencia del espacio de nombres a lo largo del alcance del elemento en el que se declara

(9)

Contenido

Introducci´on

Declarar un espacio de nombres

Nombres cualificados

Formas de declarar un espacio de nombres Alcance de los espacios de nombres Atributos ´unicos

(10)

Concepto

Son aquellos que llevan un prefijo

prefijo:parte local del nombre

Ejemplos:

pelicula:titulo, pelicula:director

El prefijo debe estar asociado mediante una referencia URI a un espacio de nombres en una declaraci´on de espacio de nombres El prefijo act´ua ´unicamente como sustituto del nombre del espacio de nombres

(11)

Utilizaci´

on con nombres cualificados

Ejemplo de nombre cualificado que funciona como tipo de elemento:

<x xmlns:edi=’http://ecommerce.org/schema’>

<!-- el espacio de nombres del elemento ’price’ --> <!-- es http://ecommerce.org/schema -->

<edi:price units=’Euro’>32.18</edi:price> </x>

Ejemplo de nombre cualificado que act´ua como nombre de atributo:

<x xmlns:edi=’http://ecommerce.org/schema’>

<!-- el espacio de nombres del atributo ’taxClass’ --> <!-- es http://ecommerce.org/schema -->

<lineItem edi:taxClass="exempt">Baby food</lineItem> </x>

(12)

Contenido

Introducci´on

Declarar un espacio de nombres Nombres cualificados

Formas de declarar un espacio de nombres

Alcance de los espacios de nombres Atributos ´unicos

(13)

Hay dos maneras de definir un espacio de nombres:

I Declaraci´on predeterminada (Espacio de nombres por defecto) I El espacio de nombres se declara sin un prefijo

I Se usan nombres no cualificados de elementos y atributos (se

supone que est´an en el espacio de nombres)

I Declaraci´on expl´ıcita

I El espacio de nombres se declara con un prefijo

(14)

Declaraci´

on predeterminada

Ejemplo:

<!ELEMENT title (%inline;)*> <!ATTLIST title

xmlns CDATA #FIXED "http://www.ejemplos.xml/slideshow" >

Referencia a un espacio de nombres:

<title xmlns="http://www.ejemplos.com/ejemplo1"> Ejemplo de espacio de nombres

(15)

Declaraci´

on expl´ıcita

Ejemplo:

<libro xmlns:lib="http://www.ejemplos.com/ejemplo1"> </libro>

(16)

Ejemplo:

<producto xmlns="http://osmosislatina.com/definiciones/producto" xmlns:dist="http://osmosislatina.com/definiciones/distribuidores"> <nombre modelo="xdfsdf">

<disponibilidad lugar="almacen"> Si </disponibilidad> <descripcion> 60 Watts Doble Canal </descripcion> </nombre>

<dist:empresa> <dist:serie>5845-2543-8614</dist:serie> <dist:nombre>Sonido Real</dist:nombre>

</dist:empresa> </producto>

(17)

Contenido

Introducci´on

Declarar un espacio de nombres Nombres cualificados

Formas de declarar un espacio de nombres

Alcance de los espacios de nombres

(18)

´

Ambito

La declaraci´on del espacio de nombres se aplica al elemento en que est´a especificada y a todos los elementos pertenecientes al

contenido de ese elemento, a menos que sea anulada por otra declaraci´on de espacio de nombres con el mismo prefijo

<?xml version="1.0"?>

<!-- todos los elementos est´an en el espacio de nombres HTML --> <html:html xmlns:html=’http://www.w3.org/TR/REC-html40’>

<html:head><html:title>Frobnosticaci´on</html:title></html:head> <html:body>

<html:p>Movido

<html:a href=’http://frob.com’>aqu´ı.</html:a> </html:p>

</html:body> </html:html>

(19)

Espacio de nombres por defecto

Se aplica un espacio de nombres por defecto al elemento en que est´a declarado (si ese elemento no tiene prefijo de espacio de nombres), y a todos los elementos sin prefijo pertenecientes al contenido de ese elemento

Si la referencia URI de la declaraci´on de un espacio de nombres por defecto est´a vac´ıa, entonces se considera que los elementos sin prefijo pertenecientes al ´ambito de la declaraci´on no est´an en ning´un espacio de nombres

(20)

Espacio de nombres por defecto

Ejemplo:

<?xml version="1.0"?>

<!-- inicialmente, el espacio de nombres por defecto es "books" --> <!-- los tipos de elemento sin prefijo son de "books" -->

<book xmlns=’urn:loc.gov:books’

xmlns:isbn=’urn:ISBN:0-395-36341-6’> <title>Cheaper by the Dozen</title> <isbn:number>1568491379</isbn:number> <notes>

<!-- HTML ser´a el espacio de nombres por defecto --> <!-- para algunos comentarios -->

<p xmlns=’urn:w3-org-ns:HTML’>

¡Este es un libro <i>muy</i> divertido! </p>

</notes> </book>

(21)

Contenido

Introducci´on

Declarar un espacio de nombres Nombres cualificados

Formas de declarar un espacio de nombres Alcance de los espacios de nombres

(22)

En documentos XML ninguna etiqueta puede contener dos atributos que: tengan nombres id´enticos o que tengan nombres cualificados con la misma parte local y con prefijos que hayan sido ligados a nombres de espacios de nombres que sean id´enticos.

<!-- http://www.w3.org est´a ligado a n1 y n2 -->

<x xmlns:n1="http://www.w3.org" xmlns:n2="http://www.w3.org" > <mal a="1" a="2" />

<mal n1:a="1" n2:a="2" /> </x>

(23)

<!-- http://www.w3.org est´a ligado a n1 y --> <-- es el valor por defecto -->

<x xmlns:n1="http://www.w3.org" xmlns="http://www.w3.org" > <bien a="1" b="2" /> <bien a="1" n1:a="2" /> </x>

Referencias

Documento similar

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma