47
¿Cuándo usar un DTD? Dos tipos de documentos XML Siglas y más Siglas… Historia y Objetivos ¿Si todo el mundo ya conoce HTML, porqué no seguir usándolo? ¿Por qué usar XML para crear estructuras de datos? Transformar datos en información ¿Para qué podemos usar XML? ¿Qué es XML? Introducción a XML Los Datos Semi-Estructurados

¿Cuándo usar un DTD?

  • Upload
    yehudi

  • View
    105

  • Download
    0

Embed Size (px)

DESCRIPTION

Introducción a XML. Los Datos Semi-Estructurados. ¿Qué es XML?. ¿Para qué podemos usar XML?. Transformar datos en información. ¿Por qué usar XML para crear estructuras de datos?. ¿Si todo el mundo ya conoce HTML, porqué no seguir usándolo?. Historia y Objetivos. Siglas y más Siglas…. - PowerPoint PPT Presentation

Citation preview

Page 1: ¿Cuándo usar un DTD?

¿Cuándo usar un DTD?

Dos tipos de documentos XML

Siglas y más Siglas…

Historia y Objetivos

¿Si todo el mundo ya conoce HTML, porqué no seguir usándolo?

¿Por qué usar XML para crear estructuras de datos?

Transformar datos en información

¿Para qué podemos usar XML?

¿Qué es XML?

Introducción a XML

Los Datos Semi-Estructurados

Page 2: ¿Cuándo usar un DTD?

Datos Semiestructurados

Características: Pueden ser irregulares y no respetan un esquema particular.

Puede ser incompletos.

La estructura puede evolucionar muy rápidamente.

Sus componentes pueden cambiar de tipo.

Nuevos datos pueden no respetar la estructura de los datos existente previamente.

Alta frecuencia de modificaciones en las propiedades estructurales.

Datos débilmente “tipados”.

Son descritos por sí mismos (no existe una separación entre la descripción del tipo, de su estructura y de su valor).

Pueden no tener esquema o el esquema impone restricciones débiles sobre los datos.

Page 3: ¿Cuándo usar un DTD?

Datos Semi-Estructurados

Nombre:”Luis Perez”, Tel:2157786, email: [email protected]

Nombre:”Juan”, Apellido: “Rodriguez”, Tel:976789, email: [email protected]

Nombre:”Jose”, Apellido: “Martinez”, Altura:183

Nombre:”Marcos Rodriguez”, Tel:011-976780, profesion:

Ingeniero Primer Apellido: “Gonzalez”, Segundo Apellido:”Perez”, Primer

Nombre: “Maria”, Segundo Nombre:”Eugenia”, Tel Casa: “945555”, Tel Trab: “478888”, Cel: “012-99908” , Dir: (Calle: “2”, Dpto:”53”, Bº:”La Colina”, Ciudad:”jujuy”), email:[email protected], profesion:”Medico”, lugarTrabajo:(Empresa:”Centro de Salud”, ciudad:”Jujuy”)

Page 4: ¿Cuándo usar un DTD?

¿Por qué existen Datos Semiestructurados?

Objetos del mundo de real se describen de una manera particular.

Muchas fuentes de datos como el WWW deberían ser tratadas como BD, pero no se puede por la ausencia de un esquema. -Cada fuente de datos publica sus datos a su manera.

-La Web no tiene estructura, se puede pensar como un enorme grafo.

Es deseable tener un formato flexible para elIntercambio e Integración de Datos que provienen de distintas BDs.

A veces es deseable visualizar la información estructurada como semiestructurada (por ej. para poder hacer browsing).

Page 5: ¿Cuándo usar un DTD?

XML (eXtensible Markup Language) es un lenguaje orientado a identificar estructuras de datos en un documento.

● La especificación XML define un estándar de cómo se debe realizar el marcado de expresiones en un documento no estructurado para definir así una determinada estructura de datos.

● La especificación XML no define el contenido de las estructuras de datos, son los expertos de cada dominio y las entidades reguladoras quienes pueden utilizar el estándar XML para concensuar un lenguaje común que permita transformar los documentos no estructurados en estructuras procesables por un sistema ("machine readable system“).

● Cuando hablamos de un documento nos referimos no sólo al concepto tradicional de documento en papel o soporte electrónico sino a todos los tipos de documentos actuales: páginas Web, correo electrónico, transacciones de comercio electrónico, etc.

Page 6: ¿Cuándo usar un DTD?

● Un documento XML es un documento que puede ser leído y entendido por una persona y a la vez puede ser procesado por un sistema para extraer información.

¿Para qué podemos usar XML?

● XML permite definir estructuras de datos susceptibles de ser procesadas por una gran variedad de aplicaciones y realizar intercambio electrónico de datos.

El hecho de transformar datos en información, añadiéndoles un significado concreto y asociándolos a un contexto, siempre genera valor en la cadena de utilización de los datos fuente por parte de sus clientes. Consideremos la siguiente expresión:

"Con fecha 30.05.00, remito el paciente J.J.C. HC 334455 a Neumología por presentar bronquitis aguda con broncoespasmo"

Page 7: ¿Cuándo usar un DTD?

Obviamente la pieza de texto mostrada, aunque no disponga de ninguna estructura subyacente, es significativa para el especialista que sabe de antemano que: HC 334455 es el número de historia clínica de un paciente, que Neumología es un punto de asistencia ambulatorio para las consultas externas de un hospital y que bronquitis aguda es un diagnóstico. Sin embargo, si mediante un agente de búsqueda intentaramos recuperar información relativa a los casos clínicos tratados, la pieza de texto que hemos descrito sería presentada como cualquier otro resultado, es decir sin conexión con el propósito de dicha búsqueda.

Cuando se usan datos semiestructurados –similares a objetos sin esquema- la información que corresponde normalmente al esquema está contenida en los datos, lo cual se denomina “auto-descripción” (self-describing). En estos casos el grado de estructuración depende de la aplicación. En XML (opcionalmente) podemos generar dicha estructuración (ver DTD y XML-Schema).

Page 8: ¿Cuándo usar un DTD?

Transformar datos en información

<Derivacion>Con fecha <FechaEntrada>30.05.00</FechaEntrada>remito el paciente<Paciente>HC334455</Paciente> a <Servicio>Neumología</Servicio>por presentar <Diagnostico>bronquitis aguda</Diagnostico> con broncoespasmo</Derivacion>

Las marcas XML añaden el contexto necesario para indicar tanto a las personas como a los sistemas preparados para tal fin, que estamos realizando un derivación donde HC334455 identifica la historia clínica de un paciente; que Neumología es el nombre identificador de un servicio de consulta externa del hospital hacia donde es remitido el paciente, y que bronquitis aguda es el descriptor de un diagnóstico. Conociendo todo esta estructura podremos obtener recuperaciones de información mucho más relevantes y ajustadas a nuestros propósitos de búsqueda.

Page 9: ¿Cuándo usar un DTD?

¿Por qué usar XML para crear estructuras de datos?

Cada fabricante de hardware y software siempre creó sus propios mecanismos “propietarios” para añadir contexto a datos fuente y definir estructuras de datos. La ventaja de XML es que es un estándar. Esto significa que podemos estructurar datos con la especificación XML, almacenarlos en una base de datos, producir documentos en entornos multimedia (web, CD-ROM), realizar búsquedas o ejecutar cualquier proceso usando herramientas de distintos proveedores.

XML establece un formato de datos que representa un estándar abierto independiente de fabricantes y plataformas (S.O.)

La mayoría de las compañías, con la finalidad de intercambiar información sin tener problemas con el formato del soporte,han optado por seleccionar los estándares más aceptados para sus herramientas de información (un buen ejemplo son los procesadores de textos y los gestores de correo electrónico)

Page 10: ¿Cuándo usar un DTD?

¿Si todo el mundo conoce HTML, por qué no seguir usándolo?

HTML (Hypertext Mark Up Language) es el estándar de facto en la web. Dispone de un número limitado de etiquetas (tags) diseñadas en su mayoría para mostrar textos en los navegadores (browsers). Es útil para definir la presentacion de las páginas web pero no para describir la información que éstas contienen.

Por ejemplo, se puede usar HTML para dar formato a una tabla, pero no para describir los elementos de datos que componen dicha tabla.

XML fue creado originalmente para poder utilizar documentos con estructuras complejas dentro de la web.

Page 11: ¿Cuándo usar un DTD?

XML es una variante evolutiva del SGML (Standard Generalized Markup Language), e incorpora una serie de nuevos elementos con respecto al HTML. Las versiones actuales de IE y Netscape soportan la especificación XML (aunque es probable que HTML no desaparezca pronto de la web).

Page 12: ¿Cuándo usar un DTD?

Los tres pilares de XML, Extensibilidad, Estructura y Validez.

Page 13: ¿Cuándo usar un DTD?

XML, con su capacidad para definir cualquier nombre de etiqueta y, por lo tanto, marcar de manera adecuada una pieza de datos (o una colección de piezas anidadas), ofrece una gran potencia y flexibilidad para estructurar documentos y realizar intercambio electrónico de datos de manera eficiente.

A diferencia del HTML (que dispone de un número fijo y predeterminado de etiquetas) con XML no existe ninguna limitación en cuanto al número ni a la diversidad de etiquetas posibles.

Cada diseñador de documentos, construye estructuras de datos asignando aquellas etiquetas que mejor describan sus datos y que definan un lenguaje común que facilite el intercambio de datos en su ámbito de trabajo.

•XML describe una nueva clase de objetos, los documentos XML, que almacenan informacion estructurada dividida en tres partes: estructura, contenido y presentación.

Page 14: ¿Cuándo usar un DTD?

Bajo el término "documento“ puede describirse desde una estructura de datos sencilla como un simple mensaje (que no requiere anidamiento), a algo tan grande y complejo como la Enciclopedia Británica que dispondrá de una gran cantidad de tipos de elementos y muchos niveles en sus anidamientos.

Resumiendo, XML es parecido a HTML pero:

- No usa un conjunto fijo de etiquetas o tags X = “extensible”

- No tiene fijada la semantica de las etiquetas ● semántica determinada por la aplicación

● presentación determinada por separado (‘stylesheet’). El uso de XML y XSLT (Extensible Stylesheet Language Transformations) permite separar contenido y presentación.

- No tiene fijada la estructura ● esquemas definidos por el usuario (user-defined schemas)

Page 15: ¿Cuándo usar un DTD?

XML: Motivación• El intercambio de datos es crítico en el mundo actual

– Ejemplos:• En la Banca: transferencia de fondos• Entre empresas: procesamiento de órdenes• En el Intercambio de datos científicos: Quimica (ChemML) Genética (BSML: Bio Sequence Markup Language)

• Entre organizaciones el flujo de información sobre papel está siendo reemplazado por el flujo electrónico de información.

• Cada área de aplicación tiene su propio conjunto estandar para representar información.

• XML se ha convertido en la base para la generación de nuevos formatos de intercambio de datos.

Page 16: ¿Cuándo usar un DTD?

Historia y Objetivos

XML fue creado al amparo del Word Wide Web Consortium (W3C) organismo que vela por el desarrollo de WWW partiendo de las amplias especificaciones de SGML. Su desarrollo se comenzó en 1996 y la primera versión salió a la luz el 10 de febrero de 1998.

● La primera definición que apareció fue: Sistema para definir validar y compartir formatos de documentos en la web.

Respecto a sus objetivos son:

XML debe ser directamente utilizable sobre Internet.

XML debe soportar una amplia variedad de aplicaciones.

XML debe ser compatible con SGML.

Debe ser fácil la escritura de programas que procesen documentos XML.

Page 17: ¿Cuándo usar un DTD?

Objetivos…

El número de características opcionales en XML debe ser absolutamente mínima, idealmente cero.

Los documentos XML deben ser legibles por humanos y razonablemente claros.

El diseño de XML debe ser preparado rápidamente.

El diseño de XML debe ser formal y conciso.

Los documentos XML deben ser creados fácilmente.

Siglas y más siglas…

XML 1.0: es la especificacion propiamente dicha, define que etiquetas y atributos son válidos.

Xlink: conocido anteriormente como XLL (Extensible Linking Language), define la forma en la que los documentos XML deben enlazarse entre si.

Page 18: ¿Cuándo usar un DTD?

Siglas y más siglas…

Xpointer: describe como se puede apuntar a un lugar especifico dentro de un determinado documento XML.

XPath: es un lenguaje que permite construir expresiones que recorren y procesan partes de un documento XML.

XSL: Extensible Stylesheet Language o lenguaje de hojas de estilo extensible, define la sintaxis para describir como presentar los documentos XML. Aunque también pueden usarse las descripciones CSS (Cascading Style Sheets) que se utilizan en HTML.

XSLT: desarrollado originalmente como parte de las hojas de estilo XSL (para generar HTML) se ha extendido su uso para realizar transformaciones de: – XML a otro documento XML (seleccionando, reordenando, calculando...) – XML a un documento que una persona pueda utilizar de manera directa (leer, imprimir...)

Page 19: ¿Cuándo usar un DTD?

XSLT

XSL XPath

XSL-FO

• XSLT: eXtensible Stylesheet Language for Transformations. Permite definir cómo se transforma un documento XML en otro documento XML Además de XML, se puede generar, como salida, HTML y texto

• XSL-FO: eXtensible Stylesheet Language – Formatting Objects. Conversión del XML en un formato “imprimible” y legible por una persona (ej.: PDF). Inicialmente, este era el propósito del XSL • XPath: Una sintaxis para aludir a diversas partes de un documento XML

Diapositiva anterior

Page 20: ¿Cuándo usar un DTD?

Siglas y más siglas…

DOM (Document Object Model): interfaz que proporciona llamadas estandar a funciones y procedimientos que permiten trabajar el contenido, la estructura y el estilo o presentación de los documentos basándose en árboles.

SAX (Simple API for XML): interfaz utilizada para analizar (parsing) los documentos.

Parsing: Esta palabra viene del Latin pars orationis, que significa “parte de la oración”. En linguistica, parsing es el acto de fraccionar las sentencias y palabras para establecer las relaciones y estructuras del lenguaje. Estas

estructuras son representadas a menudo en una estructura de árbol.

El parsing en computación es similar, pero es comúnmente usado para fraccionar e interpretar el contenido de un string.Dado que XML es por definición un conjunto de caracteres enun string, fraccionar y separar partes de un documento XML es referido también como parsing.

Page 21: ¿Cuándo usar un DTD?

Aplicaciones que envían y reciben datos XML necesitaninterfaces para generar XML y para integrar datos XML dentrode otras aplicaciones. El parsing de documentos XML es usado para integrar datos XML con aplicaciones ya existentes. Dependiendo der tipo de Parser XML que sea usado, se identifican y convierten los elementos de XML en nodos de un árbol oen eventos de un documento.

✦ En Document Object Model (DOM) el parsing fracciona un documento XML en elementos anidados, referidos como nodos en una representación DOM del documento. Estos nodos refieren a documentos o fragmentos de documentos, elementos, atributos, datos texto, instrucciones de

procesamiento, comentarios, y otros tipos de datos.

✦ En Simple API for XML (SAX) el parsing fracciona un documento XML dentro de eventos en una representación SAX del documento. Los elementos del documento original

pueden convertirse así en otros tipos de datos.

Page 22: ¿Cuándo usar un DTD?

Siglas y más siglas…

Esquemas XML (XML Schemas ): proporciona a los desarrolladores las herramientas necesarias para definir sus propios formatos de documento. Fortalece las capacidades de modelado de datos en XML en comparación con usar sólo DTDs (DTD es la sigla para Document Type Definition).

Xquery: lenguaje de consultas derivado de Quilt, que combina características de SQL, XQL y XML-QL.

Page 23: ¿Cuándo usar un DTD?

Dos tipos de documentos XML

Los documentos XML pueden construirse para ser documentos "válidos" o para ser documentos "bien formados".

Si hablamos de un documento válido, significa que dicho documento está asociado a un conjunto de reglas que definen su estructura lógica y que certifican su validez.

Dicho conjunto de reglas recibe el nombre de DTD (Document Type Definition) o definición del tipo de documento; este es, en general, un archivo/s que encierra una definición formal de un tipo de documento y especifica la estructura lógica de cada documento. El DTD es opcional.

Para documentos sencillos no es necesario construir un DTD, se trataría entonces de un documento "bien formado“ (well-formed) porque, aunque no dispone de reglas de certificación asociadas, sigue las reglas de sintaxis especificadas para el lenguaje XML.

Page 24: ¿Cuándo usar un DTD?

¿Cuándo usar un DTD?

La Definición de un Tipo de Documento se realiza cuando es necesario identificar documentos de un determinado tipo o clase, que comparten varias características comunes. Por ejemplo, identificar informes que pueden contener nombre del autor, nombre del sujeto a quien se refiere el informe, quizás una lista de distribución, un número de referencia, fecha de creación, título del informe, títulos de secciones, gráficos, etc.

El DTD regula las siguientes tareas:

Define todos los elementos (nombres de etiquetas) que pueden aparecer en el documento.

Define las relaciones establecidas entre los distintos elementos.

Suministra información adicional que puede ser incluida en el documento y aporta instrucciones para su procesamiento.

Page 25: ¿Cuándo usar un DTD?

Estructura de Datos en XML

• Etiqueta (tag): rótulo de una sección de datos

• Elemento: sección de datos que comienza con un <nombre de etiqueta> y termina con </nombre de etiqueta>

• Los Elementos deben ser anidados apropiadamente– Anidamiento correcto

• <cuenta> … <balance> …. </balance> </cuenta>

– Anidamiento incorrecto • <cuenta> … <balance> …. </cuenta> </balance>

– Cada etiqueta que abre debe estar aparejada con una única etiqueta que cierra, esto en el contexto del elemento en cuestión.

• Cada documento debe tener un único elemento en “la cima” (único elemento raiz)

Page 26: ¿Cuándo usar un DTD?

Ejemplo de Elementos anidados <banco-1> <cliente>

<nombre_cliente> Huerta </nombre_cliente> <domicilio_cliente> Piedras 2020 </domicilio_cliente> <ciudad_cliente> San Juan </ciudad_cliente> <cuenta>

<número_cuenta> A-102 </número_cuenta> <nombre_sucursal> jachal </nombre_sucursal> <balance> 400 </balance>

</cuenta> <cuenta> … … … </cuenta>

</cliente> ... ...

</banco-1>

Page 27: ¿Cuándo usar un DTD?

Motivación para el anidamiento

• El anidamiento de datos es útil cuando se realiza transferencia de datos

Ejemplo: dentro del elemento orden de compra se anidan los elementos id_cliente, nombre_cliente y dirección_cliente.

• El anidamiento no es “propio” del modelo relacional– En una BD relacional se reemplaza (normalización) el

anidamiento, en cada orden de compra, por una clave foránea que permita acceder a la información del cliente.

– El anidaniento si es soportado en las BDs objeto relacional– Como hemos dicho, el anidamiento es apropiado cuando se

tranfieren datos, dado que una aplicación externa no tendría acceso a los datos referenciados por una clave foranea que le fuese transmitida.

Page 28: ¿Cuándo usar un DTD?

Estructura de datos XML (Cont.)

• La mezcla de texto con sub-elementos es válida en XML.

– Ejemplo: <cuenta>

Esta cuenta es raramente usada. <número_cuenta> A-102</ número_cuenta> <nombre_sucursal> Jachal</ nombre_sucursal> <balance>400 </balance></cuenta>

– Si bien esto es útil para marcar documentos, es desalentado para la representación de datos.

Page 29: ¿Cuándo usar un DTD?

Atributos• Los elementos pueden tener atributos

<cuenta tipo_cuenta= “c.corriente” > <número_cuenta> A-102 </número_cuenta> <nombre_sucursal> Jachal </nombre_sucursal> <balance> 400 </balance>

</cuenta>• Los atributos son especificados por pares nombre=valor

dentro de la etiqueta de inicio de un elemento• Un elemento puede tener varios atributos, pero el nombre

de cada atributo puede aparecer sólo una vez.

<cuenta tipo_cuenta= “c.corriente” tasa=“5”>

Page 30: ¿Cuándo usar un DTD?

Atributos vs. Subelementos• Distinción entre subelemento y atributo

– En el contexto de los documentos, los atributos son parte de las marcas, mientras que los subelementos son parte del contenido básico del documento.

– En el contexto de la representación de datos, la diferencia no es del todo clara y puede ser confusa.• Cierta información puede ser representada en las dos

formas

a) <cuenta número_cuenta = “A-101”> …. </cuenta>

b) <cuenta> <número_cuenta>A-101</número_cuenta> … </cuenta>

– Sugerencia: usar atributos para identificadores de elementos, y usar subelementos para contenido.

Page 31: ¿Cuándo usar un DTD?

<?xml version ="1.0"?><ListaPersonal Tipo=“estudiante" Fecha="12-12-06"> <Título Valor=“Lista Estudiantes"/> <Contenido> <Persona> <Nombre>Juan Perez</Nombre> <Id>11</Id> <Dirección> <Calle>La Lomada</Calle> <Número>123</Número> </Dirección> </Persona> <Persona> <Nombre>Luis García</Nombre> <Id>33</Id> <Dirección> <Calle>El Pozo</Calle> <Número>4</Número> </Dirección> </Persona> </Contenido></ListaPersonal>

Ejemplo deDocumento

XML

Page 32: ¿Cuándo usar un DTD?

Estructura general

– La primera linea <?xml version ="1.0"?> es obligatoria;

– Etiquetas o tags son elegidas por el autor;

– Un tag que abre debe estar aparejado con otro que cierra; <a><b></b><c></c></a>

– Sólo un elemento raíz (en el ejemplo-> ListaPersonal);

– En <a> … </a>; a es el nombre de un elemento;

– <ListaPersonal Tipo=“Estudiante”> aquí Tipo es el nombre de un atributo que tiene el elemento ListaPersonal; el valor del atributo es “Estudiante”; todos los valores de atributos van entre comillas;

– Elementos vacíos: Indican que no hay contenido. <author></author> puede ser reemplazado por <author/>.

Para el ejemplo <Título Valor=“Lista Estudiantes”/> y <Título Valor=“Lista Estudiantes”> </Título> son equivalentes

Page 33: ¿Cuándo usar un DTD?

– Instrucciones procesables: <? . . . ?>

– comentarios: <!–- este es un comentario -->

– Mezcla de datos y texto:

<Dirección>

Juan vive en <Calle> La Lomada </Calle>

<Número>123</Número>

</Dirección>

– Los elementos tienen un orden:

<Dirección> <Calle>La Lomada</Calle> <Número>123</Número></Dirección>

<Dirección> <Número>123</Número> <Calle>La Lomada</Calle></Dirección>

Son diferentes

Page 34: ¿Cuándo usar un DTD?

Anidamiento

Las etiquetas pueden estar anidadas, es decir, los elementos definidos pueden estar contenidos dentro de otros elementos.

Por ejemplo la derivación de un paciente puede contener sub-elementos para describir la fecha, la historia clínica del paciente, el servicio y el diagnóstico que motivó la derivación.

<Derivacion> <FechaEntrada>30.05.00</FechaEntrada> <Paciente>HC334455</Paciente> <Servicio>Neumología</Servicio> <Diagnostico>bronquitis aguda</Diagnostico></Derivacion>

Normalmente un anidamiento puede disponer de muchos niveles, por ejemplo, la estructura que define la "Derivación" puede estar contenida en otra estructura mayor definida como "Consulta Externa" y ésta a su vez en otra estructura definida como "Actividad Ambulatoria", y así sucesivamente.

Page 35: ¿Cuándo usar un DTD?

XML: Atributos

• Un elemento puede tener cualquier número de atributos• El orden de los atributos no cuenta• Dentro de un elemento un atributo puede ocurrir sólo una vez• Los valores de atributos sólo pueden ser “strings”

Los dos ejemplos que siguen tiene la misma semántica (exceptoporque en <b> y <c> el orden si cuenta):

En los atributos (b,c) el orden no importa

En los elementos <b> y <c> el orden importa

<a b=“2” c=“Feb” /> <a> <b> 2 </b> <c> Feb </c> </a>

Page 36: ¿Cuándo usar un DTD?

Documento bien formado

• Un documento XML se denomina bien formado si:– Tiene un elemento raiz– Los elementos están apropiadamente anidados– Todo atributo ocurre sólo una vez por cada tag o

etiqueta y su valor aparece entre comillas

Page 37: ¿Cuándo usar un DTD?

Modelo de DatosRaiz

CódigoCr

<Estudiantes> <Estudiante StudId=“dr”> <Nombre> <Npila> Juan </Npila> <Apell> Perez </Apell> </Nombre> Esp1 <Curso Semestre=“…” CódigoCr=“…”/> <Curso Semestre=“…” CódigoCr=“…”/> </Estudiante> <Estudiante> … </Estudiante> </Estudiantes>

Raiz

Estudiantes

Semestre

Tipos de Nodos

Documento

Elemento

Texto

atributo

Estudiantes

Curso

EstudianteEstudiante

Nombre

Npila Apell

CursoStudId

CódigoCr“dr ”

“Juan” “Perez”

“Esp1”

SemestreSemestre

“…” “…” “…” “…”

Page 38: ¿Cuándo usar un DTD?

• Un valor es una secuencia ordenada de cero o más items;• Un item es un nodo o valor atómico;

• Existen cuatro tipos de nodos:• Nodo documento• Nodo elemento• Nodo atributo• Nodo texto

• Los hijos son nodos elemento o texto (los atributos no son hijos)

•Ejemplos de Valores• 47• <perro/>• (1, 2, 3)• (47, <perro/>, "Hello")• ()• Un documento XML• Un atributo aislado

● No hay distinción entre un item y una secuencia de longitud uno;● No hay secuencias anidadas;● No existen los valores nulos;● Una secuencia puede ser vacía;● Las secuencias pueden tener valores heterogéneos;●Las secuencias tienen orden;

Page 39: ¿Cuándo usar un DTD?

Query para XML

• ¿Se justifica?→Bases de datos especiales (special XML databases)→Los mayores DBMSs “entienden” XML

• ¿Necesita el mundo un nuevo lenguaje query? →La mayoría de los datos de negocios del mundo está almacenados en bases de datos relacionales; →El lenguaje relacional SQL está maduro y establecido;

• Podemos adaptar SQL para consultar datos XML?→Influencia del software existente→Influencia de los usuarios ya capacitados

• ¿En que difieren los datos XML de los datos relacionales? → Los datos relacionales son “chatos”: filas y columnas;

→ Los datos XML son anidados: la profundidad puede ser irregular e impredecible;

Page 40: ¿Cuándo usar un DTD?

• Las relaciones pueden representar datos jerárquicos mediante el uso de claves foráneas o usando tipos de datos estructurados (sistemas relacionales extendidos).

• En XML es natural buscar en niveles desconocidos de jerarquía: “Encontrar todos los objetos rojos”;

• Los datos relacionales son uniformes y repetitivos: → Todas las cuentas bancarias tienen estructura similar; → Los “metadatos” se almacenan en el catálogo del sistema;

• Los datos XML son altamente variables;

→ Cada página web es diferente; → Cada objeto XML es autodescriptivo; → Los “metadatos” están distribuidos a través del documento; → Las consultas pueden acceder tanto a datos como a metadatos: “Encontrar elementos cuyo nombre y contenido coincidan”: //*[name(.) =string(.)]

Page 41: ¿Cuándo usar un DTD?

• queries relacionales retornan conjuntos uniformes de filas;

• El resultado de un query sobre XML puede ser una mezcla de tipos y estructuras complejas;

→ “cosas rojas": una gorra, una manzana, una señal de pare, → Elementos y valores atómicos mezclados; → Los queries XML deben poder realizar transformaciones estructurales; por ejemplo invertir una jerarquía

• Las filas de una relación no tienen orden; → Cualquier ordenamiento se deriva de los valores;

• Los elementos en un documento XML están ordenados; lo que implica que:

→ Se preserva el orden de entrada en los resultados → Se especifica un orden de salida; “Encontrar todas las herramientas usadas antes que el martillo“;

Page 42: ¿Cuándo usar un DTD?

• Los datos relacionales son “densos”; → Cada fila tiene un valor en cada columna;

→ Para un dato desconocido o no aplicable es necesario un valor nulo ("null“);

• Los datos XML pueden ser “ralos” o no densos; → Los elementos inaplicables o desconocidos pueden ser vacíos ("empty“) o faltantes;

→ Esto da a XML un grado de libertad no presente en las bases de datos relacionales.

Comparación con el modelo relacional

Page 43: ¿Cuándo usar un DTD?

• Ineficiencia: las etiquetas, que representan información del esquema, se repiten.

• Para el intercambio de datos, el uso de XML es mejor que el uso de relaciones:

– A diferencia de las tuplas relacionales, los datos XML son autodescriptivos debido a la presencia de las etiquetas

– Formato no rígido: se pueden agregar etiquetas– Se permiten estructuras anidadas– Amplia aceptación, no sólo en los DBMSs sino

también en browsers y otras aplicaciones.

Comparación con el modelo relacional...

Page 44: ¿Cuándo usar un DTD?

XML no se concibió como una tecnología para bases de

datos. En realidad, al igual que el lenguaje de marcas de

hipertexto (HTML) sobre el que está basado World Wide

Web, XML tiene sus raíces en la gestión de documentos y

está derivado del lenguaje SGML.

Sin embargo, a diferencia de SGML y HTML, XML puede

representar datos de bases de datos, así como muchas

clases de datos estructurados usadas en aplicaciones de

negocios. Es particularmente útil como formato de datos

cuando las aplicaciones se deben comunicar con otra

aplicación o integrar información de varias aplicaciones.

Resumiendo...

Page 45: ¿Cuándo usar un DTD?

Algo más de sintaxis XML Algo más de sintaxis XML

Para almacenar un string de datos que pueda contener etiquetas (tags), sin que esas etiquetas sean interpretados como subelementos, usar CDATA como se muestra a continuación:

<![CDATA[<account> … </account>]]>

Aquí, <account> y </account> son tratados sólo como strings

El término CDATA viene de “character data”

Page 46: ¿Cuándo usar un DTD?

Usando CDATA<ENCABEZADO>

Ingresando un miembro al Kennel Club

</ENCABEZADO>

<DESCRIPCION>Ingrese el nombre del perro tal como figura en sus papeles.Use la etiqueta Nombre. Nombre tiene a su vez dos atributos: nombre_común que es el nombre con que se llama al perro y raza (ingresarla en minúsculas por favor). Por favor leer la guía de razas para ver las aceptadas. Sus datos deben tener el aspecto del ejemplo:

</DESCRIPCION>

<EJEMPLO><![CDATA[<Nombre nombre_común=“tony" raza="springer-spaniel">Sir Fredrick </Nombre>]]>

</EJEMPLO>

Page 47: ¿Cuándo usar un DTD?

Etiqueta de encabezado (The Head Tag)

<?xml version="1.0" standalone="yes/no" encoding="UTF-8"?>

- Standalone=“no” significa que se usa un DTD externo

- Se puede omitir encoding="UTF-8”(valor por defecto)