tema 3: estructura de los documentos xml, dtd ricardo eíto brun sevilla, 23-25 de octubre 2002

48
Tema 3: Tema 3: Estructura de los Estructura de los documentos XML, DTD documentos XML, DTD Ricardo Eíto Brun Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002 Sevilla, 23-25 de octubre 2002

Upload: francisco-javier-ojeda-caballero

Post on 24-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Tema 3:Tema 3:Estructura de los Estructura de los documentos XML, DTDdocumentos XML, DTD

Ricardo Eíto BrunRicardo Eíto BrunSevilla, 23-25 de octubre 2002Sevilla, 23-25 de octubre 2002

Page 2: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

XML: información y XML: información y estructuraestructura Un documento XML contiene información Un documento XML contiene información

estructuradaestructurada Un documento está formado por una Un documento está formado por una

serie de elementos que identifican los serie de elementos que identifican los contenidos informativos que contiene el contenidos informativos que contiene el documento y hacen explícita su documento y hacen explícita su estructuraestructura

La estructura de un documento se define La estructura de un documento se define en un documento especial llamado DTD en un documento especial llamado DTD (Document Type Definition), o mediante (Document Type Definition), o mediante un “esquema XML”un “esquema XML”

Page 3: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

XML: DTDXML: DTD

Las DTDs se utilizan también en SGMLLas DTDs se utilizan también en SGML Una DTD indica:Una DTD indica:

– Qué elementos pueden ser utilizados en un Qué elementos pueden ser utilizados en un tipo de documento específicotipo de documento específico

– Cuales son obligatorios y cuales opcionalesCuales son obligatorios y cuales opcionales– Cuales son repetibles y cuales noCuales son repetibles y cuales no– En qué orden deben aparecerEn qué orden deben aparecer– Cómo deben anidarse los elementos que Cómo deben anidarse los elementos que

conforman un documentoconforman un documento

Page 4: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

XML: información y XML: información y estructuraestructura La DTD también contiene:La DTD también contiene:

– La declaración de las entidades que se La declaración de las entidades que se utilizan en el documento:utilizan en el documento:

Recursos externos XMLRecursos externos XML Recursos externos no XML: gráficos, Recursos externos no XML: gráficos,

multimedia, etc.multimedia, etc. Texto que actúa como ‘comodín’ o ‘abreviatura’ Texto que actúa como ‘comodín’ o ‘abreviatura’

para palabras de uso frecuente o términos que para palabras de uso frecuente o términos que cambian con facilidadcambian con facilidad

– La declaración de notaciones (intrucciones La declaración de notaciones (intrucciones para procesar las entidades no xml)para procesar las entidades no xml)

Page 5: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: estructuraDTDs: estructura

La DTD utiliza una sintáxis especial para La DTD utiliza una sintáxis especial para definir la estructura de un tipo de definir la estructura de un tipo de documento.documento.

Esta sintáxis utiliza los siguientes Esta sintáxis utiliza los siguientes elementos:elementos:– ELEMENTELEMENT– ATTLISTATTLIST– ENTITYENTITY– NOTATIONNOTATION

– ComentariosComentarios

Page 6: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: la estructuraDTDs: la estructura

La DTD contiene ‘declaraciones’ de los La DTD contiene ‘declaraciones’ de los distintos elementos, entidades y distintos elementos, entidades y notaciones que pueden aparecer en un notaciones que pueden aparecer en un documentodocumento

Cada declaración se escribe entre los Cada declaración se escribe entre los caracteres <! Y >, indicando el tipo de caracteres <! Y >, indicando el tipo de componente que se declara, por ejemplo:componente que se declara, por ejemplo:

<!ELEMENT<!ELEMENT autor (#PCDATA) autor (#PCDATA)>>

<!ENTITY<!ENTITY graf SYSTEM “c:\graf.gif” NDATA graf SYSTEM “c:\graf.gif” NDATA gifgif>>

Page 7: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: elementosDTDs: elementos

Los elementos se corresponden con los Los elementos se corresponden con los componentes estructurales de un componentes estructurales de un documento, y definen su estructura lógicadocumento, y definen su estructura lógica

Un elemento puede contener datos de tipo Un elemento puede contener datos de tipo carácter, otros elementos o ambos a la vezcarácter, otros elementos o ambos a la vez

Los elementos pueden contenerse unos a Los elementos pueden contenerse unos a otros, formando una jerarquía o árbolotros, formando una jerarquía o árbol

Un documento XML siempre tiene un Un documento XML siempre tiene un elemento raíz o ‘elemento documento’, que elemento raíz o ‘elemento documento’, que engloba a todos los demásengloba a todos los demás

Page 8: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: elementosDTDs: elementos

El elemento raíz se debe llamar igual que El elemento raíz se debe llamar igual que su tipo de documento (por ejemplo, si su tipo de documento (por ejemplo, si creamos un tipo de documento ‘articulo’, el creamos un tipo de documento ‘articulo’, el elemento raíz deberá llamarse ‘articulo’elemento raíz deberá llamarse ‘articulo’

El nombre de los elementos puede El nombre de los elementos puede contener caracteres a-z, A-Z y _.contener caracteres a-z, A-Z y _.

Los nombres de elementos son sensibles a Los nombres de elementos son sensibles a la diferencia entre mayúsculas y la diferencia entre mayúsculas y minúsculasminúsculas

<Casa> no es igual que <casa><Casa> no es igual que <casa>

Page 9: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: elementosDTDs: elementos

La declaración de un elemento en la La declaración de un elemento en la DTD indica:DTD indica:– El nombre del elementoEl nombre del elemento– El contenido que puede tener, también El contenido que puede tener, también

llamada ‘declaración de contenido’llamada ‘declaración de contenido’– La ‘declaración de contenido’ se escribe La ‘declaración de contenido’ se escribe

entre paréntesisentre paréntesis– La declaración de un elemento se La declaración de un elemento se

encierra entre las marcas <!ELEMENT y >encierra entre las marcas <!ELEMENT y >

Page 10: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: elementosDTDs: elementos

En la ‘declaración de contenido’ se puede En la ‘declaración de contenido’ se puede indicar:indicar:– el nombre de otros elementos que pueden el nombre de otros elementos que pueden

incluirse entre las etiquetas de inicio y de fin incluirse entre las etiquetas de inicio y de fin del elemento declaradodel elemento declarado

No es necesario haber declarado un elemento No es necesario haber declarado un elemento para poder utilizarlo en la declaración de para poder utilizarlo en la declaración de contenido de otro elemento de la misma DTDcontenido de otro elemento de la misma DTD

– la palabra reservada #PCDATA, que indica que la palabra reservada #PCDATA, que indica que el elemento puede contener datos de tipo el elemento puede contener datos de tipo caráctercarácter

Page 11: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: elementosDTDs: elementos

#PCDATA#PCDATA– Esta declaración de contenido indica que el Esta declaración de contenido indica que el

elemento puede contener cualquier tipo de elemento puede contener cualquier tipo de texto que no sea ‘mark up’.texto que no sea ‘mark up’.

– Es decir, cualquier letra menos <, > o &Es decir, cualquier letra menos <, > o &– En lugar de estos caracteres, su usarán las En lugar de estos caracteres, su usarán las

entidades &lt; &gt; ó &amp;entidades &lt; &gt; ó &amp;– Las comillas simples y dobles pueden Las comillas simples y dobles pueden

sustituirse por las entidades &quot; y &apos;sustituirse por las entidades &quot; y &apos;– Los elementos con contenido #PCDATA pueden Los elementos con contenido #PCDATA pueden

contener referencias a entidadescontener referencias a entidades

Page 12: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Elementos y contenidoElementos y contenido

Un elemento puede tener contenido Un elemento puede tener contenido de tipo:de tipo:– datos ó #PCDATA,datos ó #PCDATA,– elementos (anida otros elementos)elementos (anida otros elementos)– mixto (datos y elementos)mixto (datos y elementos)– vacío (el elemento no contiene ni datos vacío (el elemento no contiene ni datos

ni elementos) yni elementos) y– any (no hay restricciones para su any (no hay restricciones para su

contenido)contenido)

Page 13: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Elementos ANYElementos ANY

La declaración de contenido ANY La declaración de contenido ANY indica que un elemento puede indica que un elemento puede contener cualquier combinación de contener cualquier combinación de datos de tipo carácter y de elementos datos de tipo carácter y de elementos (no hay ninguna restricción)(no hay ninguna restricción)

Esta declaración de contenido no se Esta declaración de contenido no se suele utilizar. Sólo se usa en fases de suele utilizar. Sólo se usa en fases de diseño y prueba de DTDsdiseño y prueba de DTDs

Page 14: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: elementosDTDs: elementos Si la declaración de contenido del elemento Si la declaración de contenido del elemento

contiene otros elementos, se puede indicar:contiene otros elementos, se puede indicar:– si estos elementos son obligatorios o no ysi estos elementos son obligatorios o no y– cuantas veces pueden aparecercuantas veces pueden aparecer

Estas restricciones se indican escribiendo un Estas restricciones se indican escribiendo un carácter especial tras el nombre del carácter especial tras el nombre del elemento utilizadoelemento utilizado– ? el elemento puede aparecer 0 ó 1 veces (opcional ? el elemento puede aparecer 0 ó 1 veces (opcional

no repetible)no repetible)– * el elemento puede aparecer 0 ó más veces * el elemento puede aparecer 0 ó más veces

(opcional y repetible)(opcional y repetible)– + el elemento debe aparecer 1 ó más veces + el elemento debe aparecer 1 ó más veces

(obligatorio y repetible)(obligatorio y repetible)– el elemento debe aparecer 1 vez (obligatorio no el elemento debe aparecer 1 vez (obligatorio no

repetible)repetible)

Page 15: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: elementosDTDs: elementos

<!ELEMENT autor (nombre, apellido+)><!ELEMENT autor (nombre, apellido+)> <!ELEMENT catalog (product+)><!ELEMENT catalog (product+)> <!ELEMENT product (specifications+, options?, <!ELEMENT product (specifications+, options?,

price+, notes?)>price+, notes?)> <!ELEMENT specifications (#PCDATA, step)*><!ELEMENT specifications (#PCDATA, step)*> <!ELEMENT author (fname, surname, jobtitle?, <!ELEMENT author (fname, surname, jobtitle?,

address, bio)>address, bio)> <!ELEMENT content ( p | note )+><!ELEMENT content ( p | note )+> <!ELEMENT front (title, subt?, keyword*, <!ELEMENT front (title, subt?, keyword*,

author+, abstract?)>author+, abstract?)>

Page 16: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: atributosDTDs: atributos

Los elementos pueden tener atributos Los elementos pueden tener atributos asociados, que permiten matizar su asociados, que permiten matizar su significado o área de aplicación. significado o área de aplicación.

Ejemplo:Ejemplo:– Una DTD para datos terminológicos, puede Una DTD para datos terminológicos, puede

tener un atributo que recoja la fecha de tener un atributo que recoja la fecha de actualización de cada unidad terminológica actualización de cada unidad terminológica

Los atributos tienen asociado un tipo de Los atributos tienen asociado un tipo de dato, un valor por defecto y un indicador dato, un valor por defecto y un indicador que señala si son obligatorios o noque señala si son obligatorios o no

Page 17: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: atributosDTDs: atributos

Un atributo puede recoger un tipo de Un atributo puede recoger un tipo de dato:dato:

– CDATA - datos de tipo carácterCDATA - datos de tipo carácter– (valor | valor2 | … | valorn) - enumeración(valor | valor2 | … | valorn) - enumeración– ID - reservado para elementos destino de ID - reservado para elementos destino de

enlacesenlaces– IDREF - reservado para elementos origen de IDREF - reservado para elementos origen de

enlacesenlaces– ENTITY - referencias a entidades externasENTITY - referencias a entidades externas

Page 18: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: atributosDTDs: atributos

Para indicar la obligatoriedad o Para indicar la obligatoriedad o carácter opcional de un atributo, se carácter opcional de un atributo, se utilizan las palabras reservadas:utilizan las palabras reservadas:– #IMPLIED - el atributo será opcional#IMPLIED - el atributo será opcional– #REQUIRED - el atributo es obligatorio#REQUIRED - el atributo es obligatorio– #FIXED - el atributo es asignado por #FIXED - el atributo es asignado por

defecto por el sistema, y no es necesario defecto por el sistema, y no es necesario que el autor lo indiqueque el autor lo indique

Los atributos no son repetiblesLos atributos no son repetibles

Page 19: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: atributosDTDs: atributos

En la DTD, los atributos se declaran:En la DTD, los atributos se declaran:– Mediante la palabra reservada ATTLISTMediante la palabra reservada ATTLIST– Tras <!ATTLIST se escribe el nombre del Tras <!ATTLIST se escribe el nombre del

elemento para el que se definen los elemento para el que se definen los atributosatributos

– Tras el nombre del elemento, se escribe:Tras el nombre del elemento, se escribe: el nombre del atributo, el nombre del atributo, su tipo, su tipo, el indicador de ‘obligatoriedad’ y el indicador de ‘obligatoriedad’ y su valor por defecto (si existe)su valor por defecto (si existe)

Page 20: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTDs: atributosDTDs: atributos

Ejemplos:Ejemplos:<!ATTLIST emp fecnac CDATA #IMPLIED><!ATTLIST emp fecnac CDATA #IMPLIED>

<!ATTLIST section link ID #REQUIRED<!ATTLIST section link ID #REQUIRED

lastupdate CDATA #IMPLIED>lastupdate CDATA #IMPLIED>

<!ATTLIST employee birthdate CDATA #REQUIRED<!ATTLIST employee birthdate CDATA #REQUIRED

personId CDATA #REQUIREDpersonId CDATA #REQUIRED

hiredate CDATA #REQUIREDhiredate CDATA #REQUIRED

company (IBM|Lotus) “IBM”>company (IBM|Lotus) “IBM”>

Page 21: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Elementos vacíosElementos vacíos

Los elementos vacíos no contienen datos Los elementos vacíos no contienen datos de tipo carácter ni a otros elementosde tipo carácter ni a otros elementos

En la DTD, estos elementos se definen con En la DTD, estos elementos se definen con una declaración de contenido EMPTYuna declaración de contenido EMPTY<!ELEMENT graphic EMPTY><!ELEMENT graphic EMPTY>

Los elementos vacíos contienen atributos, Los elementos vacíos contienen atributos, y se suelen utilizar para incluir imágenes y y se suelen utilizar para incluir imágenes y componentes multimediacomponentes multimedia

Page 22: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Elementos vacíosElementos vacíos

Ejemplo elemento vacíoEjemplo elemento vacío

<!ELEMENT graphic EMPTY><!ELEMENT graphic EMPTY>

<!ATTLIST id ID #REQUIRED<!ATTLIST id ID #REQUIRED

src ENTITY #REQUIREDsrc ENTITY #REQUIRED

height CDATA #IMPLIEDheight CDATA #IMPLIED

weight CDATA #IMPLIED>weight CDATA #IMPLIED>

Page 23: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Elementos vacíosElementos vacíos

Los elementos vacíos se utilizan en los Los elementos vacíos se utilizan en los documentos de dos formas:documentos de dos formas:

– Con una etiqueta de inicio y de fin, sin Con una etiqueta de inicio y de fin, sin indicar ningún contenido entre ellas:indicar ningún contenido entre ellas:

<graphic id=“01” <graphic id=“01” src=“form_1”></graphic>src=“form_1”></graphic>

– Con una única etiqueta:Con una única etiqueta:<graphic id=“01” src=“form_1” /><graphic id=“01” src=“form_1” />

Page 24: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

ComentariosComentarios

En una DTD se pueden añadir En una DTD se pueden añadir comentarios para documentar la comentarios para documentar la semántica de los elementos y atributos semántica de los elementos y atributos que se declaranque se declaran

Los comentarios se añaden entre las Los comentarios se añaden entre las marcas especiales <!-- y -->marcas especiales <!-- y -->

Ejemplo:Ejemplo: <!ELEMENT graphic EMPTY><!ELEMENT graphic EMPTY> <!--este elemento se usará para incluir <!--este elemento se usará para incluir

gráficos-->gráficos-->

Page 25: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

ComentariosComentarios

Los comentarios pueden abarcar más Los comentarios pueden abarcar más de una líneade una línea

En el texto del comentario se pueden En el texto del comentario se pueden incluir los caracteres reservados que incluir los caracteres reservados que utiliza el mark up: <, >, &, etc.utiliza el mark up: <, >, &, etc.

No pueden incluirse dos guiones No pueden incluirse dos guiones seguidos a parte de los utilizados en seguidos a parte de los utilizados en su inicio y finalsu inicio y final

Page 26: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

ComentariosComentarios

Los comentarios no pueden Los comentarios no pueden intercalarse entre otras declaraciones intercalarse entre otras declaraciones de la DTD: de elementos, atributos, de la DTD: de elementos, atributos, entidades, etc.entidades, etc.

La siguiente DTD es errónea:La siguiente DTD es errónea:<!ELEMENT graphic <!--elemento para <!ELEMENT graphic <!--elemento para

gráficos --> EMPTY>gráficos --> EMPTY> porque el comentario se ha intercalado porque el comentario se ha intercalado

en la declaración del elemento graphicen la declaración del elemento graphic

Page 27: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Diseño de DTDsDiseño de DTDs

Identificar los elementos estructurales Identificar los elementos estructurales del tipo de documentodel tipo de documento

Indicar la frecuencia con la que pueden Indicar la frecuencia con la que pueden apareceraparecer

Indicar su carácter opcional u obligatorioIndicar su carácter opcional u obligatorio Ver si su contenido se puede ‘subdividir’ Ver si su contenido se puede ‘subdividir’

en otros elementosen otros elementos Indicar el orden en el que deben Indicar el orden en el que deben

escribirse los elementosescribirse los elementos

Page 28: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Diseño de DTDsDiseño de DTDs

Identificar atributos para los elementosIdentificar atributos para los elementos Indicar el tipo de dato de los atributosIndicar el tipo de dato de los atributos Indicar si son obligatorios o noIndicar si son obligatorios o no Ver si conviene asignarles un valor por Ver si conviene asignarles un valor por

defectodefecto Considerar cómo vamos a incluir imágenes Considerar cómo vamos a incluir imágenes

e hiperenlacese hiperenlaces Como regla: “todo lo que no se debe Como regla: “todo lo que no se debe

presentar en pantalla puede crearse presentar en pantalla puede crearse mediante atributos”mediante atributos”

Page 29: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

EntidadesEntidades

Las entidades determinan la estructura Las entidades determinan la estructura física de un documento XMLfísica de un documento XML

Un documento XML siempre está Un documento XML siempre está formado al menos por una entidad - la formado al menos por una entidad - la entidad documento - que es el propio entidad documento - que es el propio documentodocumento

Todas las referencias a archivos no Todas las referencias a archivos no xml (imágenes, multimedia, etc.) se xml (imágenes, multimedia, etc.) se gestionan mediante entidadesgestionan mediante entidades

Page 30: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

EntidadesEntidades

Las entidades cumplen distintas Las entidades cumplen distintas funciones:funciones:– Inserción de caracteres propios de juegos Inserción de caracteres propios de juegos

de caracteres específicos (vocales de caracteres específicos (vocales acentuadas) y caracteres utilizados en el acentuadas) y caracteres utilizados en el mark upmark up

– Utilización de ‘comodines’ para nombres Utilización de ‘comodines’ para nombres no fijados o frases largasno fijados o frases largas

– Inserción de componentes multimediaInserción de componentes multimedia– Modularización de los documentosModularización de los documentos

Page 31: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

EntidadesEntidades

Las entidades se pueden clasificar en Las entidades se pueden clasificar en grupos no excluyentes:grupos no excluyentes:– Internas y/o externasInternas y/o externas

Las internas se resuelven en la entidad Las internas se resuelven en la entidad documentodocumento

Las externas se refieren a un archivo externoLas externas se refieren a un archivo externo

– Procesables (o de texto) y no procesablesProcesables (o de texto) y no procesables Las procesables son documentos XMLLas procesables son documentos XML Las no procesables son archivos no XML: Las no procesables son archivos no XML:

imágenes, HTML, video, etc.imágenes, HTML, video, etc.

Page 32: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Tipos de entidadesTipos de entidades

Entidades de carácterEntidades de carácter Entidades de texto internasEntidades de texto internas Entidades de texto externasEntidades de texto externas Entidades externas no Entidades externas no

procesablesprocesables

Page 33: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades de carácterEntidades de carácter

Se utilizan en lugar de caracteres Se utilizan en lugar de caracteres especiales (acentos, mark up, etc.) especiales (acentos, mark up, etc.) difíciles de introducir en el teclado o que difíciles de introducir en el teclado o que se codifican de forma diferente en se codifican de forma diferente en distintas plataformasdistintas plataformas

En el documento se hará referencia a las En el documento se hará referencia a las entidades escribiendo su código ASCII entidades escribiendo su código ASCII entre los caracteres &# y ;, por ejemplo:entre los caracteres &# y ;, por ejemplo:– <ciudad>Alcal&#122; de <ciudad>Alcal&#122; de

Henares</ciudad>Henares</ciudad>

Page 34: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades de carácterEntidades de carácter

XML incluye entidades predefinidas XML incluye entidades predefinidas para los caracteres <, >, &, ‘ y “para los caracteres <, >, &, ‘ y “

Para definir entidades para otros Para definir entidades para otros caracteres, tenemos que conocer su caracteres, tenemos que conocer su código Unicode (ISO 10646)código Unicode (ISO 10646)

Se puede utilizar el código decimal Se puede utilizar el código decimal (precedido por &#) o el hexadecimal (precedido por &#) o el hexadecimal (precedido por &#x) seguidas de ;(precedido por &#x) seguidas de ;

Page 35: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades de carácterEntidades de carácter

Predefinidas en Predefinidas en XMLXML– ltlt <<– gtgt >>– aposapos ‘‘– quotquot ““– ampamp &&

Otras entidades Otras entidades útilesútiles– aacuteaacute– eacuteeacute– iacuteiacute– oacuteoacute– uacuteuacute– AacuteAacute– EacuteEacute– IacuteIacute– OacuteOacute– UacuteUacute

Page 36: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades de texto Entidades de texto internasinternas

Permiten sustituir una cadena de texto Permiten sustituir una cadena de texto por unos caracteres más fáciles de por unos caracteres más fáciles de recordar y de teclearrecordar y de teclear

Se declaran con la sintáxis:Se declaran con la sintáxis:– <!ENTITY nuevoprod “KTD-50-789890 A5”><!ENTITY nuevoprod “KTD-50-789890 A5”>

Se referencian en el documento Se referencian en el documento escribiendo el identificador de la entidad escribiendo el identificador de la entidad entre los caracteres & y ; por ejemplo:entre los caracteres & y ; por ejemplo:– <producto>&nuevoprod;</producto><producto>&nuevoprod;</producto>

Page 37: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades de texto Entidades de texto externasexternas

Referencian documentos XML externos a Referencian documentos XML externos a la entidad documento, que pueden verse la entidad documento, que pueden verse como si se tratase de una única unidadcomo si se tratase de una única unidad

Permiten la reutilización, el trabajo en Permiten la reutilización, el trabajo en colaboración y la modularidadcolaboración y la modularidad

Se declaran con la sintáxis:Se declaran con la sintáxis:– <!ENTITY licencia SYSTEM “c:\licencia.xml”><!ENTITY licencia SYSTEM “c:\licencia.xml”>

Se referencian con la sintáxis habitual:Se referencian con la sintáxis habitual:– <docbody>&licencia;</licencia><docbody>&licencia;</licencia>

Page 38: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades de texto Entidades de texto externasexternas

En un documento modular, sólo la entidad En un documento modular, sólo la entidad documento puede contener una declaración de tipo documento puede contener una declaración de tipo de documentode documento

Para poder asociar cada entidad de texto externa Para poder asociar cada entidad de texto externa con un tipo de documento, se suele crear un con un tipo de documento, se suele crear un documento XML con declaración que sólo contiene documento XML con declaración que sólo contiene la declaración de la entidadla declaración de la entidad– <?xml version=“1.0”?><?xml version=“1.0”?>– <!DOCTYPE capitulo SYSTEM “capitulo.dtd” [<!DOCTYPE capitulo SYSTEM “capitulo.dtd” [

– <!ENTITY capitulo1 SYSTEM “capitulo1.xml”><!ENTITY capitulo1 SYSTEM “capitulo1.xml”>– ]>]>– &capitulo1;&capitulo1;

Page 39: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades externas no Entidades externas no procesablesprocesables

Referencian cualquier archivo que no sea XMLReferencian cualquier archivo que no sea XML Se declaran utilizando el calificador SYSTEM o Se declaran utilizando el calificador SYSTEM o

PUBLIC, y van acompañadas de una notaciónPUBLIC, y van acompañadas de una notación– <!ENTITY logonscreen SYSTEM “c:\fm1.gif” NDATA <!ENTITY logonscreen SYSTEM “c:\fm1.gif” NDATA

gif>gif> La notación se escribe al comienzo de la DTDLa notación se escribe al comienzo de la DTD

– <!NOTATION gif SYSTEM <!NOTATION gif SYSTEM “/programas/viewer.exe”>“/programas/viewer.exe”>

Page 40: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades externas no Entidades externas no procesablesprocesables

Las notaciones pueden cumplir Las notaciones pueden cumplir distintos propósitos:distintos propósitos:– Indicar el path del programa encargado de Indicar el path del programa encargado de

procesar la entidad (por ejemplo un visor procesar la entidad (por ejemplo un visor especial)especial)

– Apuntar a un lugar en el que existe Apuntar a un lugar en el que existe documentación sobre el formatodocumentación sobre el formato

– etc.etc. La norma es abierta en este aspectoLa norma es abierta en este aspecto

Page 41: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades de tipo Entidades de tipo parámetroparámetro

Se utilizan exclusivamente en la DTD (se Se utilizan exclusivamente en la DTD (se declaran en la DTD al igual que las declaran en la DTD al igual que las entidades normales, pero se les hace entidades normales, pero se les hace referencia sólo en la DTD)referencia sólo en la DTD)

Se declaran utilizando un carácter Se declaran utilizando un carácter especial:especial:– <!ENTITY % autorelem “nombre,apellido+”><!ENTITY % autorelem “nombre,apellido+”>

Para referenciarlas se escribe su nombre Para referenciarlas se escribe su nombre entre los caracteres % y ;, por ejemplo:entre los caracteres % y ;, por ejemplo:– <!ELEMENT autores (noaut, %autorelem;)><!ELEMENT autores (noaut, %autorelem;)>

Page 42: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Entidades de tipo Entidades de tipo parámetroparámetro

Ejemplo:Ejemplo:– <!ENTITY % p “subp, pp, foot”><!ENTITY % p “subp, pp, foot”>– <!ELEMENT body (%p;)><!ELEMENT body (%p;)>

De esta forma, la declaración de De esta forma, la declaración de contenido del elemento body equivale contenido del elemento body equivale a (subp, pp, foot)a (subp, pp, foot)

El ‘modelo de contenido’ al que El ‘modelo de contenido’ al que sustituye la entidad se podrá reutilizar sustituye la entidad se podrá reutilizar en otras partes de la DTDen otras partes de la DTD

Page 43: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Estructura de una DTDEstructura de una DTD

La DTD puede incluirse totalmente junto al La DTD puede incluirse totalmente junto al documento XML (¡cuidado, en XML documento XML (¡cuidado, en XML documento es la DTD y los datos!)documento es la DTD y los datos!)

La DTD puede estar definida en un archivo La DTD puede estar definida en un archivo externo al documento al que se hará externo al documento al que se hará referencia desde este (en este caso, la DTD referencia desde este (en este caso, la DTD se podrá reutilizar y mantener con facilidadse podrá reutilizar y mantener con facilidad

La DTD puede estar definida en un La DTD puede estar definida en un documento externo, y también puede haber documento externo, y también puede haber declaraciones en la entidad documentodeclaraciones en la entidad documento

Page 44: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTD externaDTD externa

DTD externaDTD externa

<?xml head <?xml head version=“1.0”?>version=“1.0”?>

<!ELEMENT head <!ELEMENT head (body)>(body)>

<!ELEMENT body <!ELEMENT body (#PCDATA)>(#PCDATA)>

Documento Documento ejemploejemplo

<?xml head <?xml head version=“1.0”?>version=“1.0”?>

<!DOCTYPE head <!DOCTYPE head SYSTEM SYSTEM “head.dtd”>“head.dtd”>

<head><head> <body>ejemplo</<body>ejemplo</

body>body> </head></head>

Page 45: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTD internaDTD interna

<?xml version=“1.0”?><?xml version=“1.0”?> <!DOCTYPE head [<!DOCTYPE head [

– <!ELEMENT head (body)><!ELEMENT head (body)>– <!ELEMENT body <!ELEMENT body

(#PCDATA)>(#PCDATA)>– ]>]>– <head><head>– <body>ejemplo</body><body>ejemplo</body>– </head></head>

Page 46: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

DTD combinadaDTD combinada

DTDDTD

<?xml <?xml version=“1,0”?>version=“1,0”?>

<!ELEMENT head <!ELEMENT head (body)>(body)>

<!ELEMENT body <!ELEMENT body (#PCDATA)>(#PCDATA)>

Documento XMLDocumento XML

<?xml version=“1.0”?><?xml version=“1.0”?> <!DOCTYPE head SYSTEM <!DOCTYPE head SYSTEM

“head.dtd” [“head.dtd” [ <!ENTITY car “coche”><!ENTITY car “coche”> ]>]> <head><head> <body>Ejemplo <body>Ejemplo

&car;</body>&car;</body> </head></head>

Page 47: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Diseño DTDsDiseño DTDs

Las DTDs externas son más fáciles de Las DTDs externas son más fáciles de mantener, ya que los cambios se mantener, ya que los cambios se aplican automáticamente a todas sus aplican automáticamente a todas sus instanciasinstancias

En el subconjunto interno de la DTD se En el subconjunto interno de la DTD se suelen declarar imágenes que sólo se suelen declarar imágenes que sólo se usan en ese documentousan en ese documento

Las declaraciones del subconjunto Las declaraciones del subconjunto interno sobreescriben a las del interno sobreescriben a las del subconjunto externosubconjunto externo

Page 48: Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, 23-25 de octubre 2002

Documentos válidos y bien Documentos válidos y bien formadosformados

Un documento será válido si cumple las Un documento será válido si cumple las restricciones que se indican en su DTDrestricciones que se indican en su DTD

Un documento será bien formato si los Un documento será bien formato si los elementos están anidados correctamente, elementos están anidados correctamente, y si las entidades que referencia se han y si las entidades que referencia se han declaradodeclarado

Un documento puede estar bien formado y Un documento puede estar bien formado y ser no válido, ya que un documento XML ser no válido, ya que un documento XML puede no contener una declaración de tipo puede no contener una declaración de tipo de documentode documento