XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf ·...

35
XML y Bases de datos Modelado de datos XML usando DTDs Amparo L´ opez Gaona Agosto 2008 Amparo L´ opez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 1 / 52

Transcript of XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf ·...

Page 1: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

XML y Bases de datosModelado de datos XML usando DTDs

Amparo Lopez Gaona

Agosto 2008

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 1 / 52

Page 2: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Documentos bien formados

Un documento bien formado es el que cumple con la especificacion XML,que dice que:

Empieza especificando que se trata de un documento XML.

Tiene un elemento raız.

Tiene nombres unicos de atributos.

El valor de cada atributo se especifica entre comillas.

No tiene marcas sin cerrar o mal cerradas.

Solo tiene caracteres UNICODE validos.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 3 / 52

Page 3: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

... Documentos bien formados

<?xml version="1.0" encoding="ISO-8859-1"?><departamento><empleado id="J.P"><nombre>Juan Pardo</nombre><email>[email protected]</email>

</empleado>

<empleado id="B.S"><nombre>Benito Salas</nombre><email>[email protected]</email>

</empleado>

<empleado id="A.M"><nombre>Alicia Mata</nombre><url href="http://www.yahoo.com/~amata/"/>

</empleado></departamento>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 5 / 52

Page 4: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

... Documentos bien formados

<?xml version="1.0" encoding="ISO-8859-1"?><departamento><empleado id="J.P"><nombre>Juan Pardo</nombre><email>[email protected]</email1>

</empleado>

<empleado id="B.S"><nombre>Benito Salas</nombre><email>[email protected]</email>

</empleado>

<empleado id="A.M"><nombre>Alicia Mata</nombre><url href="http://www.yahoo.com/~amata/"/>

</empleado></departamento>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 7 / 52

Page 5: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Documentos validos

Una de las innovaciones de XML es que permite especificar de maneradeclarativa la estructura o esquema del documento.Verificar que un documento cumpla con las especificaciones se denominavalidacion.La forma de definir esquemas es por medio de:

DTD (Document Type Definition). Esta especificado como parteestandar de XML.

Esquemas (XML Schema Definition XSD).

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 8 / 52

Page 6: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

DTDs

La DTD (Document Type Definition) es una gramatica que especificacuales elementos pueden estar en un documento; para cada unoque elementos puede y debe contener y en cual orden.

Es una gramatica libre de contexto extendida. Pues no tiene sımbolosterminales.

Sea Σ un alfabeto finito de etiquetas. Una DTD consta de unconjunto de reglas de la forma e → r donde e ∈ Σ y r es unaexpresion regular sobre Σ.

De aquı que pueda usarse como estandar para intercambio dedocumentos si las partes se ponen de acuerdo.

Por ejemplo: estructuras moleculares, facturas, etc.

Los componentes que se definen en una DTD son: elementos,atributos, entidades, PCDATA y CDATA.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 9 / 52

Page 7: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Declaracion de elementos en una DTD

Todo elemento permitido en el documento debe estar declarado en laDTD.Sintaxis:

<!ELEMENT nombre contenido>

El nombre puede ser cualquier cadena, solo que no debe empezar con & nicon XML.

Contenido:

Sin contenido.

Solo texto.

Solo elementos.

Mixto.

Sin restricciones.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 10 / 52

Page 8: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Declaracion de elementos en una DTD

Todo elemento permitido en el documento debe estar declarado en laDTD.Sintaxis:

<!ELEMENT nombre contenido>

El nombre puede ser cualquier cadena, solo que no debe empezar con & nicon XML. Contenido:

Sin contenido.

Solo texto.

Solo elementos.

Mixto.

Sin restricciones.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 10 / 52

Page 9: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Declaracion de elementos en una DTD

Todo elemento permitido en el documento debe estar declarado en laDTD.Sintaxis:

<!ELEMENT nombre contenido>

El nombre puede ser cualquier cadena, solo que no debe empezar con & nicon XML. Contenido:

Sin contenido.

Solo texto.

Solo elementos.

Mixto.

Sin restricciones.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 10 / 52

Page 10: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Elementos vacıos

Como su nombre lo indica, no tienen contenido. Si tiene algunainformacion lo hara en sus atributos.Sintaxis:

<!ELEMENT nombre EMPTY>

Ejemplo de declaracion en la DTD:

<!ELEMENT url EMPTY>

Ejemplo de uso de elementos vacıos:

<url href="http://www.fciencias.unam.mx/~alg/"></url><url href="http://www.fciencias.unam.mx/~alg/"/>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 12 / 52

Page 11: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Contenido solo texto

Sintaxis:

<!ELEMENT nombre (#PCDATA)>

#PCDATA = (Parser Character Data)Ejemplo de declaracion en la DTD:

<!ELEMENT pais (\#PCDATA)>

Ejemplo de uso:

<pais>Mexico</pais>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 14 / 52

Page 12: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Contenido solo elementos

Sintaxis:

<!ELEMENT nombre modeloDeContenido>

El modeloDeContenido se forma escribiendo entre parentesis la lista de lossubelementos separados por comas.

Sin sımbolo, especifica que se debe usar una vez.

+ especifica el al menos una vez este elemento.

* especifica el uso de varias veces inclusive ninguna.

? especifica el uso o no del elemento.

| da la opcion de usar uno u otro elemento.

() para tratar como unidad un grupo de elementos.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 15 / 52

Page 13: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

... Contenido solo elementos

Ejemplo de declaracion en la DTD:

<!ELEMENT NombreP (Nombre, ApellidoP, ApellidoM)>

<!ELEMENT NombreP (Nombre+, ApellidoP, ApellidoM?)>

<!ELEMENT resumen (educacion | experiencia)+, pasatiempos?, referencias*)>

Ejemplo de uso:

<nombreP><Nombre> Amparo </Nombre><ApellidoP> L’opez </ApellidoP><ApellidoM> Gaona </ApellidoM>

</nombreP>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 17 / 52

Page 14: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

... Contenido solo elementos

Ejemplo de declaracion en la DTD:

<!ELEMENT NombreP (Nombre, ApellidoP, ApellidoM)>

<!ELEMENT NombreP (Nombre+, ApellidoP, ApellidoM?)>

<!ELEMENT resumen (educacion | experiencia)+, pasatiempos?, referencias*)>

Ejemplo de uso:

<nombreP><Nombre> Amparo </Nombre><ApellidoP> L’opez </ApellidoP><ApellidoM> Gaona </ApellidoM>

</nombreP>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 17 / 52

Page 15: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

... Contenido solo elementos

Ejemplo de declaracion en la DTD:

<!ELEMENT NombreP (Nombre, ApellidoP, ApellidoM)>

<!ELEMENT NombreP (Nombre+, ApellidoP, ApellidoM?)>

<!ELEMENT resumen (educacion | experiencia)+, pasatiempos?, referencias*)>

Ejemplo de uso:

<nombreP><Nombre> Amparo </Nombre><ApellidoP> L’opez </ApellidoP><ApellidoM> Gaona </ApellidoM>

</nombreP>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 17 / 52

Page 16: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Contenido mixto

Los elementos que contienen texto y elementos se denominan de contenidomixto. Sintaxis:

<!ELEMENT nombre (#PCDATA | listaDeElementos)*>

Ojo: en la declaracion el #PCDATA debe ir primero.Limita los elementos en la lista pero no limita ni el orden ni el numero deveces en que debe aparecer.Ejemplo de declaracion en la DTD:<!ELEMENT envio (#PCDATA calleNum ciudad cp pais)>Ejemplo de uso:

<envio>Srita. Andrea L’opez<calleNum>Tlalcoligia 98</calleNum><ciudad> M’exico D.F.</ciudad> <cp>14440</cp><pais>M’exico</pais>

</envio>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 19 / 52

Page 17: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Contenido sin restriccion

Sintaxis:

<!ELEMENT nombre ANY>

Son como elementos de contenido mixto pero sin ningun control.De preferencia no usarlos.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 20 / 52

Page 18: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Declaracion de atributos en una DTD

La declaracion de todo atributo empieza con <!ATTLIST seguida de laespecificacion de:

El nombre del elemento al cual pertenece el atributo.

El nombre del atributo.

El tipo del atributo.

El valor por omision del atributo.

>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 21 / 52

Page 19: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Tipos de atributo

CDATA. Cadena de texto.

ID. Nombre unico, en el documento, entre los atributos.

IDREF. Nombre de atributo usado como valor de un atributo ID.

IDREFS. Lista de IDREF separados por espacios en blanco.

ENTITY. Nombre de una entidad.

ENTITIES. Lista de entidades separadas por espacios en blanco.

NOTATION. Nombre de una notacion.

enumeracion. Lista con los valores permitidos para ese atributo, cadauno separado por una barra vertical.

NMTOKEN. Cualquier cadena de uno o mas caracteres. A diferencia deun nombre XML, este puede empezar con un dıgito.

NMTOKENS. Una lista de nombres de tokens separados por espacios enblanco.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 22 / 52

Page 20: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Valor para el atributo

#REQUIRED. Se debe especificar valor para este atributo.

#IMPLIED. El valor para este atributo es opcional.

#FIXED "valor". El atributo siempre tiene el valor especificado.

"valor" es el valor por omision de este atributo.

Ejemplo

<!ATTLIST jugador equipo CDATA #REQUIRED><!ATTLIST jugador posicion (1B | 2B | 3B | SS | pitcher | catcher

| jardinero) "pitcher">

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 24 / 52

Page 21: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

DTD para bibliografıas

<!ELEMENT Bibliography (Book | Paper)*><!ELEMENT Book (Title, Authors, Publisher?, Remark?)><!ATTLIST Book ISBN CDATA #REQUIRED Edition CDATA #IMPLIED><!ELEMENT Paper (Title, Authors, Year?, Pages?, URL?)><!ELEMENT Title (#PCDATA)><!ELEMENT Authors (Author+)><!ELEMENT Publisher (#PCDATA)><!ELEMENT Remark (#PCDATA)><!ELEMENT Author (#PCDATA | (FirstName, LastName))><!ELEMENT FirstName (#PCDATA)><!ELEMENT LastName (#PCDATA)><!ELEMENT Year (#PCDATA)><!ELEMENT URL (#PCDATA)><!ELEMENT Pages (First, Last)><!ELEMENT First (#PCDATA)><!ELEMENT Last (#PCDATA)>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 26 / 52

Page 22: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

DTD para bibliografıas

Existen dos formas de especificar en el documento XML que se va a usaruna DTD:

Incluir la DTD en el documento:<!DOCTYPE elementoRaiz [...]>

Hacer referencia a la DTD desde el documento:<!DOCTYPE elementoRaiz SYSTEM “URI de referencia”>Ejemplos:

<?xml version = "1.0" standalone = "no"?><!doctype Bibliografia system "Bibliografia.dtd">

<!doctype Bibliografia system"http://www.fciencias.unam.mx/dtds/Bibliografia.dtd">

Un documento bien formado que no incluye una DTD no puede ser valido.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 28 / 52

Page 23: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Ejemplo de un documento XML

<?xml version="1.0" standalone="yes"?>

<Bibliography>

<Book ISBN="ISBN-0-13-035300-0" Edition="2nd">

<Title>A First Course in Database Systems</Title>

<Authors>

<Author>

<FirstName>Jeffrey</FirstName>

<LastName>Ullman</LastName>

</Author>

<Author>

<FirstName>Jennifer</FirstName>

<LastName>Widom</LastName>

</Author>

</Authors>

<Publisher> Addison-Wesley </Publisher>

</Book>

<Book ISBN="ISBN-0-13-031995-3" >

<Title>Database Systems: The Complete Book</Title>

<Authors>

<Author> Hector Garcia-Molina </Author>

<Author>

<FirstName>Jeffrey</FirstName>

<LastName>Ullman</LastName>

</Author>

<Author>

<FirstName>Jennifer</FirstName>

<LastName>Widom</LastName>

</Author>

</Authors>

<Remark>

Amazon.com says: Buy this book bundled with "A First Course,"

it’s a great deal!

</Remark>

</Book>

</Bibliography>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 30 / 52

Page 24: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Referencias

<?xml version="1.0" standalone="no"?>

<!DOCTYPE Bibliografia SYSTEM "Bibliografia.dtd">

<Bibliography>

<Book ISBN="ISBN-0-13-035300-0" Edition="2nd"> ... </Book>

<Book ISBN="ISBN-0-13-031995-3">

<Title>Database Systems: The Complete Book</Title>

<Remark>

Amazon.com says: Buy this book bundled with

<BookRef book="ISBN-0-13-035300-0"></BookRef>, It’s a great deal!

</Remark>

</Book>

<Paper Ident = "Abi99" Referencias="ISBN-0-13-035300-0">

<Author>

<Firstnombre> Serge </Firstnombre> <Lastnombre> Abiteboul </Lastnombre>

</Author>

<Title> Quering semistructured data </Title>

</Paper>

<Paper Ident = "Via01" Referencias="Abi99,ISBN-0-13-035300-0"> ... </Paper>

</Bibliography>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 32 / 52

Page 25: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

La DTD debe cambiar.

<!DOCTYPE Bibliografia<!ELEMENT Bibliography (Book | Paper)*><!ELEMENT Book (Title, Authors, Publisher?, Remark?)><!ATTLIST Book ISBN ID #REQUIRED Edition CDATA #IMPLIED><!ELEMENT Paper (Title, Authors, Year?, Pages?, URL?)><!ATTLIST Paper Ident ID #REQUIRED Referencias IDREFS #REQUIRED><!ELEMENT Title (#PCDATA)><!ELEMENT Authors (Author+)><!ELEMENT Remark (#PCDATA | BookRef)*><!ELEMENT BookRef EMPTY><!ATTLIST BookRef book IDREF #REQUIRED><!ELEMENT Author ( (FirstName, LastName) | #PCDATA)><!ELEMENT FirstName (#PCDATA)><!ELEMENT LastName (#PCDATA)><!ELEMENT Year (#PCDATA)><!ELEMENT URL (#PCDATA)><!ELEMENT Pages (First, Last)><!ELEMENT First (#PCDATA)><!ELEMENT Last (#PCDATA)>>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 34 / 52

Page 26: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Entidades

Se utilizan para definir variables/macro.Sintaxis:

<!ENTITY nombre definicion>

Ejemplo de declaracion:

<!ENTITY alg "&#169;2008 Amparo L\’opez Gaona ">

Ejemplo de uso:

.... &alg; ...

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 36 / 52

Page 27: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Atributos vs Elementos

Ventajas de los atributos:

Pueden limitar su valor a una lista predefinida.

Pueden tener un valor predefinido.

Son concisos.

Son mas faciles de usar que los elementos.

Desventajas de los atributos:

No son convenientes para cadenas grandes de texto.

No pueden contener informacion anidada.

No pueden omitirse los espacios en blanco en su valor.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 37 / 52

Page 28: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Ejercicio

Crear la DTD

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE departamento SYSTEM "departamento.dtd"><departamento><empleado id="J.P"><nombre>Juan Pardo</nombre><email>[email protected]</email>

</empleado><empleado id="B.S"><nombre>Benito Salas</nombre><email>[email protected]</email>

</empleado><empleado id="A.M"><nombre>Alicia Mata</nombre><url href="http://www.yahoo.com/~amata/"/>

</empleado></departamento>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 39 / 52

Page 29: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Solucion

<!ELEMENT departamento (empleado)*><!ELEMENT empleado (nombre, (email | url))><!ATTLIST empleado id CDATA #REQUIRED><!ELEMENT nombre (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT url EMPTY><!ATTLIST url href CDATA #REQUIRED>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 41 / 52

Page 30: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Otro Ejercicio

<ciudades><ciudad> <sol><nombre>Acapulco</nombre> <salida>5:23</salida><min>34</min> <puesta>6:41</puesta><max>19</max> </sol><tiempo valor ="Soleado"/> </ciudad><mar>poco oleaje</mar><sol> <ciudad><salida>6:08</salida> <nombre>M\’exico</nombre><puesta>7:05</puesta> <min>25</min>

</sol> <max>14</max></ciudad> <tiempo valor="Lluvia ligera"/>

<sol><ciudad> <salida>7:01</salida><nombre>Mazatl\’an</nombre> <puesta>8:06</puesta><min>32</min> </sol><max>20</max> </ciudad><tiempo valor ="Soleado"/> ...<mar>Poco oleaje</mar> </ciudades>Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 43 / 52

Page 31: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Solucion

<!ELEMENT ciudades (ciudad)*><!ELEMENT ciudad (nombre, min, max,tiempo, mar? sol)><!ELEMENT nombre (#PCDATA)><!ELEMENT min (#PCDATA)><!ELEMENT max (#PCDATA)><!ELEMENT tiempo EMPTY><!ATTLIST tiempo valor (Soleado | LluviaLigera | Nublado) "Soleado"><!ELEMENT mar (#PCDATA)><!ELEMENT sol (salida, puesta)><!ELEMENT salida (#PCDATA)><!ELEMENT puesta (#PCDATA)>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 45 / 52

Page 32: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Esquemas

Un esquema es una forma de definir la estructura de los documentos XML.Al igual que las DTDs los esquemas describen elementos y su modelo decontenido.Los esquemas difieren de las DTD en que:

Se escriben como documentos XML.

Son completamente compatibles con uso de espacios de nombre.

Pueden asignar a un elemento un tipo de datos como entero, fecha,etc.

La validacion del documento incluye ademas de la estructura delelemento su contenido.

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 46 / 52

Page 33: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

DTD para ordenes de compra

<!ELEMENT Orden (Cliente, Producto+, Subtotal, IVA, Embarque, Total)>

<!ELEMENT Cliente (#PCDATA)>

<!ATTLIST Cliente id ID #REQUIRED>

<!ELEMENT Producto (Nombre, Cantidad, Precio, Descuento?, EnviarA, Mensaje?)>

<!ELEMENT Nombre (#PCDATA)>

<!ELEMENT Cantidad (#PCDATA)>

<!ELEMENT Precio (#PCDATA)>

<!ATTLIST Precio moneda (USD | CAN | GBP) #REQUIRED>

<!ELEMENT Descuento (#PCDATA)>

<!ELEMENT EnviarA (Destinatario?, Calle+, Ciudad, Estado, CP)>

<!ELEMENT Destinatario (#PCDATA)>

<!ELEMENT Calle (#PCDATA)>

<!ELEMENT Ciudad (#PCDATA)>

<!ELEMENT Estado (#PCDATA)>

<!ELEMENT CP (#PCDATA)>

<!ELEMENT Mensaje (#PCDATA)>

<!ELEMENT Subtotal (#PCDATA)>

<!ATTLIST Subtotal moneda (USD | CAN | GBP) #REQUIRED>

<!ELEMENT IVA (#PCDATA)>

<!ATTLIST IVA moneda (USD | CAN | GBP) #REQUIRED tasa CDATA "0.0">

<!ELEMENT Embarque (#PCDATA)>

<!ATTLIST Embarque moneda (USD | CAN | GBP) #REQUIRED

metodo (USPS | UPS | Overnight) "UPS">

<!ELEMENT Total (#PCDATA)>

<!ATTLIST Total moneda (USD | CAN | GBP) #REQUIRED>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 48 / 52

Page 34: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

Esquema para ordenes de compra (dividirlo en 2 0 3frames)

<?xml version="1.0"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="Orden">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Cliente">

<xsd:complexType>

<xsd:simpleContent>

<xsd:extension base="xsd:string">

<xsd:attribute name="id" type="xsd:ID"/>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="Producto" maxOccurs="unbounded">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Nombre" type="xsd:string"/>

<xsd:element name="Cantidad"

type="xsd:positiveInteger"/>

<xsd:element name="Precio" type="TipoMoneda"/>

<xsd:element name="Descuento" type="xsd:decimal" minOccurs="0"/>

<xsd:element name="EnviarA">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Destinatario" type="xsd:string"

minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="Calle" type="xsd:string"/>

<xsd:element name="Ciudad" type="xsd:string"/>

<xsd:element name="Estado" type="xsd:string"/>

<xsd:element name="CP" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Mensaje" type="xsd:string" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Subtotal" type="TipoMoneda"/>

<xsd:element name="IVA">

<xsd:complexType>

<xsd:simpleContent>

<xsd:extension base="TipoMoneda">

<xsd:attribute name="tasa" type="xsd:decimal"/>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="Embarque">

<xsd:complexType>

<xsd:simpleContent>

<xsd:extension base="TipoMoneda">

<xsd:attribute name="Metodo" type="xsd:string"/>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="Total" type="TipoMoneda"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:complexType name="TipoMoneda">

<xsd:simpleContent>

<xsd:extension base="xsd:decimal">

<xsd:attribute name="Moneda" type="xsd:string"/>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:schema>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 50 / 52

Page 35: XML y Bases de datos Modelado de datos XML usando DTDshp.fciencias.unam.mx/~alg/xmlbd/dtd.pdf · 2008. 8. 21. · XML y Bases de datos Modelado de datos XML usando DTDs Amparo Lopez

DTD para los esquemas (dividirlo en 2 0 3 frames)

<!ENTITY %datatypes "(entity |entities |enumeration |id |idref |idrefs |

nmtoken |nmtokens |notation |string |bin.base64 |binhex |boolean |

char |date |dateTime |dateTime.tz | fixed.14.4 |float |int |number |

time |time.tz |i1 |i2 |i4 |r4 |r8 |ui1 | ui2 | ui4 | uri |uuid)" >

<!ELEMENT Schema (AttributeType | ElementType | description )*>

<!ATTLIST Schema name CDATA #IMPLIED

xmlns:dt CDATA #FIXED>

<!ELEMENT AttributeType (datatype | description )*>

<!ATTLIST AttributeType

name ID #REQUIRED

default CDATA #IMPLIED

dt:type %datatypes; #IMPLIED

dt:values CDATA #IMPLIED

requiered (yes | no) #IMPLIED

xmlns:dt CDATA #FIXED>

<!ELEMENT ElementType (datatype |description |AttributeType |attribute|

element |group)*>

<!ATTLIST ElementType name ID #REQUIRED

model (open | closed) #IMPLIED

content (empty |textOnly |eltOnly |mixed) #IMPLIED

order (one | seq | many) #IMPLIED

dt:type %datatypes; #IMPLIED

dt:values CDATA #IMPLIED

requiered (yes | no) #IMPLIED

xmlns:dt CDATA #FIXED>

<!ELEMENT description (#PCDATA)>

<!ELEMENT datatype (description)*>

<!ATTLIST datatype dt:type %datatypes; #IMPLIED

xmlns:dt CDATA #FIXED>

<!ELEMENT attribute (description)*>

<!ATTLIST attribute

type IDREF #REQUIRED

default CDATA #IMPLIED

requiered (yes | no) "no">

<!ELEMENT element (description)*>

<!ATTLIST element

type IDREF #REQUIRED

minOcurrs CDATA #IMPLIED

maxOcurrs CDATA #IMPLIED>

<!ELEMENT group (group |element | description)*>

<!ATTLIST group

minOcurrs CDATA #IMPLIED

maxOcurrs CDATA #IMPLIED

order (one | seq | many) #IMPLIED>

Amparo Lopez Gaona () XML y Bases de datos Modelado de datos XML usando DTDs Agosto 2008 52 / 52