Está en la página 1de 83

Documentos XML

a) Bien formados b)Vlidos

Esquemas Conceptuales

RECORDANDO
A PERSON WHO NEVER MADE A MISTAKE NEVER TRIED ANYTHING NEW [ALBERT EINSTEIN]
Esquemas Conceptuales 2

Documentos XML
a) Bien formados b) Vlidos

Esquemas Conceptuales

Documentos XML
a) Bien formados
Se apegan a la sintaxis del lenguaje Requerimos

Editores texto plano Navegadores

Esquemas Conceptuales

Documentos XML
b) Vlidos segn un esquema conceptual

(estructura del documento, tipo de datos permitidos, repeticiones)

DTD

Esquemas XML
Elementos, atributos Siguen sintaxis XML Permiten mayor expresividad: nuevos tipos de datos

Define:

Define

Elementos Atributos Entidades Notacin

Esquemas Conceptuales

Validacin
DTD/XSD DTD/ XSD

XML

XML

XML

XML

XML

DTD/XSD Diseo flexible, depende de la interpretacin del XML por el diseador Diseo rgido, hay que apegarse a lo que dice la DTD

XML

Esquemas Conceptuales
DTDs, Esquemas XML

Esquemas Conceptuales

DTD
Document Type Definition

Esquemas Conceptuales

DTD (Definicin de Tipo de Documento )


Es un conjunto de reglas que permiten describir la estructura (elementos, orden, atributos) y tipos de datos permitidos en un documento XML Usada como un mecanismo de validacin de documentos.
Esquemas Conceptuales 9

DTD (Definicin de Tipo de Documento )


Define:
Elementos (ELEMENT) Referenciado Atributos (ATTLIST) en los Entidades (ENTITY) documentos Notaciones (NOTATION) XML junto con la URI que Sintaxis: indique donde <! DOCTYPE nombre[ localizarla . 10 ]> Esquemas Conceptuales

DTD
ELEMENTOS

Esquemas Conceptuales

11

Elemento
Los elementos de una DTD son los bloques primarios de todo documento XML.

Esquemas Conceptuales

12

Declaracin Elemento
Identificador Contenido permitido

<!ELEMENT nombre (modelo de contenido)>


P/e
Cuntas repeticiones son permitidas para un ELEMENTO?.
Esquemas Conceptuales 13

Modelo de contenido
Podemos tener: Tipos predefinidos : #PCDATA, EMPTY, MIXED, ANY Subelementos con determinados smbolos de frecuencia (+,*,?)

Esquemas Conceptuales

14

Ejemplo
DTD en un XML

Esquemas Conceptuales

15

Ejemplo1: Agenda.xml
<?xml version=1.0?> <!DOCTYPE Agenda[ <!ELEMENT Agenda (persona+)>
<!ELEMENT persona
Subelementos

(nombreC,direccin,telfono+,correo_e?)>

<!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT

nombreC (nombrePila, apat, nombrePila (#PCDATA)> apat (#PCDATA)> amat (#PCDATA)>

amat)>

Esquemas Conceptuales

16

Ejemplo
<!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST direccin (#PCDATA)> telfono (#PCDATA)> correo_e (#PCDATA)> telfono tipo (Casa|fijo|celular) #REQUIRED>
los datos -->
17

]> <!-- Aqu vienen


Esquemas Conceptuales

<Agenda> <persona> <nombreC> <nombrePila>Rodrigo Eduardo</nombrePila> <apat>Sanchez</apat> <amat>Martinez</amat> </nombreC> <direccin>Juan Escutia numero 128 colonia Guadalupe del Moral, Deleg. Iztapalapa, Mxico D.F.</direccin> <telfono tipo="casa">5556667</telfono> <telfono tipo="celular">55667788</telfono> <correo_e>lr@gmail.com</correo_e> 18

<persona> <nombreC> <nombrePila>Amelie</nombrePila> <apat>Poulain-Buzet</apat> </nombreC> <direccin>Juan Escutia numero 129 colonia Guadalupe del Moral, Deleg. Iztapalapa, Mxico D.F.</direccin> <telfono tipo="casa">55566789</telfono> <telfono tipo="celular">55990099</telfono> <correo_e>apb@gmail.com</correo_e> <persona> </Agenda> 19

Ejemplo2: receta.xml
Subelementos

<!DOCTYPE receta[ <!ELEMENT


receta (plato,autor?,ingredientes,
preparacin, foto*)>

<!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Esquemas Conceptuales <!ELEMENT

plato (#PCDATA)> autor (nombre, apat, amat)> nombre (#PCDATA)> apat (#PCDATA)> 20 amat (#PCDATA)>

Ejemplo
<!ELEMENT ingredientes (ingrediente+)> <!ELEMENT ingrediente (#PCDATA)> <!ELEMENT preparacin (#PCDATA)> <!ELEMENT foto EMPTY> ]> <!-- Aqu vienen los datos -->
<receta> <plato>huevos con jamn</plato> <autor> <nombre>Carolina</nombre> Esquemas
Conceptuales

21

<apat>Medina</apat>
<amat>Ramrez</amat> </autor> <ingredientes> <ingrediente>huevos c/n </ingrediente> <ingrediente>jamn c/n </ingrediente> <ingrediente>aceite c/n </ingrediente> </ingredientes> <preparacin>Poner en un sartn el aceite, freir el jamn, agregar el huevo batido, cocinar hasta que este cocido </preparacin> Esquemas 22 </receta> Conceptuales

Modelos de contenido
#PCDATA Parser Character Data
<!ELEMENT plato (#PCDATA)>

plato debe contener un tipo de dato analizable


Otro elemento o elementos

<!ELEMENT clase

(profesor, alumno, aula)>


23

<!ELEMENT profesor (#PCDATA)> Esquemas


Conceptuales

Modelos de contenido
EMPTY

El elemento no tiene contenido y se llama elemento vaco.

<!ELEMENT foto EMPTY>


Any

Indica que el elemento puede tener contenido variado: PCDATA, elementos, combinacin de ambos, vaco.
Esquemas Conceptuales 24

Ejemplo
<!ELEMENT articulo ANY>

Esquemas Conceptuales

25

Modelos de contenido
MIXED

Indica que el elemento puede tener caracteres de tipo dato o una mezcla de caracteres y subelementos.

Los contenidos deben estar debidamente especificados.


<!ELEMENT enfasis (#PCDATA)> <!ELEMENT parrafo (#PCDATA | enfasis)>
Esquemas Conceptuales 26

Modelos de contenido
Ejemplo:
<parrafo>Texto que tiene algo <enfasis> enfatizado</enfasis> </parrafo>

Esquemas Conceptuales

27

Smbolos de frecuencia
Smbolo
Ninguno + * ?
Esquemas Conceptuales

Descripcin
El elemento aparece una sola vez [1] Aparece una o ms veces [1..n] Cero veces o puede aparecer muchas veces [0..n] Opcional y aparece slo una vez [0,1]
28

DTD (Definicin de Tipo de Documento )

Define:
Elementos (ELEMENT) Atributos (ATTLIST) Entidades (ENTITY) Notaciones (NOTATION)
Esquemas Conceptuales 29

Atributos
Permite aadir informacin a los elementos de un documento. Un elemento puede tener: atributos * Se utiliza una lista (ATTLIST).
Esquemas Conceptuales 30

Atributos: ATTLIST
<!ATTLIST elemento nombre_del_atributo Tipo Palabra_Clave>

Identificador del elemento

CDATA NMTOKEN ID Enumeracin

#REQUIRED Obligatorio especificar el atributo. Esquemas


Conceptuales

#IMPLIED

#FIXED Valor constante a lo 31 largo del documento

Atributo opcional.

Ejemplos

<!ELEMENT texto (#PCDATA)> <!ATTLIST texto idioma CDATA

#REQUIRED>

Puede contener casi cualquier carcter Obligatorio especificar el atributo.

Esquemas Conceptuales

32

Tipos de atributos
1. Cadenas CDATA (Datos de caracteres)
Pueden ser cualquier secuencia de caracteres a excepcin de los smbolos con significado especial: <,> !, &, ,.

2. ID

Indica que el atributo tiene un nombre definido y un valor para cada instancia del elemento al que se aplica. El valor debe ser nico en todo el Esquemas 33 documento. Conceptuales

Ejemplo: ID
<!ELEMENT empleado (#PCDATA)>
<!ATTLIST empleado nss ID #REQUIRED>

Indica que cada empleado tiene un nss y que dos empleados no pueden tener el mismo

Esquemas Conceptuales

34

Tipos de atributos
3. IDREF

Representa un atributo cuyo valor debe coincidir con el de otro atributo del documento.

Esquemas Conceptuales

35

Ejemplo
<!ATTLIST autor codigo ID #REQUIRED> <!ATTLIST autorPremiado codigo IDREF #REQUIRED>

. . . <autor codigo="A21">...</autor> <autor codigo="A45">...</autor> ... <autorPremiado codigo="A45" />

Esquemas Conceptuales

36

Tipos de atributos
4. Enumeraciones Atributos que solo pueden contener un valor de entre un nmero reducido de opciones proporcionados en una lista.
Proporciona la localizacin de un nm_tel. No se da, se asume (por defecto) que es el de la oficina.

<!ELEMENT telfono (#PCDATA)>


<!ATTLIST telfono lugar (oficina | celular |particular) oficina>
Esquemas Conceptuales 37

Tipos de atributos
5. NMTOKEN (Autentificaciones)
Imponen restricciones sobre los valores de los atributos. Slo acepta cadenas de caracteres: (letras , nmeros, puntos, guiones, y los :)

<!ELEMENT pas EMPTY> <!ATTLIST pas poblacin NMTOKEN #REQUIRED> En XML: <pas poblacin=500000/>
Esquemas Conceptuales

Nota: 500 000 No aceptado por la presencia del espacio en blanco

38

Ejercicios
1. Definir el elemento <foto> con los siguientes
atributos: src (nombre de la foto), fecha (DD-MM-AA).

2. Dar un ejemplo en XML

Esquemas Conceptuales

39

Posibles soluciones
Podemos tener las siguientes estructuras: a) <foto src=acapulco.jpg fecha=12-01-09/> b) <foto src=acapulco.jpg fecha=12-01-09>Vacaciones
en Acapulco en el 2009</foto>
c) <foto src=acapulco.jpg fecha=12-01-09> <comentario autor=Cmed>Vacaciones en Acapulco en el 2009 </comentario> </foto> 40
Esquemas Conceptuales

a) Vaco con atributos


<!ELEMENT foto EMPTY>
<!ATTLIST foto src CDATA #REQUIRED> <!ATTLIST foto fecha CDATA #IMPLIED>
src: obligatorio

fecha: opcional sin valor por defecto

Ejemplo:

<foto src=acapulco.jpg/>
Esquemas Conceptuales 41

Ejercicio
HACER LAS DEFINICIONES DE LOS INCISOS B) Y C)

Esquemas Conceptuales

42

b) No vaco (texto) con atributos


b) <foto src=acapulco.jpg fecha=12-01-09>Vacaciones
en Acapulco en el 2009</foto>

<!ELEMENT foto

(#PCDATA)>

<!ATTLIST foto src CDATA #REQUIRED> <!ATTLIST foto fecha CDATA #IMPLIED>
Esquemas Conceptuales 43

c) Con subelemento y atributos


c) <foto src=acapulco.jpg fecha=12-01-09> <comentario autor=Cmed>Vacaciones en Acapulco en el 2009 </comentario> </foto>

<!ELEMENT foto (comentario)> <!ELEMENT comentario (#PCDATA)>


<!ATTLIST foto src CDATA #REQUIRED fecha CDATA #IMPLIED> <!ATTLIST comentario autor CDATA #IMPLIED>
Esquemas Conceptuales 44

EJEMPLOS
Esquemas Conceptuales 45

Ejemplo:vaco con atributo

<!ELEMENT cdigo EMPTY>


<!ATTLIST cdigo postal #FIXED 09340>

Indica que 09340 es el nico cdigo postal a utilizar

Esquemas Conceptuales

46

Ejemplo: no vaco con atributo


<!ELEMENT mensaje (de, a, texto)>
<!ATTLIST mensaje prioridad (normal | urgente) normal>

Valor normal o urgente

Por defecto es normal

Esquemas Conceptuales

47

ELEMENTOS, ATRIBUTOS
ALGUNAS OBSERVACIONES

Esquemas Conceptuales

48

Elementos vs atributos
Muchos atributos hacen difcil de leer el documento XML. Los atributos son adecuados para representar informacin simple

Datos -> elementos Metadatos-> atributos


Esquemas Conceptuales 49

DTD (Definicin de Tipo de Documento )

Define:
Elementos (ELEMENT) Atributos (ATTLIST) Entidades (ENTITY) Notaciones (NOTATION)
Esquemas Conceptuales 50

ENTIDADES
Permiten guardar un contenido que puede usarse varias veces.

Con lo anterior, un documento grande puede descomponerse en contenidos ms manejables.

Esquemas Conceptuales

51

ENTIDADES
Una entidad tiene un nombre que sirve como referencia a sta. Existen entidades 1. Internas 2. Externas 3. Generales 4. Paramtricas
Esquemas Conceptuales 52

1. ENTIDADES Internas

Esquemas Conceptuales

53

1. ENTIDADES internas
Son abreviaturas definidas en la DTD. No se maneja ningn objeto fsico diferente al del propio documento. Su contenido coincide con el dado en la declaracin.

<!ENTITY nombre valor>


Dnde:

nombre - nombre de la entidad


Esquemas Conceptuales

valor es la cadena de sustitucin correspondiente

54

Ejemplo
<!ENTITY derechos Copyright 2007>
En una entidad interna: Se llama Texto de reemplazamiento al contenido de la entidad. Despus del reemplazamiento, el valor de la entidad pasa a ser parte del documento y como tal es analizada.
Esquemas Conceptuales 55

2. ENTIDADES Externas

Esquemas Conceptuales

56

2. ENTIDADES externas
Su contenido est fuera de la DTD: otro sitio, archivo,... Se hace referencia a su contenido mediante una URI precedida de la palabra PUBLIC o SYSTEM.

Esquemas Conceptuales

57

Sintaxis
<!ENTITY nombre SYSTEM URI>

El Texto de reemplazamiento correspondiente al nombre lo indica SYSTEM o PUBLIC para dirigirse al recurso externo nombrado por el URI (valor de la entidad).

Esquemas Conceptuales

58

Ejemplo
<!ENTITY sitio SYSTEM uam.dtd>
En el XML:

<sitio_uam>&sitio;</sitio_uam>

En la DTD uam.dtd debe estar definida la entidad:

<!ENTITY sitio http://www.uam.mx>


Esquemas Conceptuales 59

3. ENTIDADES paramtricas

Esquemas Conceptuales

60

3. ENTIDADES paramtricas
Permiten agrupar datos dentro de la DTD para escribirlos de forma abreviada. Diseadas para contener listas atributos y modelos de contenido. de

Se caracterizan por un nombre que comienza por %.

Para referenciarla se coloca el nombre entre % y el ;. Esquemas 61


Conceptuales

Sintaxis
<!ENTITY % nombre contenido>

Esquemas Conceptuales

62

Ejemplo
<!ENTITY % tallas pequea|mediana|grande>

Esquemas Conceptuales

63

Ejemplo
<!ELEMENT calcetin (%tallas;)> <!ELEMENT tobillera (%tallas;)> <!ELEMENT media (%tallas;)>

Equivale a: <!ELEMENT calcetin (pequea|mediana|grande)>


Esquemas Conceptuales 64

Entidades en Atributos
Tambin podemos definir entidades para atributos.

Esquemas Conceptuales

65

Ejemplo
<!ENTITY >
% att.comun "color (rojo|negro|blanco) #IMPLIED

precio CDATA #REQUIRED "

<!ELEMENT calcetin (%tallas;)> <!ELEMENT tobillera (%tallas;)> <!ELEMENT media (%tallas;)> <!ATTLIST calcetin %att.comun;> Esquemas
Conceptuales

66

Entidades especiales
&lt; &gt; &amp; &quot; &apos;
Esquemas Conceptuales

< > &


67

Entidades caracter
Es posible definir una entidad caracter, para cualquier smbolo, utilizando el cdigo hexadecimal del mismo.

Sintaxis:

<!ENTITY nom_entidad &#codeHexadecimal;>


Ejemplo:
Esquemas Conceptuales

<!ENTITY ccedilla &#00E7;>

68

(EN DOCUMENTO XML)

DTD INTERNA

Esquemas Conceptuales

69

DTD en documento XML


<?xml version="1.0"?> <!DOCTYPE mensaje [ <!ELEMENT mensaje (para+,de, titulo,cuerpo)> <!ELEMENT para (#PCDATA)> <!ELEMENT de (#PCDATA)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT cuerpo (#PCDATA)> ]> <mensaje> <para>juan.perez@gmail.com</para> <para>too.lopez@gmail.com</para> <de>Carolina@gmail.com</de> <titulo>Aviso</titulo> <cuerpo>La clase del mircoles esta disponible en el aula virtual</cuerpo>

70

Agregar el atributo prioridad (urgente|normal) a mensaje

Esquemas Conceptuales

71

DTD en documento XML


<?xml version="1.0"?> <!DOCTYPE mensaje [ <!ELEMENT mensaje (para+,de, titulo,cuerpo)> <!ELEMENT para (#PCDATA)> <!ELEMENT de (#PCDATA)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT cuerpo (#PCDATA)> ]>

<!ATTLIST mensaje prioridad (urgente|normal) #IMPLIED

<mensaje> <para>juan.perez@gmail.com</para> <para>too.lopez@gmail.com</para> <de>Carolina@gmail.com</de> <titulo>Aviso</titulo> <cuerpo>La clase del mircoles esta disponible en el aula virtual</cuerpo> </mensaje>

72

DTD EXTERNA

Esquemas Conceptuales

73

DTD fuera de documento XML


<?xml version="1.0"?> <!DOCTYPE mensaje SYSTEM Estructura_mensaje.dtd">

<mensaje> <para>juan.perez@gmail.com</para> <de>Carolina</de> <titulo>Aviso</titulo> <cuerpo>La clase del mircoles esta disponible en el aula virtual</cuerpo> </mensaje>

Esquemas Conceptuales

74

mensaje.dtd
<!ELEMENT mensaje (para+,de, titulo,cuerpo)> <!ELEMENT para (#PCDATA)> <!ELEMENT de (#PCDATA)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT cuerpo (#PCDATA)>
<!ATTLIST mensaje prioridad (urgente|normal) #IMPLIED>

Esquemas Conceptuales

75

Ejercicio
XML-DTD

Esquemas Conceptuales

76

Dado el cdigo XML siguiente, realizar las actividades:

1.- Es un documento bien formado? Si no lo es, haga las modificaciones correspondientes 2. Haga el rbol XML correspondiente a la estructura del documento

3. Proponga la DTD externa planeacion.dtd. 77 Utilizar entidades.


Esquemas Conceptuales

Proponer la DTD para el XML siguiente


<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE planeacion SYSTEM "planeacion.dtd"> <asesoria></asesoria> </datos_profesor> <datos_uea> <clave></clave> <objetivos> <objetivo></objetivo> </objetivos> <aulavirtual></aulavirtual> <horario_teoria> <dia></dia> <hora></hora> <lugar></lugar> </horario_teoria> <horario_practica> <dia></dia> <hora></hora> <lugar></lugar> </horario_practica> </datos_uea> </datos_gral>

<planeacion trimestre=""> <datos_gral> <datos_profesor> <nom> <nombre></nombre> <apat></apat> <amat></amat> </nom> <email></email> <oficina></oficina> <pageweb></pageweb>

78

Aqu su propuesta

Duracin: 30-40 minutos

Esquemas Conceptuales

79

Bien formado?

Esquemas Conceptuales

80

2.-Sol. rbol
completar

planeacin @trimestre datos_gral

datos_profesor nom email oficina pageweb asesoria

datos_uea

81

3.- Planeacion.dtd
Utilizar una entidad paramtrica

Esquemas Conceptuales

82

Ejercicios adicionales

Esquemas Conceptuales

83