xml - iniciodi002.edv.uniovi.es/~labra/cursos/xmlavanzado/xml.pdfcontenidos antecedentes lenguaje...

40
Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres XML Jose Emilio Labra Gayo Octubre 2006 Jose Emilio Labra Gayo XML

Upload: others

Post on 26-Jan-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

XML

Jose Emilio Labra Gayo

Octubre 2006

Jose Emilio Labra Gayo

XML

Page 2: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Contenidos

AntecedentesUnicode y URIs

Lenguaje XML

DTDs

Espacios de nombres

Jose Emilio Labra Gayo

XML

Page 3: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Arquitectura de la Web

Jose Emilio Labra Gayo

XML

Page 4: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Unicode y URIs

Unicode

I Consorcio de empresas dedicadas a internacionalizacion

I Objetivo: Representar los sımbolos escritos en todos losidiomas

I Asocia un codigo unico a cada sımbolo

I Ejemplo: 2200 en hexadecimal = ∀I Diversas codificaciones: UTF-8, UTF-16, UTF-32, etc.

Jose Emilio Labra Gayo

XML

Page 5: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Unicode y URIs

URI

URI (Identificadores unicos de recursos)I URI = URL + URN

I URL (Locator) tiene doble funcionalidad:I Identificar recursosI Protocolo de acceso

Ejemplo: http://www.uniovi.esI URN: Nombre unico de recursos

I Ejemplo: urn:isbn:0-395-36341-1

I IRI (Internationalized Resource Identifier) permite incluircaracteres Unicode

Jose Emilio Labra Gayo

XML

Page 6: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

XML

I XML es un lenguaje de marcado generalizado

I Define una sintaxis comun que permite definir vocabulariosespecıficos

I OrıgenesI SGML (70 ) permitıa definir vocabulriosI HTML fue un vocabulario de SGML para hipertextoI XML = SGML mas simple y adaptado a Internet

Gran exito industrial y adopcion en multiples contextosI Parte fundamental de la arquitectura WebI Otras aplicaciones: Ficheros de Configuracion, vocabularios

especıficos, etc.

Jose Emilio Labra Gayo

XML

Page 7: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

XML

<html><head>< t i t l e>Poema</ t i t l e></head><body lang=” es ”><h1>Alba</h1><h2>Ab r i l de 1915 </h2><h2>Granada</h2><p>Mi corazon

opr im ido</p><p>s i e n t e j un t o a

l a a l bo r ada</p></body></html>

<poema fecha=” Ab r i l 1915”l u g a r=”Granada”>

< t i t u l o>Alba</ t i t u l o><ve r so>Mi corazon

op r im ido</ ve r so><ve r so>s i e n t e j un t o a

l a a l bo r ada</ ve r so><ve r so>e l d o l o r de su s

amores . . .</ ve r so></poema>

Ambos documentos tienen una sintaxis comun

Jose Emilio Labra Gayo

XML

Page 8: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Partes de un documento XML

I Declaracion XML: opcional

I Declaracion de tipo dedocumento (DTD): opcional

I Contenidos

Ejemplo de fichero XML

<?xml v e r s i o n=” 1 .0 ” ?><!DOCTYPE poema

SYSTEM ”poema . dtd ”><poema fecha=” Ab r i l 1915”

l u g a r=”Granada”>< t i t u l o>Alba</ t i t u l o><ve r so>Mi corazon

op r im ido</ ve r so><ve r so>s i e n t e j un t o a

l a a l bo r ada</ ve r so><ve r so>e l d o l o r de su s

amores . . .</ ve r so></poema>

Jose Emilio Labra Gayo

XML

Page 9: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Declaracion XML

<?xml v e r s i o n=” 1 .0 ” encod ing=”UTF−8” s tanda lone=” yes ” ?>

I version indica la version.I 1.0 = version mas habitualI 1.1 aumenta capacidad de soporte de Unicode

I encoding indica codificacion de caracteresI UTF-8= caracteres UnicodeI iso-8859-1 = caracteres latinos

I standaloneI yes indica que puede haber declaraciones externasI no indica que no hay dichas declaraciones

Jose Emilio Labra Gayo

XML

Page 10: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Cuerpo del documento XML

Formato de elemento

<e t i que t a a t r i b 1=” v a l o r 1 ” a t r i b 2=” v a l o r 2 ” . . .>. . . c o n t e n i d o s . . .

</ e t i que t a>

I El cuerpo del documento esta formado por un elementoI Un elemento consta de:

I Una etiqueta inicial que puede contener una lista de atributosy valores

I Los contenidos del elemento (puede estar vacıo)I La etiqueta final

I Los contenidos del elemento pueden ser otros subelementosI Es necesario cerrar todas las etiquetasI XML es sensible a mayusculas/minusculas

Jose Emilio Labra Gayo

XML

Page 11: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Elementos vacıos

Elemento vacıo sin simplificar

<e t i que t a a t r i b 1=” v a l o r 1 ” a t r i b 2=” v a l o r 2 ” . . .></ e t i que t a>

Un elemento vacıo puede simplificarse como:

Elemento vacıo simplificado

<e t i que t a a t r i b 1=” v a l o r 1 ” a t r i b 2=” v a l o r 2 ” . . . />

Jose Emilio Labra Gayo

XML

Page 12: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Anidamiento

Las etiquetas que se abran deben cerrarse sin que se produzcananidamientos

Correcto

<exte rno>< i n t e r n o>

t e x t o</ i n t e r n o>

</ exte rno>

Incorrecto

<exte rno>< i n t e r n o>

t e x t o</ exte rno>

</ i n t e r n o>

Jose Emilio Labra Gayo

XML

Page 13: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

XML tiene estructura de arbol

Cada documento XML puede representarse como un arbol

<poema fecha=” Ab r i l 1915”l u g a r=”Granada”>

< t i t u l o>Alba</ t i t u l o><ve r so>Mi corazon

opr im ido</ ve r so><ve r so>s i e n t e j un t o a

l a a l bo r ada</ ve r so><ve r so>e l d o l o r de su s

amores . . .</ ve r so></poema>

Jose Emilio Labra Gayo

XML

Page 14: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Arbol XML

Dibujar el arbol DOM para el siguiente documento

<html><head>< t i t l e>Pagina</ t i t l e></head><body><h1>Ejemplo</h1><p>Este t e x t o t i e n e un

<a h r e f=” ht tp : //www. u n i o v i . e s ”>e n l a c e</a>y un t e x t o <em>e n f a t i z a d o</em></p>

</body></html>

Jose Emilio Labra Gayo

XML

Page 15: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Atributos

<poema fecha=” Ab r i l 1915”l u g a r=”Granada”>

. . .</poema>

I El orden de los atributos no es significativoI No puede haber nombres de atributos repetidosI Hay varios atributos predefinidos. Por ejemplo:

I xml:lang especifica el codigo del idioma: en (ingles), sp(espanol), etc.

I xml:space especifica como tratar el espacio en blanco:I preserve = mantenerloI default = dejar libertar a la aplicacion para tratarlo como

quiera

Jose Emilio Labra Gayo

XML

Page 16: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Comentarios

Los comentarios indican porciones del documento que no serananalizadas por el procesadorComienzan por <-- y finalizan por -->

<!−− Este poema r e q u i e r ecomenta r i o s −−>

<poema>< t i t u l o>La f e a l d a d</ t i t u l o><!−− No hay v e r s o s −−>

</poema>

Dentro de los comentarios no pueden aparecer los caracteres --

Jose Emilio Labra Gayo

XML

Page 17: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Caracteres especiales

Existen 5 caracteres especiales:

I &lt; = <

I &gt; = >

I &amp; = &

I &quot; = "

I &apos; = ’

Cualquier caracter Unicode puede indicarse mediante & seguido delnumero y acabado por ;

Jose Emilio Labra Gayo

XML

Page 18: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Secciones CDATA

Suelen utilizarse para incluir porciones de texto sin analizar. Porejemplo codigo fuente

Ejemplo sin CDATA

<cod igo>i f ( x &l t ; 3 &amp;&amp ;

x &gt ; 4)p r i n t f (&quot ; Hola&quot ; ) ;

</ cod igo>

Ejemplo sin CDATA

<cod igo><! [CDATA[i f ( x < 3 && x > 4)p r i n t f (” Hola ” ) ;

] ]></ cod igo>

Jose Emilio Labra Gayo

XML

Page 19: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Instrucciones de Procesamiento

Permiten indicar al procesador que ejecute una aplicacion externaFormato: <?aplicacion ...datos... ?>Los tipos de aplicaciones externas no estan definidosAlgunos ejemplos:

I <?xml version=’1.0’ ?>

I <?xsl-stylesheet type=’text/xsl’ href=’...’ ?>

I <?php ... ?>

Jose Emilio Labra Gayo

XML

Page 20: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Documento bien formado

Un documento XML esta bien formado si cumple las reglasanterioresUna condicion basica para trabajar con un documento XML es queeste bien formado

Jose Emilio Labra Gayo

XML

Page 21: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Validacion

I Es posible limitar la estructura de los documentosI Varias alternativas:

I DTDsI XML SchemaI Relax NGI Schematron

Jose Emilio Labra Gayo

XML

Page 22: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Validacion mediante DTDs

Ejemplo XML con DTD

<poemafecha=” Ab r i l 1915”l u g a r=”Granada”>

<!DOCTYPE poemaSYSTEM ”poema . dtd ”>

< t i t u l o>Alba</ t i t u l o><ve r so>Mi corazon

opr im ido</ ve r so><ve r so>s i e n t e j un t o a

l a a l bo r ada</ ve r so><ve r so>e l d o l o r de su s

amores . . .</ ve r so></poema>

Ejemplo de DTD

<!ELEMENT poema( t i t u l o , ve r so ∗)>

<!ELEMENT t i t u l o (#PCDATA)><!ELEMENT ver so (#PCDATA)><!ATTLIST poema

fecha CDATA #REQUIREDluga r CDATA #IMPLIED>

Jose Emilio Labra Gayo

XML

Page 23: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

DTDs internas vs externas

Las DTDs pueden definirse dentro del documento XML

<!DOCTYPE htmlPUBLIC ”−//W3C//DTD XHTML 1 .0 S t r i c t //EN”

” h t t p : //www.w3 . org /TR/ xhtml1 /DTD/xhtml1− s t r i c t . dtd ”>

Tambien pueden residir en otro documento:

<!DOCTYPE htmlPUBLIC ”−//W3C//DTD XHTML 1 .0 S t r i c t //EN”

” h t t p : //www.w3 . org /TR/ xhtml1 /DTD/xhtml1− s t r i c t . dtd ”>

Algunas DTDs pueden tener identificadores publicos

<!DOCTYPE htmlPUBLIC ”−//W3C//DTD XHTML 1 .0 S t r i c t //EN”

” h t t p : //www.w3 . org /TR/ xhtml1 /DTD/xhtml1− s t r i c t . dtd ”>Jose Emilio Labra Gayo

XML

Page 24: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Tipos de declaraciones

I ELEMENT = elementos del documento

I ATTLIST = lista de atributos de un elemento

I ENTITY = entidades (similares a las macros)

I NOTATION = permite definir otros tipos de contenidos,facilitando la inclusion de formatos binarios

Jose Emilio Labra Gayo

XML

Page 25: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Modelo de contenido de elementos

Se utiliza un modelo basado en expresiones regularesI ? = 0,1 elemento

I * = 0 o mas elementos

I + = 1 o mas elementos

I | = alternativa

I , = secuencia

I EMPTY = vacıo

I ANY = cualquier cosa

I #PCDATA = texto

<!ELEMENT poema ( t i t u l o ,autor ? ,ve r so ∗ ) >

<!ELEMENT l i b r o ( poema| p ro sa ) >

<!ELEMENT autor EMPTY><!ELEMENT t i t u l o (#PCDATA)><!ELEMENT s e c ( t i t u l o ,

( p | s e c +))>

Jose Emilio Labra Gayo

XML

Page 26: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Modelo de contenido mixto

<p>Este t e x t o t i e n e un<a h r e f=” r e f . html ”>e n l a c e</a>y a l go <em>e n f a t i z a d o</em>

</p>

La validacion puede realizarse mediante:

<!ELEMENT p (#PCDATA | a | em )∗ ><!ELEMENT a (#PCDATA)><!ELEMENT em (#PCDATA)>

Jose Emilio Labra Gayo

XML

Page 27: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Atributos

I Tipos de datos:I CDATA = cadenaI NMTOKEN = nombreI NMTOKENS = lista de nombres

I Valor de atributos:I #REQUIRED obligatorioI #IMPLIED opcionalI #FIXED fijoI Valor = valor por defecto

<!ATTLIST poema fecha CDATA #REQUIREDluga r CDATA #IMPLIED>

Jose Emilio Labra Gayo

XML

Page 28: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Valores ID e IDREF

I ID representa un atributo cuyo valor debe ser unico en todo eldocumento

I IDREF representa un atributo cuyo valor debe coincidir con elde otro atributo del documento

<!ATTLIST autor cod igo ID #REQUIRED><!ATTLIST autorPremiado cod igo IDREF #REQUIRED>. . .

<autor cod igo=”A21”> . . .</ autor><autor cod igo=”A45”> . . .</ autor>. . .

<autorPremiado cod igo=”A45” />

Jose Emilio Labra Gayo

XML

Page 29: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Entidades generales

Permiten definir macros

<!ENTITY c l a r i n”<au to r cod igo=”23”>Leopo ldo A la s C l a r i n </autor>”>

. . .< l i b r o>< t i t u l o>La Regenta</ t i t u l o>&c l a r i n ;

</ l i b r o>

equivale a:

< l i b r o>< t i t u l o>La Regenta</ t i t u l o><au to r cod igo=”23”>Leopo ldo A la s C l a r i n</ au to r>

</ l i b r o>

Jose Emilio Labra Gayo

XML

Page 30: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Entidades externas

Permiten incluir documentos externos en el documento actual

<!DOCTYPE l i b r o s [<!ENTITY au t o r e s SYSTEM ” au t o r e s . xml”><!ENTITY e d i t o r i a l e s SYSTEM ” e d i t o r i a l e s . xml”>]>< l i b r o s>&au t o r e s ;&e d i t o r i a l e s ;

</ l i b r o s>

Jose Emilio Labra Gayo

XML

Page 31: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Entidades parametro

Permiten crear macros dentro de las definiciones de las DTDs

<!ELEMENT % au t o r e s SYSTEM ” au t o r e s . dtd ” ><!ELEMENT % e d i t o r i a l e s SYSTEM ” e d i t o r i a l e s . dtd ” >

%au to r e s ;%e d i t o r i a l e s ;

Jose Emilio Labra Gayo

XML

Page 32: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Entidades parametro externas

Permiten incluir otras DTDs en una DTD

<!ELEMENT % au t o r e s SYSTEM ” au t o r e s . dtd ” ><!ELEMENT % e d i t o r i a l e s SYSTEM ” e d i t o r i a l e s . dtd ” >

%au to r e s ;%e d i t o r i a l e s ;

Jose Emilio Labra Gayo

XML

Page 33: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Espacios de nombres

El problema de la homonimia

<p a i s nombre=” F r anc i a ”><c a p i t a l>Pa r i s</ c a p i t a l></ p a i s>

< i n v e r s i o n><c a p i t a l>7000</ c a p i t a l>

</ i n v e r s i o n>

¿Como juntarlo todo en un mismo documento?

< i n v e r s i o n e s><p a i s nombre=” F r anc i a ”>

<c a p i t a l>Pa r i s</ c a p i t a l><c a p i t a l>1200</ c a p i t a l>

</ p a i s>. . .

</ i n v e r s i o n e s>

Jose Emilio Labra Gayo

XML

Page 34: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Espacios de Nombres

I La solucion consistira en asociar a cada etiqueta una URI queidentificara el espacio de nombres al que pertenece

I La URI sirve simplemente para evitar ambiguedad =identificador global unico

I Conceptualmente se representarıa como:

Representacion conceptual de Espacio de nombres

< [ h t t p : //www. bo l s a . com ] : i n v e r s i o n e s>< [ h t t p : //www. geog . e s ] : p a i s

[ h t t p : //www. geog . e s ] :nombre=” F r an c i a ”>< [ h t t p : //www. geog . e s ] : c a p i t a l>Pa r i s</ [ h t t p : //www. geog . e s ] : c a p i t a l>< [ h t t p : //www. bo l s a . com ] : c a p i t a l>1200</ [ h t t p : //www. bo l s a . com ] : c a p i t a l>

</ [ h t t p : //www. bo l s a . com ] : p a i s>. . .

</ [ h t t p : //www. bo l s a . com ] : i n v e r s i o n e s>Jose Emilio Labra Gayo

XML

Page 35: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Sintaxis de Espacio de nombres

I Para abreviar la sintaxis se asocian alias mediante el atributoxmlns:alias="...URI..."

Espacio de nombres

<b : i n v e r s i o n e s xmlns :b=” h t t p : //www. bo l s a . com”xmlns : geo=” h t t p : //www. geo . e s ”>

<g e o : p a i s geo:nombre=” F r anc i a ”><g e o : c a p i t a l>Pa r i s<g e o : c a p i t a l><b : c a p i t a l>1200</ b : c a p i t a l>

</ g e o : p a i s>. . .

</ b : i n v e r s i o n e s>

Jose Emilio Labra Gayo

XML

Page 36: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Sintaxis de Espacio de nombres

I No es necesario asociar todos los alias al comienzo deldocumento

Espacio de nombres

<b : i n v e r s i o n e s xmlns :b=” h t t p : //www. bo l s a . com”><g e o : p a i s xm ln s : geo=” h t t p : //www. geo . e s ”

geo:nombre=” F r anc i a ”><g e o : c a p i t a l>Pa r i s<g e o : c a p i t a l><b : c a p i t a l>1200</ b : c a p i t a l>

</ g e o : p a i s>. . .

</ b : i n v e r s i o n e s>

Jose Emilio Labra Gayo

XML

Page 37: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Sintaxis de Espacio de nombres

I Puede definirse un espacio de nombres por defecto

I Para ello, se utiliza el atributo xmlns="...URI..."

Espacio de nombres

< i n v e r s i o n e s xmlns=” h t t p : //www. bo l s a . com”><g e o : p a i s xm ln s : geo=” h t t p : //www. geo . e s ”

geo:nombre=” F r anc i a ”><g e o : c a p i t a l>Pa r i s<g e o : c a p i t a l><c a p i t a l>1200</ c a p i t a l>

</ g e o : p a i s>. . .

</ i n v e r s i o n e s>

Jose Emilio Labra Gayo

XML

Page 38: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Algunos espacios de nombres populares

I http://www.w3.org/1999/xhtml: XHTML

I http://www.w3.org/1999/XSL/Transform: XSLT

I http://www.w3.org/2000/svg: SVG

I http://www.w3.org/1999/xlink: XLink

I http://www.w3.org/1999/xlink: XLink

I http://www.w3.org/1999/02/22-rdf-syntax-ns#: RDF

I http://purl.org/dc/elements/1.1/: Dublin Core

I http://www.w3.org/2005/Atom: Formato Atom

Jose Emilio Labra Gayo

XML

Page 39: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Combinacion de Espacios de nombres

Ejemplo de combinacion

<html xmlns=” ht tp : //www.w3 . org /1999/ xhtml ”xmlns : x l i n k=” ht tp : //www. w3 . org /1999/ x l i n k ”>

<head>< t i t l e>HTML + SVG</ t i t l e>

</head><body>

<h1>Una imagen</h1>

<svg xmlns=” ht tp : //www.w3 . org /2000/ svg ”width=”300” he igh t=”200”>

<a x l i n k : h r e f=” ht tp : //www. u n i o v i . e s ”>< c i r c l e cx=”150” cy=”100” r=”50” />

</a></ svg>

</body></html>

Jose Emilio Labra Gayo

XML

Page 40: XML - Iniciodi002.edv.uniovi.es/~labra/cursos/XMLAvanzado/XML.pdfContenidos Antecedentes Lenguaje XML DTDs Espacios de nombres Unicode y URIs Unicode I Consorcio de empresas dedicadas

Contenidos Antecedentes Lenguaje XML DTDs Espacios de nombres

Validacion de Espacios de nombres con DTDs

Los espacios de nombres fueron posteriores a los DTDsDe todas formas, es posible realizar la validacion

<!DOCTYPE i n v e r s i o n e s [<!ELEMENT i n v e r s i o n e s ( g : p a i s ∗)><!ELEMENT g : p a i s ( g : c a p i t a l , c a p i t a l ) ><!ELEMENT g : c a p i t a l (#PCDATA)><!ELEMENT c a p i t a l (#PCDATA)><!ATTLIST i n v e r s i o n e s

xmlns CDATA #FIXED ” h t t p : //www. bo l s a . com”><!ATTLIST g : p a i s

g:nombre CDATA #REQUIREDxmlns : g CDATA #FIXED ” h t t p : //www. geog . e s ”>

]>

Jose Emilio Labra Gayo

XML