SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML...

141
SECRETARÍA DE EDUCACIÓN PUBLICA SEIT DGIT Centro Nacional de Investigación y Desarrollo Tecnológico cenidet “Servidor de XML para aplicaciones de Web” TESIS QUE PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN CIENCIAS COMPUTACIONALES PRESENTA: C. ROBLE LEONEL GONZÁLEZ URBIETA DIRECTOR DE TESIS: M.C. MARIO GUILLÉN RODRÍGUEZ CODIRECTOR DE TESIS: DR. RODOLFO PAZOS RANGEL CUERNAVACA, MOR. AGOSTO 2002

Transcript of SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML...

Page 1: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

SECRETARÍA DEEDUCACIÓN

PUBLICA

SEIT DGIT

Centro Nacional de Investigación y Desarrollo Tecnológico

cenidet

“Servidor de XML para aplicaciones de Web”

TESIS

QUE PARA OBTENER EL GRADO DE

MAESTRO EN CIENCIAS EN CIENCIAS COMPUTACIONALES

PRESENTA:

C. ROBLE LEONEL GONZÁLEZ URBIETA

DIRECTOR DE TESIS:

M.C. MARIO GUILLÉN RODRÍGUEZ

CODIRECTOR DE TESIS:

DR. RODOLFO PAZOS RANGEL CUERNAVACA, MOR. AGOSTO 2002

Page 2: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura
Page 3: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura
Page 4: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

Dedicatoria

A mis padres:

Roble y Sonia Con cariño por ser mi guía y motivación

mis hermanos Jaqueline, Miguel y Janet

A mis amigos Anely, Antonio, Fernando

A mis compañeros Patricia, Eduardo, Iris, Mario, Hugo,

Giovanni, Areli, Agustin, Socorro, David, Moises y Sheydi, Gaby, Irene, Roger,

Juan, Daniel, Eli, Arnoldo, Laura, Roberto,

Page 5: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

Adriana Por el amor y la felicidad que has compartido conmigo.

Por todos esos momentos inolvidables. Gracias.

Page 6: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

Agradecimientos Este documento no hubiera sido posible sin la generosa contribución y ayuda de mucha gente. En particular, me gustaría expresar mi mas sincero agradecimiento a las siguientes personas e instituciones: Al CENIDET por darme la oportunidad de estudiar. Al COSNET, SEP, CENIDET y ANES, por patrocinarme mis estudios. Al M.C. Mario Guillén por brindarme sus conocimientos y experiencia para el mejor desarrollo de este trabajo, especialmente por su amistad y paciencia. A mis revisores: M.C. Antonio Marceleño, M.C. Humberto Hernández, M.C. Juan Gabriel Glez. y al Dr. Rodolfo Pazos Rangel por su apoyo y comentarios para el desarrollo de este trabajo.

Page 7: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

Contenido

Resumen......................................................................................................11

Capítulo 1. Introducción.................................................................................... 1 1.2 Antecedentes .................................................................................................................3 1.3 Definición del problema ................................................................................................6 1.4 Objetivo de la tesis ........................................................................................................7 1.5 Beneficios y alcances..................................................................................................8 1.6 Organización del documento ........................................................................................8

Capítulo 2. Marco teórico.................................................................................. 9 2.1 Definición de XML.....................................................................................................10 2.2 Objetivos de diseño de XML ......................................................................................11 2.3 Validez y buena formación de los documentos de XML............................................12

2.3.1 Validez.................................................................................................................12 2.3.2 Buena formación ..................................................................................................13

2.4 Tecnologías asociadas.................................................................................................14 2.4.1 Definición de tipo de documentos (DTD) ...........................................................14 2.4.2 Esquema ...............................................................................................................14 2.4.3 XSL......................................................................................................................15 2.4.4 Modelo de Objetos de Documento (DOM) .........................................................15 2.4.5 Lenguaje Extensible de Consultas (XQL) ...........................................................16 2.4.6 Lenguaje de Enlaces Extensible (XLL: XLINK/XPOINTER)............................16 2.4.7 Espacio de Nombres (XPath) ...............................................................................17

Capítulo 3. Estado del arte................................ ................................ ................18 3.1 Clasificación de productos ..........................................................................................19 3.2 Categorías de productos.............................................................................................19

3.2.1 Software intermediario (middleware) ..................................................................20 3.2.2 Bases de datos habilitadas para XML ..................................................................23 3.2.3 Servidores de XML..............................................................................................26 3.2.4 Servidores de Web habilitados para XML...........................................................28 3.2.5 Sistemas manejadores de contenidos ...................................................................30 3.2.6 Implementaciones de DOM persistentes .............................................................32

3.3 Soporte de navegadores ..............................................................................................33 3.4 Transformación de documentos de XML ...................................................................34

3.4.1 Mecanismos de presentación: hojas de estilo (CSS) y el lenguaje de hojas estilo extendidas (XSL) ..........................................................................................................34

Capítulo 4. Arquitectura...................................................................................37 4.1 Servidor de documentos de XML ...............................................................................38 4.2 Arquitectura del proyecto............................................................................................39

4.2.1 Módulo Administrador de Peticiones ..................................................................39 4.2.2 Protocolo de comunicación ..................................................................................40 4.2.3 Módulo Administrador de Documentos de XML (MAD) ...................................41

4.2.3.1 Almacenamiento de documentos de XML ...................................................42 4.2.3.2 Bases de datos orientadas a objetos vs RDBMS y sistemas de archivos ......42

Page 8: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

4.2.3.3 Servidor de contenidos POET.......................................................................45 4.2.3.4 Proceso de almacenamiento de un documento de XML...............................46 4.2.3.5 Vinculación de datos XML (XML Data Binding) ........................................47 4.2.3.6 Castor ............................................................................................................47 4.2.3.7 Xerces............................................................................................................48 4.2.3.8 Serialización y deserialización......................................................................48 4.2.3.9 Archivo de configuración de POET..............................................................49

Capítulo 5. Desarrollo y descripc ión de la interfaz..................................................51 5.1 Introducción ................................................................................................................52

5.2.1 Base de datos de documentos de XML................................................................59 5.2.1.1 Abrir base de datos ........................................................................................59 5.2.2.2 Cerrar base de datos ......................................................................................60 5.2.2.3 Catálogo de base de datos de documentos de XML.....................................60 5.2.1.4 Verificación de integridad.............................................................................63 5.2.1.5 Catálogo de esquemas ...................................................................................64 5.2.1.6 Catálogo de hojas de estilo ...........................................................................65

5.2.2 Documentos de XML...........................................................................................66 5.2.3 Utilerías ................................................................................................................69

5.2.3.1 Bitácora de movimientos ..............................................................................69 5.2.3.2 Usuarios ........................................................................................................70 5.2.3.3 Configuración del MAD ...............................................................................71 5.2.3.5 Configurar impresora ....................................................................................72 5.2.3.6 Comprimir base de datos ..............................................................................72

5.2.4 Reportes ...............................................................................................................73 5.2.5 Salir ......................................................................................................................74

5.3 Módulo Administrador de Peticiones .........................................................................75

Capítulo 6. Evaluación experimental................................ ................................ ...76 6.1 Objetivo de las pruebas...............................................................................................77 6.2 Descr ipción del ambiente de las pruebas ....................................................................77 6.3 Especificación de entrada............................................................................................78

6.3.1 Esquema XML.....................................................................................................78 6.3.2 Archivo de configuración.....................................................................................81 6.3.3 Documentos de XML...........................................................................................82

6.4 Pruebas y resultados....................................................................................................85 6.4.1 Prueba 1: generar un esquema de BD a partir de un esquema XML válido ........85

6.4.1.1 Archivos de interfaz generados.....................................................................88 6.4.2 Prueba 2: generar un esquema de BD a partir de un esquema XML no válido ...92 6.4.3 Prueba 3: almacenamiento de documentos de XML válidos en MAD................94 6.4.4 Prueba 4: almacenamiento de documentos de XML mal formados en MAD.....95 6.4.5 Prueba 6: almacenamiento de documentos de XML no válidos en el MAD .......96 6.4.6 Prueba 6: recuperación de documentos de XML por medio del MAP ................97 6.4.7 Prueba 7: comprobación la capacidad multitarea del MAP ...............................100

Page 9: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

Capítulo 7. Conclusiones................................................................................ 101 7.1 Conclusiones generales.............................................................................................102 7.2 Resultados obtenidos ................................................................................................102 7.3 Trabajos futuros ........................................................................................................102

ANEXOS ..................................................................................................... 104 Anexo A. Notas de instalación del Módulo Administrador de Documentos de XML (MAD).............................................................................................................................105 Anexo B. Notas de Compilación del Módulo Administrador de Documentos de XML (MAD) y el Módulo Administrador de Peticiones (MAP) .............................................109 Anexo C. Diagrama Elka de la base de datos del MAD.................................................113 Anexo D. Diccionario de datos del módulo MAD.........................................................114 Anexo E. Descripción de iconos de la interfaz del MAD ...............................................119

Glosario de términos y abreviaturas .................................................................. 121

REFERENCIAS............................................................................................... 124

Page 10: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

Lista de ilustraciones Fig. 1.1 Evolución de las tecnologías de bases de datos.........................................................4 Fig. 1.2 Evolución de los lenguajes de consulta .....................................................................5 Fig. 2.1 XML como subconjunto de SGML .........................................................................10 Fig. 2.2 Esquema de uso de un procesador de XSL para generar una página en HTML.....15 Fig. 2.3 Esquema en que el procesador de XML-QL usa una consulta en XML-QL para

analizar un documento de XML y construir un documento de XML como salida.......16 Fig. 2.4 Esquema de cómo el Xlink y el Xpointer trabajan juntos con el XLL. El Xlink

especifica las localizaciones de recursos y la especificación Xpointer apunta a estos recursos. ........................................................................................................................16

Fig. 4.1 Arquitectura del Servidor de documentos de XML para aplicaciones de Web.......39 Fig. 4.2 Módulo Administrador de Documentos de XML....................................................41 Fig. 4.3 Arquitectura de una base de datos orientada a objetos de POET............................45 Fig. 4.4 Proceso de generación de un esquema de base de datos orientado a objetos ..........46 Fig. 4.5 Proceso de almacenamiento y recuperación de un documento de XML.................47 Fig. 4.6 Serialización y deserialización de datos XML ........................................................49 Fig. 5.1 Arquitectura del Servidor de documentos de XML para aplicaciones de Web.......52 Fig. 5.2 Menú del formulario Main del proyecto MAD .......................................................56 Fig. 5.3 Menú del formulario Main del proyecto MAD .......................................................57 Fig. 5.4 Inicio de sesión al MAD..........................................................................................58 Fig. 5.5 Pantalla principal del MAD.....................................................................................58 Fig. 5.6 Menú de la sección base de datos de documentos de XML....................................59 Fig. 5.7 Apertura de una base de datos .................................................................................59 Fig. 5.8 Cerrar una base de datos ..........................................................................................60 Fig. 5.9 Pantalla del catálogo de base de datos de documentos de XML.............................60 Fig. 5.10 Pantalla del alta/edición de base de datos de documentos de XML......................62 Fig. 5.11 Verificar integridad de bases de datos de XML....................................................63 Fig. 5.12 Alta/edición de un esquema...................................................................................64 Fig. 5.13 Alta/edición de una hoja de estilo ..........................................................................66 Fig. 5.14 Catálogo de documentos de XML .........................................................................66 Fig. 5.15 Alta/edición de un documento de XML ................................................................67 Fig. 5.16 Análisis de buena formación de un documento de XML ......................................68 Fig. 5.17 Bitácora del MAD .................................................................................................69 Fig. 5.18 Tipo de usuario en la barra de estado del MAD....................................................70 Fig. 5.19 Alta/edición de un usuario del MAD.....................................................................70 Fig. 5.20 Configuración del MAD........................................................................................71 Fig. 5.21 Configuración de la impresora ..............................................................................72 Fig. 5.22 Comprimir base de datos .......................................................................................72 Fig. 5.23 Visualización previa de los reportes (base de datos y esquema) ...........................73 Fig. 5.24 Iconos de reporte previo ........................................................................................74 Fig. 5.25 Acerca del autor. ....................................................................................................74 Fig. 5.26 Estados de una comunicación MAP-aplicación de Web.......................................75 Fig. 5.27 Módulo Administrador de Peticiones (MAP)........................................................75 Fig. 6.1 Ambiente de pruebas ...............................................................................................78 Fig. 6.2 Pantalla de captura de la base de datos EJEMPLO .................................................85

Page 11: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

Fig. 6.3 Pantalla de captura de la base de datos EJEMPLO2 con un esquema con errores ..93 Fig. 6.4 Pantalla de captura del documento 1.......................................................................94 Fig. 6.5 Pantalla de captura del documento 4, y el mensaje de error sobre la mala formación

del documento...............................................................................................................95 Fig. 6.6 Análisis detallado del documento de XML.............................................................96 Fig. 6.7 Pantalla de captura del documento 5, y el mensaje de error sobre invalidez del

documento.....................................................................................................................97 Fig. 6.8 Solicitud de datos para recuperar un documento de XML en el XMLChat 1.0.0 ...98 Fig. 6.9 Visualización del documento de XML en Internet Explorer 6 recuperado de la base

de datos .........................................................................................................................99 Fig. 6.10 Visualización de mensajes en el lado del servidor (MAP)....................................99 Fig. 6.11 El MAP resolviendo dos conexiones simultáneas ...............................................100 Fig. A1 Propiedades del Sistema ........................................................................................107 Fig. A2 Modificar variables de entorno en Windows 2000 ................................................108 Fig. A3 Instalación del componente parsdpk.dpk...............................................................110 Fig. A4 Instalar componente ...............................................................................................111 Fig. A5 Proyecto MAD cargado en el IDE de Delphi 6.....................................................111 Fig. A6 Proyecto MAP cargado en el IDE de Delphi 6......................................................112

Page 12: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

Lista de Tablas Tabla 3.1 Productos de software intermediario ....................................................................20 Tabla 3.2 Bases de datos habilitadas para XML...................................................................23 Tabla 3.3. Servidores de XML..............................................................................................26 Tabla 3.4 Servidores de Web habilitados para XML............................................................29 Tabla 3.5 Sistemas manejadores de contenidos....................................................................30 Tabla 3.6 Implementaciones DOM Persistentes ...................................................................32 Tabla 3.7 Diferencias entre XSL y CSS ...............................................................................35 Tabla 4.1 Comandos del MAP ..............................................................................................40 Tabla 4.2 Requerimientos, bases de datos orientadas a objetos vs bases de datos

relacionales y sistemas de archivos...............................................................................44 Tabla 5.1 Unidades del MAD...............................................................................................55 Tabla 5.2 Relación de uso de unidades en cada formulario del MAD .................................56 Tabla 5.3 Unidad del MAP ...................................................................................................56 Tabla. 6.1 Unidades del XML Chat 1.0.0.............................................................................98

Page 13: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

Resumen El World Wide Web (WWW) ofrece una fuente de información muy extensa, y en tales circunstancias hay una necesidad e interés enorme por manejar los datos disponibles en el WWW. Los documentos de Web evolucionan constantemente y no tienen un esquema fijo que pueda definirlos. Los datos que la Web ofrece pueden describirse como semiestructurados ya que pueden contener una parte estructurada y otra no estructurada (los datos semiestructurados implican ausencia de una estructura rígida/completa). El tema de datos semiestructurados está llegando a ser importante y surge no sólo cuando se considera el Web, sino también en la integración de fuentes de datos heterogéneas, en una variedad de aplicaciones no tradicionales de bases de datos y sistemas de información o sistemas de administración para sitios de Web. Los datos en esas aplicaciones tienen estructuras irregulares: algunos elementos tienen componentes perdidos, otros tienen múltiples ocurrencias del mismo componente y se pueden usar tipos de datos diferentes para representar el mismo tipo de información. Por lo tanto, proporcionar información con este tipo de datos de información es muy difícil. Así mismo existe una creciente necesidad por realizar consultas sobre datos semiestructurados, los lenguajes de consulta disponibles actualmente presentan desventajas, entre las cuales se pueden citar las siguientes:

q Los lenguajes de consulta objeto-relacional y los orientados a objetos no son ideales para acceder a documentos semiestructurados (estos lenguajes fueron diseñados para realizar consultas fijas y definidas en un esquema, mientras que, para los datos semiestructurados los esquemas no son rígidos).

q La carencia de capacidades de recuperación de información sofisticada. q Los lenguajes de consulta actuales requieren de un aprendizaje considerable y

maduración. Por lo tanto, la problemática a resolver debido a estas desventajas es: un lenguaje de consulta para acceder a datos semiestructurados y una base de datos para almacenarlos. Las computadoras nos sirven para almacenar y manipular datos, y la Web comparte esos datos, sin embargo se debe compartir la información de forma rápida y eficiente. Aquí es donde entra el XML, el lenguaje propuesto por el World Wide Web Consortium (W3C) para reemplazar al HTML como el lenguaje de la Web. Cuando se dota de estructura a un almacén de información masivo como es la Web, se pueden lograr nuevos niveles de automatización, lo que potencia nuevos tipos de aplicaciones de Web enfocadas a los datos. Este trabajo consiste en el diseño e implementación de una herramienta que permita la administración del almacenamiento y recuperación de documentos de XML en una base de datos orientada a objetos y su posterior consulta de los documentos de XML vía Internet por medio de un protocolo entre una aplicación Web y el Servidor de Documentos de XML.

Page 14: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

1

CAPÍTULO 1

Introducción En este capítulo se exponen los antecedentes que motivan la realización de la presente tesis, se especifica el planteamiento del problema, el objetivo, los alcances y la organización del presente documento.

Page 15: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

2

1.1 Introducción El WWW está en un proceso de transformación sin precedentes que da origen a la aparición de nuevos servicios para usuarios y grandes posibilidades para empresas y desarrolladores de sitios Web. HTML [HTML4, 1998], el Lenguaje de Marcado de Hipertexto (Hypertext Markup Language), ha convertido a la Web en la biblioteca mundial. Ahora el XML [XML, 2000], el Lenguaje de Marcado Extensible (Extensible Markup Language), pretende convertir a la Web en el concentrador comercial y financiero del mundo. Esta nueva tecnología permitirá que se desarrollen nuevos tipos de aplicaciones. XML es una nueva especificación que permite a los diseñadores de páginas de Web crear sus propias etiquetas personalizadas y obtener la funcionalidad que no proporciona el HTML, que es actualmente utilizado en la mayoría de las aplicaciones de Web. Hoy en día, las aplicaciones Web se construyen habitualmente siguiendo el modelo tripartito. Este modelo en tres capas o niveles surgió ante la necesidad de separar la lógica empresarial de la GUI (interfaz gráfica de usuario) y las fuentes remotas. De acuerdo con este modelo, existen tres componentes:

q La interfaz gráfica de usuario (GUI), es decir, el navegador que se ejecuta en la computadora del usuario.

q El programa o programas de aplicación que se ejecutan en el servidor Web y que se encargan de procesar los datos (el nivel lógico empresarial).

q Un sistema que almacena los datos del componente anterior. El uso masivo que alcanzaron los navegadores de Web junto con la utilización de CGIs (Common Gateway Interface) hicieron posibles y muy prácticas las aplicaciones en tres partes. Este modelo presenta una serie de ventajas frente a los modelos tradicionales de una o dos partes , en particular para las aplicaciones de Web, entre las que cabe destacar las siguientes:

q Los navegadores de Web están presentes en todas partes, por lo que pueden acceder a las aplicaciones desde cualquier plataforma.

q Las aplicaciones pueden compartir un mismo aspecto y finalidad. q Su estructura en forma de módulos facilita la modificación o sustitución de uno de

los procesos sin que ello afecte a los demás. Aunque esta configuración en tres partes es la forma más utilizada hoy en día para construir nuevas aplicaciones, el lenguaje XML abre nuevas posibilidades respecto a la creación de nuevos sistemas de aplicaciones al combinar dos o más aplicaciones de Web. Un aspecto importante y dada su gran popularidad es el uso de un navegador como interfaz universal entre el usuario y el proceso intermedio (la aplicación). Sin embargo, una consulta a una aplicación de Web no tiene siempre que ser generada por un usuario (humano), sino también puede originarla otra aplicación que utilice los mismos modelos y

Page 16: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

3

protocolos (HTTP) de los que se sirven los usuarios humanos. Esto puede considerarse un modelo de aplicación de Web en el que las aplicaciones de Web se conectan entre sí. Las computadoras nos sirven para almacenar y manipular datos, y la Web comparte esos datos, sin embargo se debe compartir la información de forma rápida y eficiente. Aquí es donde entra el XML, el lenguaje propuesto por el World Wide Web Consortium (W3C) para reemplazar al HTML como el lenguaje de la Web. Cuando se dota de estructura a un almacén de información masivo como es la Web, se pueden lograr nuevos niveles de automatización, lo que potencia nuevos tipos de aplicaciones de Web enfocadas a los datos. El presente trabajo aborda el diseño de una arquitectura para almacenar y recuperar documentos de XML en una base de datos orientada a objetos y su consulta vía Internet, mediante un protocolo de comunicación entre el Servidor de Documentos de XML y una aplicación Web. Otro concepto fundamental de XML (que se amplía en capítulos posteriores) es la validez y la buena formación de un documento, lo que implica el análisis del documento de XML a través de un procesador de XML. El término análisis se refiere al proceso de lectura de un documento y su descomposición en los distintos elementos que lo componen con el fin de analizarlos. 1.2 Antecedentes La tecnología de las bases de datos ha evolucionado (fig. 1.1) desde los sistemas de archivos tradicionales a bases de datos jerárquicas, de red, relacionales, objeto-relacionales, orientadas a objetos, hasta llegar actualmente a dar soporte a aplicaciones de Internet [Miller, 2000]. En los 60s las compañías empezaron a automatizar sus oficinas contables. Para lograr este fin, se desarrolló el lenguaje COBOL y su modelo de archivos orientados a registros. Durante esta época las transacciones se ejecutaban en lote y hubo considerable experimentación con los sistemas para manejar transacciones en línea. Los primeros trabajos fueron realizados a la medida de la aplicación, pero a finales de la década empezaron a emerger las bases de datos jerárquica y de red. Para el modelo de datos de red se definió el estándar DBTG (DataBase Task Group), con el cual se desarrollaron las bases para la mayoría de los sistemas comerciales durante los años 70s. Sin embargo, el DBTG tenía algunos problemas ya que era usado a bajo nivel y tenía un lenguaje procedimental a nivel de registro. Los programadores tenían que navegar a través de la base datos siguiendo apuntadores de registro a registro.

Page 17: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

4

Antes delos 80s

Después de los 80s

Mediados delos 90s

Después delos 90s

2000

Manejo Global EmpresarialManejo simple de datos

Pre-relacional Inicios delrelacional

Cliente/ServidorRelacional

Capacidad EmpresarialRelacional Internet

OLTP Simple Bases de DatosActivas

Almacenes de Datosy Superiores

AplicacionesVerticales

TransaccionessimplesRepaldos en líneaRecuperación

Procedimientosalmacenados

Disparadores

OLTP escalableConsultas en paralelo

ParticionamientoSoporte de clusters

Bloqueos a nivel renglónAlta disponibilidad

Soporte paratodo tipo de datos

ExtensibilidadObjetos

Middleware(mensajes,

encolamiento,eventos, Java,

CORBA,interfaces Web)

Fig. 1.1 Evolución de las tecnologías de bases de datos El modelo de datos relacional, enunciado por Ted Codd en 1970 fue el mayor avance sobre el DBTG. El modelo relacional surgió con la intención de proporcionar un nivel de abstracción más alto para el usuario, de tal forma que le ocultara la estructura de almacenamiento y viera los datos únicamente como relaciones. Las consultas eran expresadas en un lenguaje de alto nivel de abstracción, facilitando el desarrollo de aplicaciones que utilizaran estas bases de datos. El lenguaje de consultas para el modelo relacional es aprocedimental y está fundamentado en el álgebra relacional y en la lógica matemática. El lenguaje de consultas ha evolucionado (Fig. 1.2), iniciando con SEQUEL hasta llegar a su estandarización entre 1982 y 1986 por parte de ANSI (American National Standards Institute) e ISO (International Standards Organization), denominada SQL-86 (Structured Query Language). En 1989 se publicó una norma extendida para SQL denominada SQL-89. La versión actual de la norma SQL ANSI/ISO es la norma SQL-92. Actualmente se está trabajando en la norma SQL-3 [Sheth, 2000].

Page 18: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

5

SEQUEL (1974)

SQL

ANSI-SQL (1986)

SQL 92 (1992)

SQL3 (1999)

Por: Chamberlain Et al. IBM

Renombrado

Aceptado por ANSI X3H2

Standar ANSI e ISO

Por: ANSI X3H2aún sin terminar

OQL v.1 (1993)

OQL v. 2 (1997)

Lenguaje de consulta Lorelpara XML (1999)

XML-QL (1998)

Parte de ODMG-93

Parte de ODMG 2.0XSL (1998)

XQL (1998)

Varios lenguajes de consultapara datos semiestructurados

SEQUEL (1974)

SQL

ANSI-SQL (1986)

SQL 92 (1992)

SQL3 (1999)

Por: Chamberlain, et al. IBM

Renombrado

Aceptado por ANSI X3H2

Estándar ANSI e ISO

Por ANSI X3H2aún sin terminar

OQL v.1 (1993)

OQL v. 2 (1997)

Lenguaje de consulta Lorelpara XML (1999)

XML-QL (1998)

Parte de ODMG-93

Parte de ODMG 2.0XSL (1998)

XQL (1998)

Varios lenguajes de consultapara datos semiestructurados

Fig. 1.2 Evolución de los lenguajes de consulta Entre tanto, la investigación en bases de datos evolucionó hacia las bases de datos distribuidas geográficamente. Una de las alternativas más simples de distribución geográfica son las arquitecturas cliente-servidor. Otro enfoque de las bases de datos llevó a desarrollar los almacenes de datos. Las aplicaciones para almacenes de datos usan una gran cantidad de información. En este caso, los datos utilizados son simples pero las consultas son complejas, normalmente su acceso es de lectura y en forma intensiva. A finales de la década de los 80s y principios de los 90s, la naturaleza de las aplicaciones de bases de datos fue evolucionando de aplicaciones sencillas a aplicaciones complejas. Las aplicaciones sencillas recuperan un número pequeño de registros planos que contienen datos numéricos y datos simbólicos cortos. En contraste las aplicaciones complejas almacenan y recuperan datos anidados complejos, datos compuestos (conjuntos, arreglos y estructuras) y datos multimedia (audio, video, imágenes, etc.). Estos tipos de requerimientos dieron origen a los SMBDs (Sistemas Manejadores de Base de Datos) orientados a objetos y a los SMBDs objeto-relacionales. Este tipo de bases de datos pueden almacenar clases, objetos y sus métodos. OQL (Object Query Language) fue desarrollado por la ODMG (Object Database Management Group) como un lenguaje declarativo para realizar consultas y actualizaciones en bases de datos orientadas a objetos. OQL también incluye extensiones de objetos para identificar objetos, objetos complejos, expresiones de

Page 19: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

6

trayectorias, invocación de operaciones y herencia [Ullman, 1997]. Con base en el ODMG [ODMG 1998] y con el incremento de los lenguajes de programación orientados a objetos, surge el SQL3 (aún sin terminar) como estándar para los SMBDs objeto-relacionales. Como se ha explicado anteriormente, el estado del arte actual acerca del manejo de bases de datos está representado por los SMBDs objeto-relacionales y los orientados a objetos, cada uno con su propio lenguaje (SQL3 y OQL respectivamente). Por otra parte, actualmente la tecnología de las bases de datos se está orientando para dar soporte a las aplicaciones de Internet. Con la llegada del World Wide Web (WWW) se ha visto un enorme crecimiento en la cantidad de información disponible en línea. El Web trae consigo una fusión de información de datos bien estructurados publicados a partir de bases de datos tradicionales y un gran número de páginas no estructuradas escritas en HTML, que representan una gran cantidad de datos semiestructurados . Los datos se pueden clasificar en un espectro lineal de acuerdo con su estructura. En un extremo, las bases de datos relacionales, las orientadas a objetos y las objeto-relacionales almacenan gran cantidad de información de tipos de datos rígidamente estructurados. Los lenguajes de consulta, tales como SQL y OQL, explotan la estructura rígida impuesta a los datos para habilitar consultas declarativas y expresivas. En el otro extremo del espectro, una gran cantidad de páginas en HTML exhiben poca o nula estructuración, puesto que son documentos creados manualmente. En general es extremadamente complicado, si no imposible, capturar las relaciones de datos dentro de documentos en HTML. Para ayudar a unir estos dos extremos del espectro, los investigadores y la industria se han enfocado recientemente a investigar sobre los datos semiestructurados. Los datos semi-estructurados son aquellos datos que pueden tener partes estructuradas y no estructuradas. Los modelos de datos semiestructurados, los lenguajes de consulta y los sistemas de bases de datos están convergiendo alrededor de una representación de datos basada en grafos que combina datos y estructuras en un formato de datos simple. El Lenguaje Extensible de Marcado (XML) está surgiendo como un nuevo estándar para intercambiar información a través del Internet. XML es un lenguaje orientado a texto que implica un modelo de datos muy similar a los modelos de datos semiestructurados propuestos por algunos investigadores. 1.3 Definición del problema El WWW ofrece una fuente de información muy extensa, y en tales circunstancias hay una necesidad e interes enormes por manejar los datos disponibles en el WWW. Los documentos de Web están evolucionando constantemente y no tienen un esquema fijo que pueda definirlos. Los datos que la Web ofrece pueden ser descritos como semiestructurados ya que pueden tener una parte estructurada y otra no estructurada (los datos semiestructurados implican que no tienen una estructura rígida/completa). El tema de XML está llegando a ser importante y surge no sólo cuando se considera el Web, sino también en la integración de fuentes de datos heterogéneas, en una variedad de

Page 20: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

7

aplicaciones no tradicionales de bases de datos y sistemas de información, o sistemas de administración para sitios de Web. Dadas estas limitaciones se ha propuesto a XML como un lenguaje para intercambio de información a través de la Web, que permite superar las limitaciones antes mencionadas. Así mismo existe una creciente necesidad por realizar consultas sobre datos semi-estructurados. Entre las desventajas de los lenguajes de consulta disponibles actualmente se pueden citar las siguientes:

q Los lenguajes de consulta objeto-relacional y los orientados a objetos no son ideales para acceder a documentos semiestructurados (estos lenguajes fueron diseñados para realizar consultas fijas y definidas en un esquema, mientras que, para los datos semiestructurados los esquemas no son rígidos).

q La carencia de capacidades de recuperación de información sofisticada. q Los lenguajes de consulta actuales requieren de un aprendizaje considerable y

maduración. Actualmente existen pocas soluciones posibles. En el desarrollo de esta tesis se atacará el problema de almacenar documentos de XML y un protocolo de consulta de los documentos de XML almacenados y las aplicaciones de Web. El almacenamiento de documentos de XML en una base de datos se puede realizar tanto en modelos relacionales como en modelos orientados a objetos, sin embargo el modelo orientado a objetos simplifica enormemente el trabajo, ya que permiten, trabajar con objetos y almacenar objetos directamente desde lenguajes de programación orientados a objetos (las ventajas y desventajas de estos modelos se describen detalladamente en el punto 4.2.3.2). De esta forma existe la necesidad de mapear entre documentos de XML y los correspondientes objetos para ser almacenados y manipulados posteriormente en la base de datos. 1.4 Objetivo de la tesis

q El objetivo del proyecto de esta tesis es desarrollar un prototipo de software que permita almacenar y recuperar documentos de XML en una base de datos, de acuerdo al estándar 1.0 de XML.

Page 21: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

8

1.5 Beneficios y alcances

q Se desarrolló un prototipo de software que permita almacenar y recuperar documentos definidos en XML de acuerdo al estándar 1.0 de XML.

q El prototipo realiza el mapeo necesario para permitir almacenar documentos de XML como objetos en la base de datos.

q Se desarrollará un protocolo por medio del cual las aplicaciones de Web podrán consultar los documentos de XML contenidos en las bases de datos de documentos de XML.

q Se desarrolló una aplicación que actúe como Servidor de Documentos XML, implementando el protocolo desarrollado en esta tesis.

1.6 Organización del documento Este documento se encuentra estructurado en dos partes principales. La primera parte formada por los capítulo 1 y 2, ofrece una visión general del documento y una introducción de XML y productos comerciales para servir documentos de XML. La segunda parte contiene información acerca del enfoque y método de solución propuesto, así como una descripción de la interfaz y funcionalidad del prototipo desarrollado. Capítulo 2

En este capítulo se definen origen, áreas de aplicación, conceptos y una visión global de las tecnologías relacionadas con XML.

Capítulo 3

Se presenta una revisión de proyectos de investigación y productos comerciales sobre servidores y visualizadores de documentos de XML.

Capítulo 4

Se describe la arquitectura que sirve como base para el desarrollo de esta tesis, explicando y justificando el método de solución, lenguajes y manejadores de bases de datos que se utilizan.

Capítulo 5

Se describe detalladamente cada uno de los módulos de software desarrollados en el presente trabajo.

Capítulo 6

Se presentan las pruebas y los resultados en los cuales se aplica el prototipo de software realizado en esta investigación permitiendo almacenar y recuperar documentos de XML.

Capítulo 7

Se presentan las conclusiones de la tesis, los beneficios que se obtienen con el uso del prototipo realizado, así como los trabajos futuros que pueden derivarse de la arquitectura planteada.

Anexo A

Notas de instalación del Módulo Administrador de Documentos de XML (MAD).

Anexo B

Notas de Compilación del Módulo Administrador de Documentos de XML (MAD) y el Módulo Administrador de Peticiones (MAP).

Anexo C

Diagrama ELKA del modulo MAD.

Anexo D

Diccionario de datos del módulo MAD.

Anexo E Descripción de la interfaz e iconos del MAD.

Page 22: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

9

CAPÍTULO 2

Marco teórico En este capítulo se definirá el origen, áreas de aplicación, conceptos y una visión global de las tecnologías relacionadas con XML.

Page 23: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

10

A continuación se exponen brevemente el concepto de XML (Lenguaje de Marcadi Extensible, eXtensible Markup Language), su relación con el HTML (Lenguaje de Marcado de HiperTexto, HyperTextMarkup Language), objetivos, tecnologías asociadas y sus posibles áreas de aplicación. 2.1 Definición de XML XML es un subconjunto del SGML (Lenguaje Estandarizado y Generalizado para Marcado, por sus siglas en inglés , Standar Generalized Markup Language - ver la fig. 2.1. SGML es un lenguaje para expresar la estructura y el contenido en diferentes tipos de documentos electrónicos. El HTML (Lenguaje de Marcado de Hipertexto) es un lenguaje más limitado y mejor conocido que el SGML, que ha sido y sigue siendo usado para crear páginas de Web. La idea que subyace bajo el XML es la de crear un lenguaje general que sirva para muchas cosas. El HTML está diseñado para presentar infor-mación directamente a los humanos, pero es un lenguaje complicado de procesar por los programas informáticos.

Fig. 2.1 XML como subconjunto de SGML

La desventaja del HTML es que no indica lo que está representando, se enfoca principalmente al formato del documento; por ejemplo: En tipos de letra utilizados, tamaños, colores, etc. El XML hace precisamente lo contrario : describe el contenido de los datos, sin considerar el formato de la presentación de dichos datos. HTML se ha mejorado muchas veces desde su creación. Sin embargo una de sus principales desventajas que todavía prevalece se refiere a su conjunto limitado de etiquetas. La única forma de mejorar la funcionalidad de HTML es creando etiquetas nuevas (aunque esto lleva un proceso largo y no todas las etiquetas son lo suficientemente generales para que puedan ser incluidas en la especificación de HTML). XML es un lenguaje de marcado extensible, lo que significa que con XML se pueden definir etiquetas personales por medio de un DTD (Definición de Tipo de Datos, Data Definition Type). Con XML se pueden crear documentos mucho más flexibles que los que permite crear HTML con sus etiquetas. Dada su enorme flexibilidad, XML se perfila como la nueva generación de lenguajes de marcado para documentos generales. A pesar de sus muchas ventajas, las páginas de Web creadas en XML son todavía pocas. Sin embargo, un buen número de propuestas de marcado para documentos es tán basadas en XML: MathML, SVG, VML, VoxML, XFA, XHTML, XMLNews, etc. Y es que XML puede utilizarse en campos tan variados como los metacontenidos, las bases de datos y los sistemas de mensajería.

Page 24: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

11

La recomendación de XML es un documento elaborado por el W3C (World Wide Web Consortium) , que recopila todos aquellos conocimientos necesarios sobre XML. La propia recomendación dice que “la especificación, junto con los estándares asociados (Unicode y ISO 10646 para caracteres, Internet RFC 1766 para las marcas de identificación de lenguaje, ISO 639 para los códigos de nombre de lenguaje, ISO 3166 para los códigos de nombre de país), provee toda la información necesaria para entender XML versión 1.0 y construir programas de computadora que lo procesen” [XML, 2000]. 2.2 Objetivos de diseño de XML Los objetivos del W3C para el desarrollo de XML son los siguientes:

q Debe ser directamente utilizable sobre Internet q Debe soportar una amplia variedad de aplicaciones q Debe ser compatible con SGML q Debe ser fácil la escritura de programas que procesen documentos de XML q El número de características opcionales en XML debe ser absolutamente mínima,

idealmente cero q Los documentos de XML deben ser legibles por humanos y razonablemente claros q El diseño de XML debe ser preparado rápidamente q El diseño de XML debe ser formal y conciso q Los documentos de XML deben ser fácilmente creables q La concisión en las marcas de XML es de mínima importancia

Esta especificación, junto con los estándares asociados proporcionan toda la información necesaria para entender la versión 1.0 de XML y construir programas de computadora que los procesen [Young, 2001]. Se puede concluir que tres de los puntos fuertes del diseño de XML tienen que ver con la sencillez, variedad de estructuras y un excelente tratamiento de caracteres internacionales. La primera y más importante ventaja de XML se refiere a su sencillez. XML es un formato basado en caracteres y por lo tanto comprensible por los seres humanos. Además, los mensajes de XML pueden leerse fácilmente, crearse y modificarse por medio de herramientas comunes, como editores de texto. Todo esto hace que la comprensión y el análisis de mensajes de XML resulte mucho más sencillo que los escritos en otro formato. Otro ejemplo de sencillez de XML tiene que ver con su habilidad para representar datos estructurados en forma de árbol. XML tiene la potencia suficiente para expresar estructuras complejas de datos. Para muchas aplicaciones, una estructura en forma de árbol es lo suficientemente general y potente como para expresar da tos con un cierto nivel de complejidad. De hecho, supone un buen equilibrio entre el nivel de expresividad y sencillez.

Page 25: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

12

Hoy en día, los negocios se realizan a escala mundial. Esto es especialmente cierto cuando se trata de aplicaciones de Web, ya que Internet se ha encargado de borrar las fronteras nacionales. Resulta muy común que las transacciones comerciales contengan, por ejemplo, nombres de calles en chino o nombres propios en árabe. La recomendación 1.0 de XML está definida de acuerdo con el conjunto de caracteres ISO-10646 (Unicode), por lo que virtualmente todos los caracteres que actualmente se utilizan en el mundo son caracteres oficiales. 2.3 Validez y buena formación de los documentos de XML Un concepto fundamental del lenguaje XML es la diferencia entre un documento válido y un documento bien formado; para apreciar la diferencia entre ambos, en esta sección se explicaran cada uno de ellos [Maruyama, 2000] . 2.3.1 Validez La validez de un documento de XML se refiere a su conformidad o no con las restricciones de validez especificadas en la Recomendación 1.0. Para que se compruebe la validez de un documento, éste debe incluir la declaración <!DOCTYPE> al principio, donde viene especificada la DTD o esquema a la que debe adecuarse el documento para que resulte válido. Supongamos lo siguiente: <DOCTYPE SistemaMeteorologico SYSTEM "http://www.xweather.com/ReporteClima.dtd>" Donde el URL corresponde a la ubicación de la DTD. Si no se incluye la declaración <!DOCTYPE>, el procesador de XML no realizará la comprobación de la validez. En este caso, se limitará a comprobar la buena formación del documento, que veremos en el siguiente punto. El procesador de XML es el que se encarga de leer la DTD o esquema del documento y comprueba su validez de acuerdo con las restricciones de validez. Las VC se centran en la estructura lógica de los elementos. Esto significa que para que un documento resulte válido, las VC exigen que todas sus etiquetas estén definidas en la DTD, que todos los elementos que aparezcan dentro de un elemento, sigan el modelo de contenido definido en la DTD, y que todos los atributos vengan declarados en la DTD, y así sucesivamente. Normalmente, una aplicación necesita conocer todas las etiquetas que incluye el documento para poder procesarlas correctamente. Si aparece un elemento con un nombre de etiqueta desconocido, la aplicación no sabrá qué hacer con él, incluso si el nombre tiene sentido en el lenguaje humano. Por ejemplo, cualquier persona que hable español entiende la etiqueta <Factura>, pero no así los japoneses, para quienes tendría sentido la etiqueta <Seikyyuusho>. Por tanto, si se desea procesar documentos de XML, normalmente resultarán de interés aqué llos que sean válidos de acuerdo con la DTD de referencia.

Page 26: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

13

Sin embargo, XML se diseñó para poder analizar cualquier documento de XML sin tener que definir una DTD explícita, siempre que éste no contenga entidades externas , es decir entidades definidas en una DTD específica. (Se pueden utilizar entidades externas únicamente en aquellos documentos de XML que contengan una declaración <!DOCTYPE>.) Ésta es una de las grandes diferencias que lo distinguen de SGML. En efecto, con SGML todos los documentos tienen que tener forzosamente una DTD. En el caso de HTML, la DTD se conoce y es siempre la misma, por lo que hay necesidad de incluirla en el documento. 2.3.2 Buena formación La buena formación de un documento de XML se refiere a su conformidad o no con las restricciones de buena formación (expresión abreviada como WFC) definidas en la Recomendación 1.0. Mientras que la validez tiene que ver con la estructura lógica de los elementos de un documento, la buena formación se centra en su estructura física, como la de correspondencia entre etiquetas. Por ejemplo, en XML cada etiqueta de inicio del tipo <TR>, tiene que tener su correspondiente etiqueta de fin, como </TR>. En caso contrario, la etiqueta se considerará una etiqueta vacía y deberá llevar una barra lateral al final como en <Ciudad/>. Este requisito no existe en SGML y HTML. Otras restricciones que determinan la buena formación de un documento se refieren a lo siguiente:

q Los nombres de etiquetas deben ser únicos dentro de un elemento. q Los valores de etiquetas no deben contener el carácter “<”.

Los documentos de XML que no estén bien formados son rechazados por el procesador de XML. Debe tenerse en cuenta que un documento válido es siempre un documento bien formado, pero un documento bien formado no siempre es un documento válido. Por ejemplo, un documento bien formado puede contener etiquetas desconocidas y ser perfectamente comprensible, ya que no todas las etiquetas tienen que tener sentido en todas y cada una de las aplicaciones existentes. Supongamos que se desea incluir alguna cadena de texto con marcado de HTML en un determinado campo, como un comentario; En este caso la aplicación que reciba el documento no podrá entender el contenido del comentario etiquetado con HTML. Otro ejemplo para el que no se requiere la validez es la interpretación. En este caso, incluso si el navegador se topa con una etiqueta desconocida, normalmente podrá continuar, sin por ello se provoque un error.

Page 27: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

14

2.4 Tecnologías asociadas XML es en realidad un conjunto de estándares, todos relacionados y complementarios, y son los siguientes:

q Definición de Tipo de Documento (DTD, por sus siglas en inglés) y Esquemas de XML (XML Schema).

q Lenguaje de Estilo Extensible (XSL por sus siglas en inglés). q Modelo de Objeto de Documento (DOM por sus siglas en inglés) q XQL (Lenguaje Extensible de Consultas). q Lenguaje de Enlaces Extensible (XLINK y Xpointer) q Espacio de Nombres (XPath).

A continuación se describe cada una de estas tecnologías. 2.4.1 Definición de tipo de documentos (DTD) La definición de tipo de documento (DTD) conforma la base de documentos válido, ya que establece la gramática de un vocabulario de XML, que, a su vez, determina la estructura de los documentos de XML. Una DTD sirve para llevar a cabo la validación de documentos, que es una parte importante del desarrollo de contenido en XML. Sin conocer las características específicas sobre los elementos que se declaran en un documento y las relaciones que hay entre ellos, es imposible estimar la validez de un documento. Por tanto, es imperativo que se utilice algún tipo de DTD para crear documentos válidos [Morrison, 2000]. Los DTDs definen la estructura de los documentos de XML, describen las etiquetas que aparecen, su estructura, los elementos que puede haber en el documento de XML y su relación entre ellos, sus atributos, posibles valores, etc, los cuales permiten validar el documento de XML. A continuación se definen las tres tareas que lleva a cabo una DTD:

q Especificar el elemento raíz del documento. q Definir elementos, atributos y entidades específicas del documento (DTDs internas). q Identificar una DTD externa en el documento.

2.4.2 Esquema Los esquemas [Schema, 1999] vienen a sustituir a los DTDs. El W3C no ha publicado todavía ningún estándar, pero sí hay una recomendación. También hay iniciativas como SOX [SOX, 1998] de Commerce One´s, de Microsoft y alguna otra más. Los esquemas tienen la misma función que los DTDs, pero tienen más características; por ejemplo, permiten asociar los tipos de datos con elementos. Esto hace posible que los precesadores

Page 28: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

15

de XML lleven a cabo la validación del contenido. En las DTDs, el contenido del elemento está muy limitado a cadenas, mientras que en un esquema XML se puede establecer el tipo de datos de elementos a tipos muy específicos, como enteros y fechas. Los esquemas XML también soportan características adicionale s, como un modelo de contenido abierto y la integración del espacio de nombres. Otro aspecto importante de los esquemas es que están expresados en sintaxis de XML (evidentemente se debe conocer el vocabulario del esquema, llamado XML-Data). Un aspecto muy potente de los esquemas XML es la forma que tienen de establecer el modelo de contenido de los elementos. Más especificamente, el número de veces que se le permite a un elemento aparecer mientras está anidado. 2.4.3 XSL Las hojas de estilo extensible [XSL, 1998] sirven para dar formato a la información, es la forma de poder visualizar el contenido de los documentos de XML en distintos formatos. A un mismo documento de XML se le pueden aplicar las hojas de estilo que se desee, e incluso se puede transformar un documento de XML en otro distinto (Fig. 6). Se pueden aplicar filtros a los datos para visualizar únicamente los que nos interesen. El lenguaje XSL dispone de condicionales y repetitivas.

Fig. 2.2 Esquema de uso de un procesador de XSL para generar una página en HTML

2.4.4 Modelo de Objetos de Documento (DOM) El DOM [DOM1, 1998] es una plataforma y un lenguaje neutral que sirve de interfaz y permite que los programas puedan acceder y actualizar la estructura y estilo de documentos de una manera estándar. El DOM fue diseñado en base al HTML y al XML. La interoperabilidad es necesaria para que los documentos sean enviados a través de Internet El DOM, a pesar de su nombre, no es un modelo de objetos como el Modelo de Objeto de Componentes (COM). El COM [COM, 2001] , como CORBA [CORBA, 1998] (Common Object Request Broker), es un lenguaje independiente para especificar interfaces y objetos. El DOM es un conjunto de interfaces y objetos diseñados para manejar documentos en HTML y XML. El W3C establece varios niveles de actuación, coincidiendo con el tiempo en que se presentan como recomendación: Nivel 1: Se refiere a la parte interna, y modelos para HTML y XML. Contiene funcionalidades para la navegación y manipulación de documentos. Tiene dos partes: el

Page 29: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

16

núcleo o parte básica, referida a documentos de XML, y la parte HTML, referida precisamente a los documentos en HTML.

Nivel 2: Incluye un modelo de objetos e interfaz de acceso a las características de estilo del documento, definiendo funcionalidades para manipular la información sobre el estilo del documento. También incluye un modelo de eventos para soportar los espacios de nombres de XML y consultas enriquecidas. Posteriores niveles especificarán interfaces a posibles sistemas de ventanas, manipulación de DTD y modelos de seguridad. 2.4.5 Lenguaje Extensible de Consultas (XQL) Es un lenguaje de consultas a sistemas de bases de datos. Este lenguaje va inmerso dentro de los documentos de XML, y sirve para hacer consultas a bases de datos y al obtener el resultado genera un nuevo documento de XML (Fig. 2.3). Además se pueden añadir y borrar elementos. Este lenguaje consiste de dos partes principales: un patrón y un constructor de reglas. Los patrones son utilizados similarmente a los patrones XSL para identificar los elementos y las reglas que se le aplicarán. El constructor de reglas define qué pasará con el elemento.

Fig. 2.3 Esquema en que el procesador de XML-QL usa una consulta en XML-QL para analizar un

documento de XML y construir un documento de XML como salida

2.4.6 Lenguaje de Enlaces Extensible (XLL: XLINK/XPOINTER) Una de las características más populares del HTML es la habilidad para insertar enlaces en una página de Web para relacionar esta página con otras creadas en la Web. XML incorpora esta idea y adiciona características nuevas (Fig. 2.4). El lenguaje de enlaces extensible tiene dos partes: (1) XLink [Xlink, 1998] y Xpointer [XMLPointer, 1998]. XLink especifica recursos que pueden insertarse en un documento de XML para describir enlaces entre los distintos objetos.

Documento fuenteen XML

XLINK

XPOINTER

Documento fuentede XML

XLINK

XPOINTER

Fig. 2.4 Esquema de cómo el Xlink y el Xpointer trabajan juntos con el XLL. El Xlink especifica las

localizaciones de recursos y la especificación Xpointer apunta a estos recursos.

Page 30: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

17

En HTML, un enlace es un elemento unidireccional, que va de un recurso a otro y no tiene significado especial, salvo que conduce al documento referenciado cuando se hace clic en un navegador. Con XLink, un creador de un documento puede, entre otras cosas:

q Asociar significados a un enlace proporcionando un "papel" al enlace. q Definir un enlace que conecte más de dos recursos. q Definir un enlace bidireccional.

XPOINTER son enlaces bidireccionales que nos llevan, no al documento completo, sino a una parte concreta dentro de éste. XPointer permite el direccionamiento dentro de la estructura interna de un documento de XML. Los enlaces en los documentos de HTML se etiquetan con expresiones del tipo <a href="http://...">, donde el valor del atributo href se refiere al documento en su conjunto. XPointer permite, en cambio, hacer referencias a elementos concretos, cadenas de caracteres y a otras partes específicas de los documentos de XML, tanto si soportan o no de forma explícita un atributo ID (es decir, un atributo denominado id, como id='Section2"). El ejemplo siguiente es una combinación de un URL y de un XPointer, y se refiere al séptimo hijo del tercer elemento SECTION incluido bajo el elemento raíz (ejemplo basado en el Borrador de Trabajo XPointer del W3C, del 3 de marzo de 1998). http://www.foo.com/bar.html#root().child(3, SECTION).child(7) 2.4.7 Espacio de Nombres (XPath) XPath [XPath, 1999] es un lenguaje de expresión (no XNIL) que se usa para dirigirse a partes de un documentos de XML, pero que no se implementa como vocabulario de XML. Esto se debe a que las expresiones de XPath se utilizan en situaciones en las que el marcado de XML no se aplica en realidad, como los valores de los atributos. XPath proporciona una forma abstracta de dirigirse a las partes de los documentos de XML, y forma la base del direccionamiento de documentos en XSLT. El nombre XPath se basa en la idea del uso de una notación de ruta para dirigirse a documentos de XML. Al igual que XSLT, XPath funciona presuponiendo que un documento ha sido analizado sintácticamente en un árbol de nodos. Define varios tipos de nodos, que se utilizan para describir los nodos que aparecen en un árbol. Siempre hay un nodo raíz único que sirve como raíz de un árbol de XPath, y que aparece como primer nodo del árbol. Todos los elementos de un documento tienen su correspondiente nodo de elemento que aparece en el árbol bajo el nodo raíz. Dentro de un nodo de elementos hay otros tipos de nodos, que corresponden al contenido del elemento. Los nodos de elementos pueden tener un identificador único asociado a ellos, que se usa para hacer referencia al nodo con XPath. XSLT utiliza XPath como base para recorrer un documento de XML y llegar a un nodo determinado.

Page 31: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

18

CAPÍTULO 3

Estado del arte Se presenta una revisión de proyectos de investigación y productos comerciales sobre servidores y visualizadores de documentos de XML.

Page 32: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

19

3.1 Clasificación de productos Los productos para servir documentos de XML se dividen [Bourret, 2001], dependiendo de su enfoque, en dos grandes grupos: enfocados a los datos y enfocados en el documento. Los documentos enfocados a datos utilizan al XML como un formato de transporte de datos (por ejemplo: órdenes de venta, registro de pacientes, etc.), en donde los datos son almacenados en atributos o elementos. Un caso especial de documentos enfocados a datos son las páginas dinámicas (como los catálogos en línea o las listas de direcciones) , los cuales son generados desde un conjunto conocido de datos. Los documentos de XML enfocados al documento utilizan al XML por sus capacidades tipo SGML (estilos, tamaños, visualización de imágenes, etc.); por ejemplo, los manuales de usuario, páginas de Web estáticas, folletos de publicidad, etc. La característica principal es que tienen una estructura irregular y el contenido mezclado, además de que su estructura física es importante. Para almacenar y recuperar los datos en documentos enfocados a los datos , se necesita una base de datos para almacenar, ordenar y administrar los datos. Esto puede realizarse en la base de datos utilizando una aplicación independiente dependiendo de las necesidades; también se deben tomar en cuenta las habilidades de la base de datos para publicación en la Web. Para almacenar y recuperar los datos en documentos enfocados a los documentos, se necesitan sistemas manejadores de contenidos, los cuales están diseñados para almacenar fragmentos de contenidos (como procedimientos, capítulos, glosarios, etc.), así como metadatos del documento (nombre del autor, fechas de revisión y números de documentos). Este tipo de sistemas incluyen otras características muy importantes tales como editores, control de versiones y la habilidad de construir nuevos documentos a partir de fragmentos existentes. Aunque los sistemas manejadores de contenidos utilizan de alguna forma una base de datos para almacenar los documentos, esto queda oculto para el usuario. 3.2 Categorías de productos Los productos para manejar documentos de XML se pueden dividir en seis grandes categorías [Bourret, 2001]:

q Software intermediario (Middleware): Es software al que se puede llamar desde una aplicación para transferir datos entre documentos y bases de datos.

q Bases de datos habilitadas para XML: Bases de datos con extensiones para transferir datos entre documentos de XML y la base de datos.

q Servidores de XML: Plataformas que permiten servir datos en forma de documentos de XML, para y desde aplicaciones distribuidas, por ejemplo comercio electrónico y aplicaciones empresa-empresa.

q Servidores de Web habilitados para XML: Servidores de Web que permiten transferir XML, usualmente desde páginas de Web dinámicas a navegadores.

Page 33: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

20

q Sistemas manejadores de contenidos: Sistemas para el manejo de fragmentos de documentos entendibles para humanos , los cuales incluyen soporte para edición, control de versiones y la creación de documentos nuevos desde otros documentos.

q Implementaciones de DOM persistentes: Las implementaciones de DOM (Document Object Model) utilizan bases de datos para evitar limitaciones de memoria y para permitir un mayor rendimiento. Usualmente este tipo de implementaciones soporta algún lenguaje de consulta para documentos de XML.

3.2.1 Software intermediario (middleware) El software intermediario utiliza una aplicación para transferir datos entre documentos de XML y bases de datos. Este tipo de aplicaciones utiliza alguna variedad de interfaz, la mayoría utiliza ODBC, JDBC u OLE DB. Aunque algunos de éstos sí pueden transmitir datos a través del Internet, muchos necesitan un servidor de Web cuando se necesita el acceso a datos remotos. Algunos de los productos más representativos de este grupo se presentan en la tabla 3.1.

Características

Producto Tipo de licencia

Tipo de base de datos

Dirección Desarrollado

por

Extiende sintaxis de

SQL

4ODS Código abierto ODMG 2.0 BD=>XML=>BD Four Thought No

Beenstalk Comercial Relacional (ODBC) BD=>XML=>BD Transparency Sí

Database DOM Sólo evaluación

Relacional (JDBC) BD=>XML=>BD IBM Sí

DataCraft Sólo evaluación

DB2, Access BD=>XML IBM No

DBIx::XML_RDB Código abierto

Relacional (DBI) BD=>XML=>BD Matt Sergeant No

InterAccess Comercial Relacional (ODBC y OLE DB)

BD=>XML=>BD XML Software

No

Net.Data Comercial

Relacional (ODBC, JDBC y

controladores nativos)

BD=>XML=>BD IBM Sí

ODBC Socket Server Código abierto

Relacional (ODBC y OLE DB)

BD=>XML Team FXML Sí

Tabla 3.1 Productos de software intermediario

4ODS [4ODS, 2001] Es un front-end para el estándar de bases de datos orientadas a objetos ODMG 2.0. Se integran diferentes controladores en el 4ODS para proveer almacenamiento back-end.

Page 34: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

21

Beenstalk [Beenstalk, 2001] Consiste en un motor objeto-relacional que se sitúa entre la aplicación y la base de datos. Actualmente se comunica con las bases de datos por medio de ODBC, en el futuro se planea el soporte para otros tipos de comunicación con bases de datos. Beenstalk extiende la sintaxis de la instrucción SELECT de SQL3, permitiendo subconsultas y, en vez de regresar un conjunto de datos, regresa un valor escalar. Esto permite al producto construir un árbol con el conjunto de resultados que se anidan arbitrariamente en profundidad. Este árbol puede utilizarse entonces para construir los objetos. Una tecnología patentada por la compañía mejora radicalmente la velocidad con que se recuperan los datos al ejecutar una instrucción SELECT por tabla. Para recuperar los resultados como XML, el usuario incluye una función XML() en la cláusula SELECT. Este resultado en serie modela el documento de XML como un árbol de objetos de datos específicos, donde anidando el conjunto de resultados, lo transfiere al documento de XML. El usuario puede especificar cómo se desea el resultado, ya sea como elementos o como atributos, así como los nombres de esos elementos y atributos. Una sintaxis similar se utiliza para introducir datos desde un documento de XML a la base de datos. Database DOM [Database DOM, 2001] Utiliza la tecnología JavaBean para transferir datos entre un árbol DOM y una base de datos con interfaz JDBC. El producto utiliza un manejador de plantillas para separar secciones en la plantilla de acceso de la información, de la base de datos y la capa de datos. Cuando se transfieren datos desde la base de datos y el árbol DOM, el usuario especifica una instrucción SELECT o el nombre de la tabla y la cláusula WHERE; cuando se transfieren datos desde el árbol DOM y la base de datos, el usuario sólo especifica el nombre de la base de datos. DataCraft [DataCraft, 2001] DataCraft permite con gran facilidad generar esqueletos de consultas visualmente y ejecutar estas consultas en la base de datos de DB2 y es una excelente herramienta para desarrollar aplicaciones de base de datos para Web usando XML. Datacraft provee una herramienta visual para navegar por los recursos del esquema, y una herramienta visual para construir consultas desde un esquema basado en XML y Resource Description Framework (RDF, http://www.w3c.org/RDF). DataCraft utiliza RDF y XML para describir colecciones de datos estructuradas y para el intercambio entre recursos -esquema y consultas entre el servidor y el cliente.

Page 35: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

22

DBIx::XML_RDB [DBIx::XML_RDB, 2001] Consiste en un módulo en PERL para transferir datos entre XML y bases de datos DBI. El producto es dirigido por modelo , y el documento de XML está modelado como un conjunto de tablas. El paquete incluye un módulo para transferir datos y dos herramientas, una para exportar datos y otra para importar datos, así como el “Win32 OLE wrapper” que permite realizar llamadas al módulo desde una aplicación que soporta OLE. Este módulo también permite la transferencia de datos binarios codificados en UTF-8. InterAccess [InterAccess, 2001] Es un paquete cliente/servidor para permitir el acceso a una base de datos vía ODBC/OLE DB a través del Internet, usando XML y utilizando TCP/IP como protocolo de transferencia de datos. InterAccess Server corre en el servidor y en los procesos de petición, ya sea para recuperar datos de la base de datos y regresar el resultado al cliente como un documento de XML, así como para recibir datos en formato XML del cliente y almacenarlos en la base de datos. Los datos en el documento de XML son modelados como un árbol de objetos de datos específicos y consecuentemente poder almacenar y/o recuperar desde la jerarquía de las tablas en la base de datos. En el lado del cliente, un objeto COM maneja las comunicaciones con el servidor. Las aplicaciones pueden utilizar la API propietaria en este objeto COM para recuperar datos en formas no XML, o recuperar todas las respuestas de XML desde el servidor desde una función de retorno. InterAccess tiene también un navegador propietario, el cual actúa como front-end para el objeto COM. Net.Data [Net.Data, 2001] Es un complemento al servidor de Web para permitir la transmisión de datos de una base de datos a XML (o cualquier formato basado en texto). Este producto es un manejador de plantillas, que usan un macro lenguaje específico Net.Data. Esto es realmente flexible, ya que incluye variables, definición de funciones, ciclos e instrucciones condicionales; también permite instrucciones de SQL parametrizadas para consultas anidadas. ODBC Socket Server [ODBC Socket Server, 2001] Es un servidor para acceder a cualquier base de datos vía ODBC u OLE DB a través de Internet, usando XML por medio del protocolo TCP/IP. El producto es dirigido por el modelo, y un documento de XML se modela como un conjunto de tablas. Los clientes envían peticiones al servidor por medio de una conexión tipo cadena de caracteres y una instrucción de SQL.

Page 36: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

23

3.2.2 Bases de datos habilitadas para XML Las bases de datos habilitadas para XML son bases de datos (por lo general relacionales), que contienen extensiones (un modelo o manejador de plantillas) para transferir datos entre documentos de XML y las bases de datos habilitadas para XML. Las bases de datos habilitadas para XML están diseñadas generalmente para almacenar y recuperar documentos enfocados a los datos. A pesar de que muchas bases de datos pueden publicar documentos para el Web, la relación entre las bases de datos habilitadas para XML y los servidores de XML es confusa (ambos sirven documentos enfocados a datos, pero los servidores de XML están diseñados principalmente para construir aplicaciones basadas en Web), aunque las bases de datos habilitadas para XML posteriormente se han optimizado para construir aplicaciones basadas en Web. Es menos confusa la línea entre las bases de datos habilitadas para XML y los sistemas manejadores de contenidos; estos últimos tienen características tales como editores y control de versiones que no se encuentran en las bases de datos. Algunos de los productos más representativos de este grupo se presentan en la tabla 3.2.

Características

Producto Tipo de licencia

Tipo de base de datos

Base de datos

Desarrollado por

Extiende sintaxis de

SQL

Acceso de datos

DB2 XML Extender and DB2 Text Extender

Comercial Relacional

(JDBC) DB2 IBM No JDBC

DbXML Comercial XML nativo Propietario dbXML Group

No

ODBC/ JDBC,

manejadores nativos, CORBA

Informix Comercial Relacional Informix Informix Sí Manejador nativo

Lore Código abierto

Semi-estructurado

Propietario Stanford University

No Manejador nativo

Microsoft SQL Server

Comercial Relacional Microsoft

SQL Server

Microsoft Sí Manejador

nativo

Oracle 8i, Oracle 9i XDB

Comercial Relacional Oracle Oracle Sí Manejador nativo

Sybase SQL Server Comercial Relacional Sybase Sybase Sí Manejador nativo

Tabla 3.2 Bases de datos habilitadas para XML

DB2 XML Extender and DB2 Text Extender [DB2 XML, 2001] El DB2 XML Extender es una extensión del DB2 UDB para transferir datos entre documentos de XML y DB2. Los DTDs del XML se mapean a esquemas relacionales (y viceversa) utilizando un lenguaje basado en XML, el DAD (Data Access Definition). El lenguaje es muy flexible y tiene herramientas visuales para la construcción de documentos

Page 37: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

24

DAD; esto se realiza mapeando elementos y atributos para las tablas y columnas. Las aplicaciones utilizan procedimientos almacenados para realizar las llamadas al DB2 XML Extender, el cual almacena o recupera datos basados en el documento DAD. El extensor maneja documentos DAD y DTD en tablas, ahorrando a la aplicación tener que realizar el trabajo de optimización del acceso. El DB2 Text Extender contiene una variedad de tecnologías de búsqueda, tales como búsquedas difusas, búsqueda de sinónimos y búsquedas por oraciones o frases, que pueden ser usadas cuando el documento de XML se almacena en una columna. DbXML [DbXML, 2001] Es un sistema manejador de datos diseñado específicamente para grandes cantidades de documentos de XML. dbXML incorpora muchas características para la integración con los ambientes de aplicaciones de Web modernas, como por ejemplo el acceso remoto de datos vía ODBC/JDBC (TM), manejadores nativos, CORBA y HTTP. dbXML simplificará radicalmente la creación y despliegue de la próxima generación de aplicaciones de Web. Informix [Informix, 2001] Las nuevas versiones de este manejador de bases de datos, soportan XML por medio de módulos DataBlade. Este módulo permite al Informix Internet Foundation generar datos XML y documentos de XML por medio de una interfaz de SQL conocida. Un almacenamiento jerárquico de datos XML permite a los usuarios del Internet Foundation la habilidad de importar, exportar, almacenar estructuras de XML (consultas, índices) en su formato jerárquico nativo. Lore [Lore, 2001] Lore es un sistema manejador de bases de datos (DBMS) para XML (incluye un lenguaje de consulta, técnicas de indexado múltiple y un optimizador de consultas basado en costo, soporte multiusuario, bitácoras y recuperación). Lore incluye una tecnología llamada DataGuide, que permite el manejo de datos externos y búsquedas por proximidad. Microsoft SQL Server [SQL Server, 2001] La siguiente versión de SQL Server (también llamado Shiloh), soportará la transferencia de datos entre documentos de XML y la base de datos. Esta capacidad está disponible sólo a través de HTTP con un URL que contenga la consulta o el nombre del archivo de plantilla que contiene la consulta. Con la cláusula FOR XML se especifica exactamente la salida a un documento de XML. Esta cláusula tiene tres opciones: RAW. Especifica cómo los renglones en la tabla se almacenan en elementos llamados “row” con atributos para cada columna , cuyos nombres son los mismos nombres de columna.

Page 38: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

25

AUTO. Especifica lo mismo que la opción RAW, excepto que los renglones se llaman con el nombre de la tabla. EXPLICIT. Esta opción permite un gran control, especificando los nombres para los renglones y las columnas que serán regresadas como atributos o subelementos. El elemento raíz se llama siempre “root”. Adicionalmente el DTD y las opciones del XMLData especifican si el esquema de la información está incluido en el XML como un subconjunto interno o elementos de datos XML, así mismo se especifica la hoja de estilo (XSL) que la transformará en un documento de XML. Las consultas pueden incluirse dentro de los archivos de plantilla, los cuales permiten regresar los resultados de consultas múltiples, o bien ponerlas dentro de diferentes raíces o subelementos. Las consultas pueden ser parametrizadas, como los valores de un formulario de HTML, pero no es posible enviar el resultado de una consulta como parámetro a otra consulta, lo que permitiría una mayor profundidad. Oracle 8i, Oracle 9i XDB [Oracle 8i, 2001] El sistema de archivos de Internet de Oracle (iFS) permite mapear documentos de XML a tablas en una base de datos, usando una configuración de archivos para definir cómo los elementos y atributos se mapean a tablas y columnas. Aunque se almacenan en una base de datos , iFS puede presentar los documentos de XML como si estuvieran almacenados en el sistema de archivos. Otras características de Oracle 8i son las siguientes: Vista de objetos XML a través de datos relacionales: estas vistas permiten a la información en tablas relacionadas ser materializadas al vuelo en vistas de XML estructuradas de cualquier base de datos. La información en XML se puede insertar fácilmente en la base de datos a través de vistas de objetos. El Oracle Intermedia XML Search automáticamente indexa y realiza búsquedas en documentos de XML y fragmentos de documentos de cualquier tamaño (hasta 4 Gb. cada uno). Así mismo realiza búsquedas jerárquicas a través de los elementos, discriminación doctype y búsquedas en atributos de XML. El Oracle8 Jserver Virtual Machine obedece al Java 1.2 Virtual Machine al compartir el espacio de memoria del servidor de datos. Esto permite aplicaciones de misión crítica, uso intensivo de datos Java y poder procesar código de XML junto con los datos en memoria para acceder rápidamente a interfaces JDBC estándares. Oracle XML Developer Kit (XDK): El Oracle XDK contiene funciones básicas para leer, manipular, transformar y ver documentos de XML. El Oracle XDK contiene los siguientes elementos: analizadores de XML (pa rsers), motores de transformación de XSL, generador

Page 39: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

26

de clases XML, visor de Java Beans de XML, herramientas de SQL para XML, procesador de páginas XSQL y Servlet, Jdeveloper, y componentes de negocios para Java. Sybase SQL Server [Sybase, 2001] El Servidor Empresarial Adaptativo 12.0 provee un marco completo de trabajo para almacenar, recuperar e integrar datos XML, habilitando el comercio electrónico en Internet. Sybase provee un analizador de XML que convierte datos XML a un objeto que puede ser fácilmente entendido por el Servidor Empresarial Adaptativo. Los datos almacenados en la base de datos pueden ser recuperados como datos XML, permitiendo la integración de información existente a aplicaciones de Web. 3.2.3 Servidores de XML Los servidores de XML son plataformas para servir datos en forma de documentos de XML para y desde aplicaciones distribuidas, como el comercio electrónico y aplicaciones empresa-empresa. Generalmente contienen ambientes de desarrollo de aplicaciones y proveen acceso a los da tos y gran variedad de bases de datos, incluyendo bases de datos legadas, mensajes de email y sistemas de archivos. Los servidores de XML proveen plataformas para construir aplicaciones de comercio electrónico y otros tipos de aplicaciones distribuidas, y no son estrictamente bases de datos, aunque obviamente pueden ser utilizadas para el desarrollo de aplicaciones. Los servidores de Web habilitados para XML generalmente pueden publicar datos en el Web como XML, pero éstos no pueden recibir datos desde el Web como XML. Usualmente pueden acceder a gran variedad de bases de datos y conectarlas al Web. Algunos de los productos más representativos de este grupo se presentan en la tabla 3.3.

Características Producto Tipo de

licencia Tipo de base de

datos Intérprete de

consultas Desarrollado por Acceso vía Web

DataChannel Server Comercial

Jerárquica y XML nativo XQL DataChannel Sí

Rhythmyx Comercial Relacional (JDBC y ODBC) Propietario Percussion

Software Sí

Tamino Comercial Jerárquica/XML nativo. Relacional

Propietario Software AG Sí

XML Portal Server (XPS) Comercial Distribuida Propietario Sequoia Software

Corp. No

Tabla 3.3. Servidores de XML

Page 40: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

27

DataChannel Server [DataChannel, 2001] Es un ambiente de trabajo para publicar eficientemente, manejar y recuperar información. Este producto incluye:

q Soporte nativo de XML para almacenar datos como etiquetas de XML. q Arquitectura jerárquica para trabajar con XML de forma más efectiva que los

sistemas de bases de datos relacionales. q Soporte nativo en Web para acceder a datos a través de protocolos estándares de

Web. q Habilidad para almacenar metadatos, contenidos y consultas como objetos de XML. q Búsquedas sobre metacontenidos. q Un intérprete de consultas de XQL y una interfaz HTTP.

Rhythmyx [Rhythmyx, 2001] Un servidor basado en Windows para proveer documentos de XML y HTML a servidores de Web y otras aplicaciones. El servidor Rhytmyx es un servidor de datos XML que traduce fácilmente a documentos de Web, disponibles como documentos en HTML o documentos nativos en XML. El servidor soporta operaciones de consulta y actualizaciones entre documentos de Web y datos back-end. Estos documentos de Web dinámicos son generados por el servidor Rhytmyx en tiempo real, de acuerdo a un mapeo especificado externamente en la herramienta Rhytmyx Workbench. El Rhytmyx Workbench es una interfaz gráfica para diseño. Ésta se usa para definir documentos de Web dinámicos para ser utilizados por el servidor Rhytmyx. Cada colección de estos documentos de Web dinámicos y su mapeo constituye una aplicación Rhythmyx. El servidor tiene una herramienta de administración por medio de apliquetes. Tiene la habilidad de iniciar o detener una gran variedad de funciones en el servidor. Tamino [Tamino, 2001] Este software está basado en un núcleo extremadamente rápido y pequeño que permite procesar nativamente XML; esta tecnología se llama X-machine. Tamino es la primera base de datos que permite almacenar directamente, integrar e intercambiar datos XML. Esto garantiza un alto rendimiento y escalabilidad sin tener capas extras de comunicación para los datos y los documentos de XML. Tamino acepta objetos de XML como entrada y ofrece objetos de XML como salida. Provee también la administración interactiva de múltiples bases de datos locales y remotas a través de un visualizador de Web.

Page 41: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

28

XML Portal Server (XPS) [XPS, 2001] La funcionalidad del XPS puede dividirse en dos servicios: El servidor de Aplicaciones XML (XAS) y el Servidor de Entrega de Contenidos (CDS). El XAS provee una arquitectura para desarrollar portales interactivos de comercio electrónico. El XAS utiliza una capa de XML para enviar y recibir mensajes además de tareas para y desde otras aplicaciones. Los mensajes son delegados a agentes especializados y agentes que trabajan con el ambiente del Servidor de Transacciones de Microsoft (MTS). Trabajando con el MTS, el XPS garantiza el éxito de una transacción o el proceso de deshacer la operación realizada. El CDS es el responsable de la interacción y proceso del usuario final en el servidor portal. Maneja el acceso a todas las fuentes de contenidos de datos, como el envío (basado en el agente de envío de contenidos), operando junto con el XAS o comunicándose directamente con una aplicación de producción, el Web, o ambientes de publicación/autoría (Office, Staroffice, etc.). Los datos son enviados a través del CDS.XPS, que permite agregar contenido desde cualquier aplicación o sitio de Web. XPS colecciona y agrega contenidos por medio de dos mecanismos: arañas inteligentes (spiders) y agentes de envío de contenidos. Las arañas navegan por los sistemas de archivos locales y de red, sitios de FTP, sistemas de correo, y una gran cantidad de aplicaciones indexando metadatos, contenidos o ambos. El XPS reconoce e indexa inteligentemente más de 40 formatos de archivos. Los agentes de envío de contenido proveen una interfaz de Web integrada para las aplicaciones de negocios más populares, manejadores de contenidos, Group Ware, teniendo las ventajas de los servidores basados en Web y proveedores de contenido. 3.2.4 Servidores de Web habilitados para XML Los servidores de Web habilitados para XML son servidores de Web que tienen alguna extensión para poder servir documentos de XML para el Web. Generalmente utilizan un manejador de plantillas, utilizando instrucciones de SQL incluidas en algún lenguaje para recuperar datos y construir dinámicamente documentos de XML. Ésta es la diferencia entre los servidores de Web habilitados para XML y los servidores de XML. Aunque muchos sistemas manejadores de contenidos pueden publicar XML en el Web, fundamentalmente difieren en que fueron diseñados para manejar documentos (enfocados en el documento), mientras que los servidores de XML y los habilitados para XML sirven documentos como páginas dinámicas. Algunos de los productos más representativos de este grupo se presentan en la tabla 3.4.

Page 42: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

29

Características

Producto Tipo de licencia

Tipo de base de datos

Lenguaje de guiones Desarrollado por IDE

Soporte de transacción de

objetos

Cocoon Código abierto Relacional (JDBC)

eXtensible Server

Pages(XPS)

Organización Apache No JDBC

ColdFusion Comercial

Relacional (JDBC, OLE

DB y manejadores

nativos)

ColdFusion Markup

Language (CFML)

Allaire Sí COM, CORBA y EJB

Zope Código abierto

Orientada a objetos,

relacional (ODBC) y no

relacional (LDAP, IMAP)

DTML (Document Template Markup

Language)

Digital Creations No

Tabla 3.4 Servidores de Web habilitados para XML Cocoon [Cocoon, 2001] Cocoon es un ambiente de trabajo para el servidor de Web Apache. Las páginas de Web están escritas en XPS (eXtensible Server Pages), un lenguaje de guiones. Este lenguaje recupera datos de la base de datos con el módulo procesador de SQL (por medio de JDBC). Las páginas de Web que necesitan datos incluyen instrucciones de SQL que son parametrizadas. Se puede utilizar un método sustituible para instrucciones de SQL más complejas. El procesador de SQL entrega el resultado como XML. En este modelo el XML es como una tabla, utiliza el mismo DTD que el Oracle XSQL Servlet. El usuario especifica los nombres de los elementos para ser usados en la tabla a nivel de registro. Los nombres a nivel de columna se toman de la base de datos. ColdFusion [ColdFusion, 2001] ColdFusion es un servidor de aplicaciones de Web para recuperar y actualizar datos de numerosas fuentes de datos, incluyendo bases de datos (ODBC, OLE DB y manejadores nativos), correo electrónico y sistemas de archivos. Las aplicaciones están escritas en ColdFusion Markup Language (CFML) y es procesado por el servidor en tiempo de ejecución. El resultado es un documento de texto, por lo general en XML o HTML. ColdFusion incluye un ambiente integrado de desarrollo y soporta transacción de objetos a través de COM, CORBA y EJB (Enterprise Java Beans ).

Page 43: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

30

Zope [Zope, 2001] Zope es un servidor de aplicaciones de Web de código abierto. Zope permite el trabajo cooperativo en la creación y manejo de aplicaciones de negocios basadas en Web, como los portales e intranet. Zope permite construir fácilmente búsquedas en el sitio, news, y aplicaciones de comercio electrónico, además de que es muy configurable. El objeto de base de datos Zope en sí puede ser exportado con formato XML. Un prototipo de documento de XML está disponible y permite ser descargado en un documento de XML dentro de Zope, donde el documento se analiza automáticamente y los elementos se almacenan en objetos individuales Zope. Esto hace posible el uso de DTML (Document Template Markup Language) para generar informes en subconjuntos de elementos o elementos individuales indexados para búsquedas. Adicionalmente los resultados de una consulta a una base de datos relacional pueden usarse en un documento en DTML, el cual simplemente realiza llamadas a un objeto de consulta y lo expande en la página final. Así es posible recuperar datos relacionales como XML usando DTML. 3.2.5 Sistemas manejadores de contenidos Los sistemas manejadores de contenidos son sistemas para almacenar, recuperar y ensamblar documentos y fragmentos de documentos. Generalmente incluyen algunas características como editores, control de versiones y acceso multiusuario. Aunque utilizan bases de datos, esto generalmente está oculto al usuario final. La mayoría de los sistemas manejadores pueden publicar XML en el Web, pero difieren de los servidores de Web habilitados para XML en que los sistemas manejadores de contenidos están diseñados para el manejo de documentos (enfocados al documento), mientras que los servidores de Web habilitados para XML simplemente muestran documentos (enfocados en los datos) en la forma de páginas de Web dinámicas. Algunos de los productos más representativos de este grupo se presentan en la tabla 3.5.

Características

Producto Tipo de licencia

Validación de DTD y/o esquemas

Manejo colaborativo

Desarrollado por

Genera doc.ument

os de XML

dinámicos

Transfor-mación de

doc. de XML

Documentum Comercial Sí Sí Documentum,

Inc. Sí Sí

Dynabase Comercial Sí Sí Inso Sí No POET Content Management Suite

Comercial Sí Sí POET

Software Sí Sí

SIM (Structured Information Manager)

Comercial Sí No Progressive Information

Technologies Sí Sí

Tabla 3.5 Sistemas manejadores de contenidos

Page 44: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

31

Documentum [Documentum, 2001] Documentum es una solución empresarial para autoría de contenidos, manejo, reuso, publicación en Web e intercambio de contenidos basada en XML. Entre las características principales de este producto se encuentran las siguientes:

q Soporte nativo de documentos de XML. q Plantillas basadas en Web para creación de contenidos. q Incluye herramientas para facilitar la autoría e integración de documentos de XML. q Validación de DTD y esquemas. q Almacenamiento configurable de documentos de XML. q Soporte para enlace y manejo de componentes. q Poderosas capacidades de búsqueda a través de estructuras, contenido y metadatos. q Generación de documentos de XML dinámicos. q Transformación de documentos de XML (soporte integrado para XSLT).

Dynabase [Dynabase, 2001] Dynabase combina un sofisticado manejo de contenidos con un poderoso ambiente de servicio de documentos dinámicos. Fue diseñado para grupos de trabajo distribuidos en una organización. Dynabase brinda control, capacidad de crecer y automatización para equipos de comercio electrónico. Dynabase permite autoría, desarrollo, producción personal, y manejo colaborativo directamente en el sitio (servidor de Web) a través de Internet y la intranet corporativa. Está diseñado también para manejar todo tipo de contenidos y trabaja con una gran variedad de editores. Permite que los equipos de comercio electrónico puedan seleccionar la mejor herramienta para cada tarea específica. POET Content Management Suite [POET, 2001] Este sistema provee publicación en SGML y XML con un sistema de manejo de contenidos (CMS) en niveles de componentes para la creación enfocada a contenidos y producción. Provee un ambiente colaborativo, reuso, manejo de versiones y capacidades de integración que benefician al publicista, permitiendo una mayor colaboración entre grupos de trabajo, mejorando el reuso y esfuerzo necesario y tiempos más cortos de creación. CMS es flexible ya que permite utilizar múltiples DTDs, manejo de tipos de datos, aplicaciones, soporte a sistemas legados, además proporciona una interfaz configurable y muy amigable. Actualmente POET software se fusionó con una compañía de software, generando una nueva compañía y renombrando su base de datos como Fast-Object.

Page 45: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

32

SIM (Structured Information Manager) [SIM, 2001] SIM está diseñado para soportar aplicaciones donde el contenido es más valioso que el sistema que lo rodea. Debido a su arquitectura modular, los componentes de SIM pueden ser usados separadamente de una aplicación en particular. El SIM incluye las siguientes características:

q Soporte extenso de SGML/XML. q Indexado completo de textos. q Poderosas herramientas de creación para aplicaciones de Web. q Componentes de alto rendimiento.

3.2.6 Implementaciones de DOM persistentes Las implementaciones de DOM persistentes utilizan una base de datos para mejorar el rendimiento en cuanto a velocidad y problemas de memoria que pueden ocurrir cuando se usan documentos de DOM de gran tamaño. Estas implementaciones generalmente incluyen un lenguaje de consulta para XML (por ejemplo: XQL, XOQL, o XPATH). Tanto los sistemas manejadores de contenidos, como las implementaciones de DOM persistentes se pueden usar para almacenar, recuperar y realizar consultas sobre documentos de XML, así como crear documentos nuevos de documentos existentes (o fragmentos), pero a diferencia de los sistemas manejadores de contenido, no tienen capacidad de control de versiones y edición (aunque se pueden implementar al desarrollar la aplicación de DOM). Algunos de los productos más representativos de este grupo se presentan en la tabla 3.6.

Características Producto Tipo de

licencia Base de datos Lenguaje de consulta para XML Desarrollado por

Monster DOM Co mercial Ozone XOQL o XPath Ozone-db.org Persistent DOM Comercial XQL GMD-IPSI

Tabla 3.6 Implementaciones DOM Persistentes Monster DOM [Monster DOM, 2001] Monster DOM es una implementación DOM persistente construida a partir de la base de datos orientada a objetos Ozone. Esta implementación ofrece acceso multiusuario e incluye una implementación de XPath, esto se puede usar con la implementación Xalan del XOQL para consultas a documentos de XML.

Page 46: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

33

PDOM [PDOM, 2001] El Persistent DOM (PDOM) es una implementación completa del W3C-DOM API en cuanto a indexado y archivos binarios de XML. Los documentos son analizados y almacenados en forma binaria, accesible para operaciones de DOM. Así mismo cuenta con una arquitectura de cache, lo que incrementa el rendimiento. El procesador de XQL se puede usar para realizar consultas a los archivos de PDOM. 3.3 Soporte de navegadores Se realizó una revisión de los productos para servir documentos de XML y la forma en que lo realizan. Sin embargo es necesario realizar también un análisis de los productos que funcionan como visualizadores de documentos de XML y algunas de las tecnologías asociadas para la presentación de documentos de XML. XML se está situando como una de las tecnologías de Web recientes más atractivas y potentes. Esto requiere navegadores que soporten XML y sus numerosas tecnologías relacionadas, como Espacios de Nombres, CSS, XSL, DOM, etc. Sin un soporte para navegador sólido, XML sería otra tecnología de Web que probablemente no llegaría nunca a nada. Las tecnologías de Web suelen vivir y morir según el nivel de soporte que reciben de los grandes fabricantes de navegadores [Morrison, 2000]. A continuación se mencionan los navegadores de Web que, o bien soportan XML, o bien se encuentren en el proceso de añadir soporte de XML a una versión futura:

q Microsoft Internet Explorer (IE -version 5.0 y 6.0). Una de las características más atractivas de IE es que es posible ver código puro directamente en el navegador cuando se abre un documento de XML que no tiene una hoja de estilo asociada ; IE presenta el documento en forma de árbol. El soporte de IE para el manejo de errores es muy bueno, detecta la violación de reglas de buena construcción, además verifica la validez de un documento de XML.

q Netscape Navigator (Mozilla). Actualmente la version 4.78 del Netscape Communicator no soporta el XML. El futuro de Netscape Navigator apoya el movimiento de código abierto de Mozilla. Debido a que la versión de Navigator está en desarrollo, es difícil ser específico acerca del soporte que ofrecerá para XML. No obstante, las versiones previas del navegador muestran que Mozilla apoyará seriamente los estándares de XML. Mozilla ha incorporado el analizador Expat (desarrollado por James Clark en lenguaje C).

q CITED DocZilla. Es el primer producto no comercial de Netscape que se integra en la iniciativa de código abierto de Mozilla. En términos de soporte para XML, DocZilla incluirá una amplia gama de características entre las que se incluyen soporte para SGML, XML, CSS, DOM y RDF.

q W3C Amaya. Amaya es una herramienta de navegación y autoría, creada por el W3C para servir como herramienta de demostración y banco de pruebas para los nuevos protocolos y formatos de Web. Amaya incluye un soporte limitado para dar

Page 47: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

34

estilo a los documentos de XML por medio de las CSSs. Amaya proporciona un gran soporte al vocabulario MathML diseñado para modelar contenido matemático, además soporta la creación y presentación de gráficos de vector en 2D en un formato de XML experimental.

q Opera. Es un navegador de Web muy estable, ligero y eficiente, aunque no existe soporte de XML, posee una implementación de CSS.

3.4 Transformación de documentos de XML Actualmente existen dos mecanismos para realizar la presentación de documentos de XML: las hojas de estilo en cascada (CSS) y mediante el lenguaje de presentación de hojas de estilo extendidas (XSL). El proceso de transformación es realizado en el cliente, y es el cliente el responsable de transformar el documento de XML en algún formato de visualización, lo cual resultaría en distribuir la carga de trabajo entre el cliente y el servidor, además de que el servidor no tiene que realizar conexiones extras para ordenar, filtrar, etc., ya que se realizará en el mismo cliente. Debido a que en el proyecto de tesis no se considera un módulo de transformación en el servidor, no se pueden realizar transformaciones en el lado del servidor, limitando a que el formato de salida de una consulta de un objeto de XML al Módulo Administrador de Peticiones sea XML nativo o HTML, utilizando como mecanismo de presentación a las hojas de estilo en cascada, por lo que se necesita cierto soporte del navegador. De acuerdo a las características de los navegadores de Web (ver el punto 3.3) que soportan XML, se escogió al Microsoft Internet Explorer por tener todas las caraterísticas necesarias para la visualización de los documentos de XML. 3.4.1 Mecanismos de presentación: hojas de estilo (CSS) y el lenguaje de hojas estilo extendidas (XSL) Una de las ventajas principales de los documentos de XML es la capacidad de separar los datos, de la forma en que esos datos son mostrados (ya sea utilizando un navegador, o una herramienta de desarrollo, o cualquier otro mecanismo). Mediante la separación de la forma de presentación, se consiguen importantes ventajas: podemos disponer de un método uniforme de presentación definido una sola vez, y utilizarlo con múltiples documentos de XML, o podemos definir un conjunto de modos de presentación y permitir al usuario que utilice el que más le convenga en cada caso []Morrison, 2000]. Actualmente existen dos tipos de hojas de estilo disponibles para poder visualizar documentos de XSL: las hojas de estilo en cascada o como se conocen en su notación inglesa Cascading Style Sheets (CSS) y el lenguaje de estilos extensibles o eXtensible Style Language (XSL). Ambos estándares se derivan a su vez del Lenguaje de Especificación y Semántica de Estilo de Documentos (Document Style Semantics and Specification

Page 48: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

35

Language, DSSSL) que es un estándar internacional sobre lenguajes para hojas de estilo, principalmente utilizado para dar formato e imprimir documentos. Aunque cabe mencionar que se han eliminado algunas funcionalidades y se han añadido nuevas capacidades para hacerlo más indicado para el trabajo con documentación en linea, mucho más adecuado a los documentos de la Web. Existen grandes diferencias entre XSL y CSS, algunas de las más significativas se muestran en la tabla 3.7.

XSL CSS Utiliza notación de XML. Utiliza su propia notación. El árbol objeto del formato puede ser totalmente diferente del árbol fuente.

El árbol objeto del formato es casi siempre el árbol fuente.

La herencia de propiedades se da sobre el árbol destino del formato.

La herencia de las propiedades de formato se da sobre el árbol fuente.

Independiza el contenido de un documento de su formato, permitiendo transformaciones muy sofisticadas, todo ello sin modificar el documento de XML original, que podrá ser utilizado en otros destinos simplemente cambiando sus hojas de estilo.

La estructura de un documento de XML es idéntica a la estructura de su presentación; es decir, todos sus componentes, de aparecer en la presentación (pueden no aparecer), lo harán en el orden en que se definen en el documento de XML.

Los cambios en la presentación no afectan a la estructura del documento de XML original.

La mayoría de los cambios necesarios en la estructura de la presentación llevarán consigo asociados cambios del contenido del documento de XML original.

Está dirigido a operaciones de formato complejas, que suelen tener fases de transformación del documento de XML.

Está más orientado a operaciones de formatos sencillas para el tratamiento de documentos en línea.

Tabla 3.7 Diferencias entre XSL y CSS Se puede decir que CSS “decora” el árbol de XML a través de propiedades de formato, mientras que XSL lo transforma en un nuevo árbol haciendo uso de un conjunto complejo de instrucciones. De hecho, el árbol generado no tiene siquiera por qué ser un documento de XML, podría ser en HTML, RTF, PDF, Postscript, etc. Algunas de las realizaciones extras de XSL incluyen las siguientes:

q Generación de etiquetas de texto para datos. q Composiciones complejas utilizando etiquetas de HTML. q Aparición de datos en más de una ocasión a lo largo de la presentación. q Acceso a la información almacenada en los atributos de los elementos. q Reordenación de los datos dinámicamente.

Las hojas de estilo en cascada o CSS son un estándar desarrollado por el World Wide Web Consortium (W3C) para hacer que las páginas de Web tuvieran mayores capacidades a la hora de ser visualizadas, sin necesidad de añadir al HTML estándar nuevas etiquetas de formato. Actualmente existen dos versiones de CSS disponibles como estándares oficiales: CSS1 [CSS1, 1996] y CSS2 [CSS2, 1998] .

Page 49: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

36

El W3C se refiere a estos documentos como “hojas de estilo en cascada”, porque se pueden utilizar múltiples estilos para controlar la apariencia de las páginas, y el navegador sigue las reglas en “cascada” para determinar la prioridad y resolver los conflictos. Las ventajas del uso de hojas de estilo CSS son las siguientes:

q Posibilidades adicionales para el formato/presentación. q Un mayor control sobre el documento. q Mayor facilidad en la personalización de documentos. q Utilización de márgenes, sangrías, diferentes tamaños, colores de fondo, etc.,

características de formato dadas por supuesto por los diseñadores, pero que no están soportadas directamente por el conjunto de etiquetas estándar.

q Se dejan de utilizar incómodas alternativas para las tareas básicas de formato. q Permite modificar el formato de cada una de las páginas de Web que componen el

sitio sin necesidad de modificar individualmente cada una de las etiquetas que lo construyen.

q Reduce el desorden dentro de un documento. q Permite el uso de variaciones de diseño a través del uso de clases.

Page 50: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

37

CAPÍTULO 4

Arquitectura En este capítulo se define la arquitectura del servidor de documentos de XML. Se presentan los componentes principales, procesos y flujos de información necesarios para el desarrollo de esta tesis.

Page 51: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

38

4.1 Servidor de documentos de XML Existen cuatro puntos importantes a tomar en cuenta para realizar un servidor de documentos de XML [Maruyama, 2000].

q La comunicación entre el navegador del cliente y el servidor de Web. q Enviar XML como flujo desde el cliente al servidor. q Enviar XML transformado desde el servidor hasta el cliente. q Almacenamiento y recuperación de documentos de XML.

Cada punto posee una serie distinta de temas asociados. Por ejemplo, el mecanismo general para comunicarse entre el navegador y el servidor es el HTTP (HyperText Transfer Protocol). Sin embargo, actualmente no existe un soporte directo para XML integrado en los servidores de HTTP. Por lo tanto, se tendrá que ampliar el servidor de Web de alguna forma. Existen varios métodos para ampliar un servidor (CGIs, API del servidor y servicetes de Java). El segundo punto, enviar el flujo de XML al servidor, puede no ser un requisito. Por ejemplo, un servidor de documentos sencillo que almacene documentos de XML y que sirva HTML con formato, apropiadamente no tendrá la necesidad de recibir XML. Desde el punto de vista del navegador, es lo normal. Por otra parte, un navegador que esté enviando una actualización a una base de datos puede querer procesar XML y enviar el texto resultante al servidor. La ventaja es que evita las transformaciones del lado del servidor, y mejor aún, podría realizar la validación del lado del cliente para “anular los datos incorrectos” antes de tocar la base de datos. Por tanto, la decisión para manejar XML entrante es específica al problema en particular. Sin embargo, como mínimo se tendrá que enviar XML transformado del servidor al cliente. El flujo de datos puede ser HTML transformado o XML generado dinámicamente. Para llevar a cabo el nivel de procesamiento de XML, tendrá que instalarse un analizador de XML para leer documentos de XML y exponerlos a través del DOM, y un procesador de XSL para llevar a cabo las transformaciones. Este análisis y transformación los realizan los procesadores de XML y el procesador de XSL, todo esto dentro del entorno del servidor de Web. Los procesadores más conocidos están escritos en Java o en C++, sin embargo hay procesadores escritos en Delphi, Python, Perl y Javascript. El problema de almacenar y recuperar documentos de XML es complejo, ya que, debido a la naturaleza de los documentos de XML, es necesario realizar una serie de pasos con la finalidad de poder almacenarlos y recuperarlos posteriormente. El Módulo Administrador de Documentos de XML será el encargado de realizar esta tarea.

Page 52: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

39

4.2 Arquitectura del proyecto El servidor de XML para aplicaciones de Web consiste de dos módulos (Fig. 4.1).

q Módulo Administrador de Peticiones (MAP). q Módulo de Administración de Documentos de XML (MAD).

Navegadores(Netscape 6, Explorer 6)

Módulo de Administrador de Documentos de XML (MAD)

Base de datos orientada a objetos

EntornoWeb

CGIs,Servicetes,

etc...

Módulo Administrador de Peticiones (MAP)

Aplicaciones de Web

Servidor de Documentos de XMLInternet

Repositorio de Documentos de XML

Fig. 4.1 Arquitectura del Servidor de documentos de XML para aplicaciones de Web Como se puede observar en la fig. 4. 1, la manera en que pueden interactuar las aplicaciones de Web (ya sean navegadores o aplicaciones) es a través del módulo Administrador de Peticiones por medio de un protocolo. Este módulo recibe todas las peticiones de los clientes y regresa el documento de XML solicitado. 4.2.1 Módulo Administrador de Peticiones El Módulo Administrador de Peticiones (MAP) es el encargado de recibir las peticiones de clientes (aplicaciones de Web o navegadores a través de CGI, servicetes , JSP, etc.) y enviar el resultado de la consulta al cliente. El resultado puede ser un listado, una solicitud de mayor información sobre algún objeto ó devolver el documento de XML u hoja de estilo solicitada. En caso de que la petición del cliente sea un comando de listado o de solicitud de información detallada sobre algun objeto de la base de datos de documentos de XML, se resuelve la consulta y el resultado es enviado al cliente.

Page 53: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

40

Si la petición del cliente es un documento de XML (esquema, hoja de estilo de XSL o documento de XML generado de la base de datos), el MAP se comunicará con la base de datos administrada por el MAD, se resolverá la consulta y se enviará el resultado, el cual puede ser un mensaje de error o el documento de XML solicitado (generado dinámicamente, ya que es recuperado de la base de datos orientada a objetos POET). El servidor de Web se encargará de las peticiones que no sean documentos de XML y que estén vinculadas dentro de un documento de XML, por ejemplo esquemas, hojas de estilo, hojas de estilo en cascada, otros documentos de XML, imágenes, videos, etc. Y será el cliente quien formará la página final (uniendo el contenido con su pre sentación) si así lo solicitara el cliente. 4.2.2 Protocolo de comunicación La comunicación entre una aplicación cliente y el Módulo Administrador de Peticiones (MAP), se realiza a través de un enlace vía socket al puerto 5000. El protocolo de comunicación consta de 11 comandos : uno de ayuda, dos de listados, tres de información, tres de recuperación de documentos y dos de información de URL. Estos comandos fueron definidos e implementados como parte de esta investigación. En la tabla 4.1 se describe la sintaxis de los comandos que forman el protocolo de comunicación entre una aplicación de Web y el MAP.

Comandos Descripción ?

Lista de los comandos permitidos.

list database Lista de las bases de datos de documentos de XML disponibles en el servidor.

list docxml BD:PASS Lista de los documentos de XML disponibles en la base de datos con identificador BD.

info schema BD Información adicional sobre el esquema de la base de datos con identificador BD.

info database BD:PASS Información adicional sobre la base de datos de documentos de XML con identificador BD y contraseña PASS.

info stylesheet STYLESHEET Información adicional sobre la hoja de estilo con identificador STYLESHEET.

get docxml BD:PASS:OBJECT:FORMAT

Recupera el documento de XML con identificador OBJECT de la base de datos BD con identificador de formato FORMAT.

get schema SCHEMA Recupera el esquema con identificador SCHEMA. get stylesheet STYLESHEET Recupera la hoja de estilo con identificador STYLESHEET . url SHEMA Recupera el URL del esquema con identificador SCHEMA. url STYLESHEET Recupera el URL de la hoja de estilo con identificador STYLESHEET .

Tabla 4.1 Comandos del MAP Las letras con mayúsculas en la tabla indican que se sustituye por el nombre del objeto del que se desea información.

Page 54: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

41

El protocolo desarrollado es un protocolo sin estado (es un protocolo de petición-respuesta). El proceso que se realiza en una petición de un cliente es la siguiente:

q El cliente realiza una conexión (vía socket) al puerto 5000 del servidor de XML enviándole a éste algún comando de acuerdo a la sintaxis descrit a en la tabla 4.1.

q Es servidor crea un hilo de ejecución. Las tareas que se realizan en este hilo son las siguientes: q Se analiza el comando recibido para conocer el tipo de petición. q Si el comando requiere un documento de XML y este se encuentra en la base de

datos de documentos de XML se le solicita a POET el objeto (se convierte la consulta a OQL –Lenguaje de Consulta de Objetos u Object Query Language por sus siglas en inglés) y se envia al cliente el documento de XML.

q Si el comando es una petición de ayuda, información (detalles sobre algún esquema u hoja de esilo) o solicitud de un esquema u hoja de estilo, se resuelve la consulta y se envia al cliente el resultado de la petición.

q Si la sintaxis del cliente es incorrecta o el documentos de XML no se encontró en la base de datos, el MAP enviará al cliente un mensaje especificando el errror generado.

q Se cierra la conexión, terminando la conversación entre el cliente y el servidor. 4.2.3 Módulo Administrador de Documentos de XML (MAD) El Módulo Administrador de Documentos de XML es el encargado del almacenamiento, recuperación y mantenimiento de los documentos de XML (Fig. 4.2). Las actividades del MAD incluyen la generación de bases de datos de documentos de XML (que incluye altas bajas y cambios de esquema), la administración de documentos de XML (verificación de buena formación y validez), administración de hojas de estilo y el mantenimiento de la integridad en toda la información almacenada en la base de datos de documentos de XML.

Módulo de Administrador de Documentos de XML (MAD)

Base de datos orientada a objetos

Repositorio de Documentos de XML

Fig. 4.2 Módulo Administrador de Documentos de XML EL MAD mantiene la configuración de parámetros necesaria para la generación de bases de datos de documentos de XML y la validación de documentos de XML.

Page 55: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

42

Para administrar los documentos de XML que existen en la base de datos de documentos de XML (y toda la información adicional a esta base), el MAD mantiene una base de datos en Paradox. Esta base funciona como índice de toda la información que existe en el Servidor de Documentos de XML. El MAP utiliza esta base para realizar sus consultas. Para el desarrollo del MAD se utilizó como repositorio de documentos de XML el manejador de bases de datos orientada a objetos POET. 4.2.3.1 Almacenamiento de documentos de XML Debido a la naturaleza de los documentos de XML (los documentos de XML están formados de unidades o fragmentos de información y que a su vez está enlazada, utilizan una estructura jerárquica y un mecanismo de espacio de nombres), las bases de datos relacionales (RDBMS) y los sistemas de archivos jerárquicos no son ideales para almacenar este tipo de documentos. Los sistemas manejadores de base de datos orientadas a objetos (ODBMS, Object-Oriented Database Management Systems) tienen muchas características que los hacen la solución perfecta para almacenar documentos de XML (ver tabla 4.2).

4.2.3.2 Bases de datos orientadas a objetos vs RDBMS y sistemas de archivos En la tabla 4.2 se muestra el porqué las bases de datos orientadas a objetos son una solución mejor para los requerimientos del manejo de documentos de XML [Poet, 1997b] [Robie, 2001] , con respecto a las RDBMS y los sistemas de archivos.

Requerimientos Bases de Datos Orientadas a Objetos

RDBMS y Sistemas de Archivos

Nombramiento jerá rquico. XML utiliza nombramiento jerárquico de objetos o elementos.

Las bases de datos orientadas a objetos son construidas a partir de una estructura jerárquica, no normalizan los datos, estos son almacenados en un formato nativo enriquecido. Debido a esto es posible la herencia, polimorfismo y otras capacidades propias orientadas a objetos.

Las bases de datos relacionales (RDBMS) y los sistemas de archivos no tienen soporte para nombramiento jerárquico, ambos requieren de una normalización o uniformización de los datos. Este proceso limita la funcionalidad de los datos. Cualquier mecanismo de nombramiento jerárquico debe ser construido arriba del sistema de archivos o el RDBMS.

Manejo complejo de vínculos. XML introduce una vinculación compleja (XLL), que incluye vínculos bidireccionales y vínculos uno a muchos.

Las bases de datos orientadas a objetos almacenan los objetos o elementos de XML en su formato nativo, incluyendo todos sus vín-culos. Cuando se realiza la recupe-ración de un objeto, se recuperan todos los vínculos asociados a ese objeto, haciendo que el manejo de estos vínculos sea muy simple.

Las RDBMS y los sistemas de archivos por su arquitectura no son capaces de manejar estos enlaces dentro de la base de datos por sí mísmos, y para poder realizar este manejo se tendría que implementar en una capa superior del sistema de archivos o del RDBMS.

Page 56: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

43

Navegación jerárquica del árbol. La navegación rápida de los nodos o vínculos del árbol es crítica para el almacenamiento escalable de documentos de XML.

Las bases de datos orientadas a objetos almacenan los objetos en un formato nativo junto con todos sus vínculos. Como resultado de esto, las bases de datos orientadas a objetos mantienen una estructura jerárquica en árbol, por lo que al recorrer estos vínculos mejora el rendimiento y la escalabilidad.

Aunque el soporte para el nombramiento jerárquico puede ser implementado sobre el Sistema de Archivos y el RDBMS, realizar esto requiere de mucho trabajo. En los RDBMS sólo se puede recorrer por profundidad, y esto se realiza a través de reuniones, por esta razón es una solución lenta y no escalable.

Soporte para una longitud variable de datos y formato. Los datos almacenados deben ser capaces de manejar los datos de muy diversas maneras.

Las bases de datos orientadas a objetos pueden almacenar cualquier tipo de dato, formato, longitud, etc., y esto no presenta ningún problema porque la base de datos no trata de encajar el dato a algún formato fijo, simplemente almacena el objeto o elemento de XML en su formato nativo.

Un sistema de archivos almacena todo como un BLOB, lo cual incrementa la flexibilidad a manejar varios tipos de datos, pero reduce la utilidad de los datos porque no puede ser consultada o procesada sin un gran gasto de memoria y procesamiento. Los RDBMSs almacenan los datos en campos fijos, esto requiere una longitud y formato fijo.

Metadatos. Los metadatos son datos que son asociados al archivo. Esto es importante para EDI (Electronic Data Interchange) porque los metadatos contienen información referente al archivo, el nombre de la compañía que lo envía, etc.

las bases de datos orientadas a objetos son capaces de almacenar metadatos en su formato nativo, a pesar de la estructura y manteniendo los vínculos a los datos originales.

El sistema de archivos fue diseñado sólo para mantener una cantidad muy limitada de datos acerca del archivo (como el autor, fecha de creación y tipo de archivo). Esto no es suficientemente flexible para manejar los metadatos complejos utilizados con XML en EDI.

Búsquedas completas sobre texto/ consultas. Debe ser posible realizar búsquedas y consultas sobre los datos EDI.

Ya que las bases de datos Orientadas a Objetos almacenan los datos en su formato nativo, pueden manipular los datos a través de funciones como consultas, búsquedas sobre el texto completo, indexado, ordenación, etc. Esta flexibilidad es crítica cuando se implementa EDI.

El sistema de archivos almacena todo como un BLOB, por lo que es incapaz de realizar consultas, indexar o realizar búsquedas dentro de los archivos. Las bases de datos requieren datos en un formato bien definido y un formato de longitud fijo y no representa la rica diversidad presentada por un mensaje EDI. Estos datos también los puede almacenar como un campo BLOB, pero tendría las mismas desventajas del sistema de archivos.

Page 57: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

44

Soporte para abstracción de datos La capacidad para abstraer los datos es imperativo al implementar reglas globales a través de los datos.

Las bases de datos Orientadas a Objetos son capaces de la abstracción de datos. Esto permite el desarrollo de aplicaciones que permiten aplicar reglas a conjuntos diversos de datos en una manera genérica. Estas reglas se pueden aplicar globalmente o dependiendo de los niveles de granularidad permitidos por el objeto.

Los sistemas de archivos y las bases de datos relacionales no ofrecen soporte para la abstracción de datos. Esto representa una seria deficiencia a l usar EDI con datos XML.

Integración con lenguajes orientados a objetos Los lenguajes orientados a objetos están ganando popularidad. Java en particular está especialmente diseñado para Internet. La integración con estos leguajes es muy necesaria.

Las bases de datos orientadas a objetos proveen una integración superior con los lenguajes orientados a objetos. Debido a que una base de datos orientada a objetos almacena los objetos nativamente, no hay necesidad de crear un puente entre los objetos y el mundo relacional como se requiere con las bases de datos relacionales.

Los lenguajes orientados a objetos son utilizados para crear objetos complejos, los cuales deben ser uniformizados o normalizados y mapeados dentro de las bases de datos relacionales.

Control de Versiones EDI toma datos XML y adiciona y manipula los datos en su progreso a través del flujo de trabajo de la compañía. Mantener el control de versiones de la información es crítico para implementar sistemas que rastrean y reportan lo referentes, a la ruta y el proceso de la información.

Las bases de datos orientadas a Objetos manejan el control de versiones de una manera muy eficiente. Las bases de datos orientadas a objetos mantienen punteros independientes del nombre o versión de los objetos. Como resultado de esto, la base de datos puede almacenar diferentes versiones de los datos de una manera inteligente, sin corromper los datos o vínculos entre los diferentes elementos de un objeto.

El sistema de archivos puede mantener diferentes versiones de los datos o archivos, pero no puede automáticamente manejar los vínculos entre las diferentes versiones de los datos. Para implementar el control de versiones, se tiene que realizar en una capa superior del sistema de archivos. Las bases de datos relacionales no fueron diseñadas para mantener control de versiones, y para implementar el control de versiones se tiene que realizar sobre la base de datos, en la lógica de la aplicación.

Tabla 4.2 Requerimientos, bases de datos orientadas a objetos vs bases de datos relacionales y sistemas de archivos

Page 58: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

45

4.2.3.3 Servidor de contenidos POET Debido a la naturaleza de los documentos de XML y los requerimientos para almacenar documentos de XML (tabla 4.1) se descarta a las bases de datos relacionales y los sistemas de archivos para considerarse como un repositorio de documentos de XML. Debido a los requerimientos mencionados en la Tabla 4.2, se seleccionó como manejador de bases de datos (y repositorio de documentos de XML) en el desarrollo de este proyecto a al manejador de bases de datos orientadas a objetos POET [Poet , 1997b]. Éste almacena objetos en la base de datos en una forma canónica; es decir, permite que diferentes lenguajes y compiladores se puedan enlazar a la base de datos, además permite ejecutarse en múltiples plataformas. También los compiladores y las diferentes plataformas son libres de clasificar y arreglar el contenido actual de los objetos en la memoria del sistema. POET [Poet, 1997a] mantiene información acerca de las clases, no sólo en la base de datos estándar, sino también en una base de datos especializada llamada diccionario. Las descripciones de clases de objetos son mantenidas en el diccionario. A éste se le denomina también esquema de clases. En POET el diccionario es una base de datos especializada. Para cada clase almacenada en una base de datos, el diccionario guarda el nombre de la clase, ID de la clase, descripción de los miembros de la clase y descripción de los índices (si existen) que se definan. Para cada clase, la descripción de la clase diccionario es conocida como superclase y la implementación (interfaz) es conocida como subclase (fig. 4.3).

Diccionario (Esquema de clases)

Nombre de la claseID de claseDescripción de los miembros de la claseDescripción de índice(s) [si existe(n)]

SUPERCLASEINTERFACE DE IMPLEMENTACION

Base de datos Base de datos Base de datos

{{ Base de datos

[2 archivos]Base de datos

[1 archivo]

Diccionario (Esquema de clases)

Nombre de la claseID de claseDescripción de los miembros de la claseDescripción de índice(s) [si existe(n)]

SUPERCLASEINTERFAz DE IMPLEMENTACIÓN

Base de datos Base de datos Base de datos

{{ Base de datos

[2 archivos]Base de datos

[1 archivo]

Fig. 4.3 Arquitectura de una base de datos orientada a objetos de POET Un diccionario puede ser compartido por n bases de datos (fig. 4.3), aunque para el desarrollo del proyecto el diccionario sólo puede ser utilizado para una sola base de datos. El diccionario contiene la declaración de las clases y la base de datos contiene los datos (objetos o documentos de XML).

Page 59: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

46

4.2.3.4 Proceso de almacenamiento de un documento de XML Para almacenar un documento de XML es necesario tener su estructura definida en la base de datos por lo que lo primero que se necesita realizar, es generar el esquema de clases que será convertido finalmente en el diccionario de datos. El proceso de generación del esquema de base de datos para almacenar documentos de XML desde un esquema XML se puede definir en los siguientes pasos (Fig. 4.4).

q Generar el esquema del documento de XML. La generación del esquema es una tarea en la que el usuario define exactamente cada una de las marcas que va a incluir para identificar los datos del documento de XML. Este esquema también proporcionará información de la estructura de los propios datos, que ayudarán a entender su arquitectura.

q Conversión del esquema a clases de Java. Para este paso se utilizó el generador de código Castor. El código fuente generado incluiye el modelo de objetos así como los descriptores de clases necesarias.

q Configuración. Consiste de un archivo de configuración que proporciona información a POET sobre la base de datos de documentos de XML, y contiene información de las clases persistentes, miembros de la clase e índices, así como algunos parámetros de configuración para la generación física de la base de datos.

Fig. 4.4 Proceso de generación de un esquema de base de datos orientado a objetos El proceso de almacenamiento y recuperación de documentos de XML, se puede definir en los siguientes puntos (fig. 4.5):

q Documento de XML. Este documento es un ejemplar del esquema XML proporcio-nado y es el documento que se requiere almacenar en la base datos orientada a objetos.

q Validación de un documento de XML. Para realizar el almacenamiento de un documento de XML, éste debe ser un documento bien formado y un documento válido, ya que de otra manera no se ajustará al esquema de la base de datos. Este proceso es el encargado de realizar un análisis del documento para comprobar su validez.

javac Clases de Java (.CLASS)

Optimización (.PTJ)

Esquema XML (.XSD)

Definición de clases (.JAVA) Castor

Generación del esquema

de B.D.

Base de datos orientada a objetos

Page 60: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

47

q Serialización y deserialización. Este proceso permite transformar objetos de Java en

un flujo de datos para su almacenamiento físico en la base de datos y viceversa.

Documento de XML (.XML)

Esquema XML(.XSD)

Validación Documento de XML Válido (.XML)

Deserialización

Serialización

Base de datosorientada a objetos

Ejemplarde

Fig. 4.5 Proceso de almacenamiento y recuperación de un documento de XML

4.2.3.5 Vinculación de datos XML (XML Data Binding) La especificación sobre vinculación de datos XML está siendo desarrollada por un grupo de expertos de la industria de XML y la comunidad de Java. El proyecto “Adelard” de Sun fue creado con la intención de maximizar la eficiencia en el procesamiento de aplicaciones con XML, especialmente las que requieren validación de datos. Por medio de la vinculación de datos XML (las definiciones del esquema XML que dictan las estructuras de datos y las restricciones en los contenidos de los datos), es posible realizar automáticamente el mapeo a clases de Java. Las clases generadas hacen el trabajo de analizar el código de XML, construyendo las estructuras internas de los datos y validando el contenido de los datos [Armstrong, 2001]. Estas clases son ligeras en el sentido de que no tienen funcionalidades innecesarias. Como resultado de esto, las aplicaciones utilizan una cantidad mínima de memoria y se ejecutan lo más eficientemente posible. Este procesamiento se puede realizar automáticamente mediante generadores de código como Castor. 4.2.3.6 Castor Para representar en memoria el modelo de datos de un documento de XML, se necesita copiar la descripción de un documento de XML. Para esta descripción se necesita describir la estructura y los datos del documento de XML que nos proporciona el esquema. A veces esto puede ser una tarea fácil de realizar cuando se necesita mapear tipos de datos simples (booleanos, cadenas, enteros, etc.), ya que se mapea exactamente este tipo de datos en cualquier lenguaje orientado a objetos, pero cuando se describen una o mas estructuras complejas (muy comúnmente encontradas en los documentos de XML) este mapeo se convierte en una tarea muy compleja.

Page 61: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

48

Ya que existe una relación paralela entre un Esquema XML-documento de XML y una clase-objeto: un documento de XML es una ejemplar de un esquema XML, y un objeto es un ejemplar de una clase. Por lo que para representar un documento de XML como un objeto en memoria, se necesita proveer la clase que describe este objeto. Este mapeo (Esquema XML a clases de Java en nuestro caso) se puede realizar de manera automática mediante un generador de código. El generador de código fuente Castor [Castor, 2000] genera código fuente en Java (clases de Java) a partir del Esquema XML W3C. El código fuente generado incluye un modelo de objetos del esquema, así como los descriptores de clases necesarias y que son utilizadas por el proceso de serialización (marshalling). El generador de código Castor soporta la recomendación de esquemas XML del W3C con fecha del 24 de octubre del 2000 . 4.2.3.7 Xerces El proyecto Apache [Apache, 2001], para dar soporte de XML al servidor de Web Apache, consta de 7 subproyectos:

q Xerces. Analizador de XML en Java, C++ (con soporte a Perl y COM). q Xalan. Un procesador de hojas de estilo en Java y C++. q Cocoon. Módulo de Apache que permite la publicación de XML en Web. q FOP. Formateador de objetos de XSL en Java. q Xang. Permite el desarrollo rápido de páginas dinámicas JSP en JavaScript. q SOAP . Protocolo de Acceso Simple a Objetos. q Batik. Un API basado en Java para el formato SVG (Scalable Vector Graphics). q Crimson. Es un analizador de XML en Java derivado de l proyecto de analizador X

de Sun. Xerces [Xerces, 2001] es una API, que provee el análisis de documentos de XML, implementa el estándar XML 1.0 del W3C, el estándar DOM (nivel 1 y 2) y el estándar SAX en su versión 2.0. Este analizador es totalmente configurable. Inicialmente este proyecto soporta la recomendación XML Schema. El Xerces es utilizado en el MAD y en el MAP para el análisis y validación de documentos de XML. 4.2.3.8 Serialización y deserialización Un tópico importante dentro del proceso de almacenamiento y recuperación de documentos de XML es el concepto de serialización y deserialización (marshalling y unmarshalling). Este término describe el cambio de la estructura de un objeto en memoria a un flujo de datos de XML (documento de XML) y viceversa, como se muestra en la fig. 4.6.

Page 62: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

49

<orden> <libro> ... </libro> <cd> ... <cd></orden>

Sistema de Procesamiento de Órdenes

Clase Orden

Unmarshall()

Marshall()

Objetos de Java

Libro CD

Orden

Fig. 4.6 Serialización y deserialización de datos XML Cuando los datos de la estructura están en memoria y son convertidos a un flujo de datos de XML, ocurre el proceso llamado serialización. El proceso contrario es llamado deserialización, dejando de nuevo el documento de XML original para ser editado o visualizado [Armstrong, 2001]. 4.2.3.9 Archivo de configuración de POET Este archivo (también llamado archivo de configurac ión), que sirve de entrada al generar un esquema de base de base de datos, permite configurar los parámetros que definirán el comportamiento de la base de datos generada. El archivo de configuración tiene las siguientes secciones: q Parámetros globales. Esta sección se utiliza para definir el conjunto de variables

globales del sistema. q Parámetros de depuración. Esta sección es utilizada para especificar opciones de

depuración. q Schemata. Esta parte es utilizada para especificar la información de configuración de un

esquema (diccionario de datos). Define el esquema de un diccionario con el nombre lógico NombreDiccionario.

q Clases. Denota la sección para la clase NombreClase del esquema NombreEsquema. Esta sección mantiene información de configuración para la definición de clases.

q Sección de índices. Esta sección define los índices para NombreIndice de un esquema NombreEsquema. Esta sección es una subsección de Schemata.

q Miembros índices. Esta sección es una subsección de la sección de índices es utilizada para especificar el comportamiento de los miembros de datos indexados.

q Sección de extractores. Esta es una subsección de la sección de índices y se utiliza para definir el comportamiento de un extractor específico.

q Acceso de patrones. Describe la sección global para el acceso de patrones especificados para el esquema NombreEsquema .

q Patrones de acceso específico. Denota la sección para los patrones de acceso específico de PatronAcceso.

q Base de datos. Esta sección describe la configuración general para la base de datos de nombre lógico NombreBaseDatos .

Page 63: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

50

q Índice(s) de base de datos. Denota la sección para la configuración de índices específicos para una base de datos de nombre lógico NombreBaseDatos.

q MasterSchemata. Denota la sección para el diccionario (esquema) maestro. Esta sección especifica en el lado del cliente el nombre de la base de datos.

q Servidor (ptserver). Especifica la configuración específica para el servidor de objetos POET.

q Licencias (POET-SDK). Denota la sección para las licencias del servidor de objetos POET (para mayor información refierase a la guía de instalación de POET [poet, 1999]).

q Índices de terceros. Denota la sección para servicios de índices de productos de Verity u otros productos.

Para mayor referencia sobre la configuración de la base de datos consulte el manual “POET Configuration Guide” [Poet, 1999]. Cabe mencionar que al generar los archivos necesarios para el esquema y el diccionario de datos , se genera automáticamente un subdirectorio que contendrá una bitácora de los eventos que sucedan (eventlog)

Page 64: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

51

CAPÍTULO 5

Desarrollo y descripción de la interfaz Este capítulo contiene una descripción completa de la interfaz del Módulo Administrador de Documentos de XML (MAD) y el Módulo Administrador de Peticiones (MAP). A través de un ejemplo se muestran todas las características incluidas en la interfaz, y con ello, la manera en que se utilizan ambos módulos.

Page 65: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

52

5.1 Introducción Como se mencionó en la arquitectura, el proyecto de tesis está constituido por dos módulos:

q El Módulo Administrador de Documentos XML (MAD), encargado de la genera-ción de esquemas de base de datos, administración de las bases de datos generadas, almacenamiento, eliminación y recuperación de documentos de XML, cambio de parámetros de configuración, etc.

q Y el Módulo Administrador de Peticiones (MAP), encargado de la administración

de peticiones (listados, información sobre las bases de datos, esquemas, hojas de estilo, documentos de XML, recuperación de documentos de XML) y comunicación con aplicaciones de Web.

Navegadores(Netscape 6, Explorer 6)

Módulo de Administrador de Documentos de XML (MAD)

Base de datos orientada a objetos

EntornoWeb

CGIs,Servicetes,

etc...

Módulo Administrador de Peticiones (MAP)

Aplicaciones de Web

Servidor de Documentos de XMLInternet

Repositorio de Documentos de XML

Fig. 5.1 Arquitectura del Servidor de documentos de XML para aplicaciones de Web Ambos módulos están desarrollados en Delphi 6. Delphi es un ambiente de programación visual para el desarrollo rápido de aplicaciones (RAD, Rapid Application Development) de 32 bits orientado a objetos [Osier, 1996]. Las aplicaciones desarrolladas en Delphi son dirigidas por eventos, es decir, son bloques de código que se ejecutan cuando ocurre un suceso o acción. Como se describe en la fig. 5 el MAD mantiene una base de datos. La comunicación entre esta base de datos y Delphi se realiza por medio del motor de base de datos de Borland (BDE), asignando un alias a las tablas. Un alias contiene toda la información que se necesita suministrar para acceder a la base de datos. El alias asignado al projecto MAD tiene como nombre lógico XML. Debido a que la base de datos nativa de Delphi es Paradox, ésta se tomo como manejador de base de datos para el MAD.

Page 66: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

53

El diccionario de datos y diagrama Elka del módulo MAD (entidad-relación) se describen en los Anexos C y D respectivamente. Un proyecto en Delphi está formado por unidades (una unidad es una colección de funciones y procedimientos que tienen una característica común en cuanto a las tareas que realizan). Un proyecto es una lista con los nombres de los archivos de todas las unidades que se necesitan para desarrollar una aplicación. Para el desarrollo de MAD se utilizaron los componentes estándares de Delphi y dos componentes que se pueden obtener gratis de Internet: XMLPrsrFree (para la revisión de la buena formación de documentos de XML, biblioteca de 16 bits) y PTapiz (para colocar una imagen en un formulario de tapiz en la ventana). El proyecto MAD está formado de 41 unidades, la descripción de cada una de ellas se encuentra en la tabla 5.1.

Unidad Nombre físico del

archivo Nombre lógico Descripción

openDBXML openDBXML.pas AbrirBD Formulario para la apertura de base de datos XML.

About About.pas Acercade Formulario con información acerca del autor, asesores y del CENIDET.

BDXML BDXML.pas Bases

Módulo de datos, contiene las fuentes de datos y tablas que se necesitan para el acceso a la información de las tablas.

BDXMLVerifyIntegrity BDXMLVerifyIntegrity.pas BD_VerificarIntegridad

Formulario para la verificación de integridad entre información de la base de datos y el sistema de archivos.

BDPackUnit BDPackUnit.pas BDPackUnit Unidad necesaria para el formulario DBPack.

POETDatabaseGenerate POETDatabaseGenerate.pas BDXML_E Formulario para edición de base de datos de XML.

LogSystem LogSystem.pas BitacoraSystem Formulario para el análisis de la bitácora del MAD.

SearchFile SearchFile.pas BuscarArchivo Formulario para la búsqueda de archivos.

SearchSub SearchSub.pas BuscarSub Forma de búsqueda de subdirectorios.

CatalogoBDXML CatalogoBDXML.pas Catalogo_BDXML Formulario de catálogo de bases de datos de documentos de XML.

CatalogoXMLSchemas CatalogoXMLSchemas.pas Catalogo_esquemas Formulario de catálogo de esquemas XML.

CatalogoHojaEstilo CatalogoHojaEstilo.pas Catalogo_HojaEstilo Formulario de catálogo de hojas de estilo.

CatalogoUsers CatalogoUsers.pas Catalogo_usuarios Formulario de catálogo de usuarios.

CatalogoXMLDoc CatalogoXMLDoc.pas Catalogo_XMLdoc Formulario de catálogo de documentos de XML.

BDGenClass BDGenClass.pas ClasesGeneradas Formulario de información sobre las clases generadas.

CreateBDXML CreateBDXML.pas CrearBD Formulario de a lta de base de datos

Page 67: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

54

de documentos de XML.

ConfigurationBD ConfigurationBD.pas DBConfiguration Formulario de configuración del analizador de documentos de XML.

ConfiguracionXML ConfiguracionXML.pas DBConfigurationXML

Formulario de configuración del Sistema Administrador de Documentos de XML.

BDInformation BDInformation.pas DBInformation Formulario que presenta las bases de datos de XML en forma de árbol.

DBPackDatabase DBPackDatabase.pas DBPack Formulario para comprimir la base de datos.

DBMe moPTJFile DBMemoPTJFile.pas DBPTJFile Formulario para mostrar documentos de PTJ.

DBMemoSchemaFile DBMemoSchemaFile.pas DBSchemaFile Formulario para mostrar el documento de esquema de XML.

DBMemoStyleSheetFile DBMemoStyleSheetFile.pas DBStyleSheetFile Formulario para mostrar el documento de hoja de estilo.

DBMemoXMLFile DBMemoXMLFile.pas DBXMLFile Formulario para mostrar documentos de XML.

DocumentoXMLAC DocumentoXMLAC.pas DocXML_AC Formulario para alta y cambios de documentos de XML.

XMLDocEdit XMLDocEdit.pas DocXML_E Formulario para mostrar y analizar documentos de XML.

SchemaXMLAC SchemaXMLAC.pas Esquema_AC Formulario de alta y edición de documentos de XML.

StyleSheetDocXMLAC StyleSheetDocXMLAC.pas HE_DocXML_AC Formulario de asignación entre documentos de XML y hojas de estilo.

StyleSheetXMLAC StyleSheetXMLAC.pas HojaEstilo_AC Formulario de alta y edición de hojas de estilo de XML.

AppMainLogin AppMainLogin.pas Login Formulario de inicio, permite solicitar usuario y contraseña para entrada al MAD.

AppMain AppMain.pas Main Formulario principal, contiene el menú principal del proyecto.

XMLParseDocument XMLParseDocument.pas ParseDlg Formulario de aviso sobre el análisis de un documento de XML.

BDPassword BDPassword.pas PasswordBD

Formulario que solicita usuario y contraseña para la apertura de una base de datos de XML (si es necesario).

ReportDB ReportDB.pas ReporteBD Reporte de información sobre bases de datos de documentos de XML.

ReportDBDetails ReportDBDetails.pas ReporteBDDetails

Reporte detallado con los documentos de XML que forman una base de datos de documentos de XML.

ReportDetails ReportDetails.pas ReporteEsquema Reporte detallado sobre los esquemas que forman parte de la base de datos.

ReportStyleSheet ReportStyleSheet.pas ReporteStyleSheet Reporte detallado sobre las hojas de estilo que forman parte de la base de datos.

MainSplashForm MainSplashForm.pas SplashForm

Formulario de aviso sobre el porcentaje cargado de la aplicación (MAP), este aparece solo en tiempo de creación del proyecto.

Page 68: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

55

User_AC User_AC.pas Usuario_AC Formulario de alta y edición de usuarios.

FileView FileView.pas VisorArch Formulario para mostrar archivos.

XMLParseError XMLParseError.pas XMLError Formulario de aviso sobre errores en el análisis de documentos de XML.

Tabla 5.1 Unidades del MAD Las unidades son una agrupación de funciones y procedimientos relacionados entre sí. La relación de uso de unidades en cada formulario del MAD se describe en la tabla 5.2.

Unidad Nombre lógico Usa la(s) unidad(es)

About Acercade MainSplashForm.

AppMain Main

CatalogoXMLDoc, openDBXML, CreateBDXML, DocumentoXMLAC, AppMainLogin, BDXML, CatalogoXMLSchemas, CatalogoHojaEstilo, CatalogoBDXML, BDXMLVerifyIntegrity, CatalogoUsers, About, POETDatabaseGenerate, ReportDB, ConfigurationBD, ReportDetails, ReportStyleSheet, ReportDBDetails, DBPackDatabase, LogSystem, MainSplashForm, ConfiguracionXML, XMLParseError, DBMemoXMLFile, XMLParseDocument.

AppMainLogin Login BDXML, AppMain, MainSplashForm, About .

BDGenClass ClasesGeneradas BDXML, MainSplashForm .

BDInformation DBInformation BDXML, AppMain, MainSplashForm.

BDPackUnit BDPackUnit

BDPassword PasswordBD MainSplashForm.

BDXML Bases AppMain, MainSplashForm.

BDXMLVerifyIntegrity BD_VerificarIntegridad AppMain, BDXML, openDBXML .

CatalogoBDXML Catalogo_BDXML BDXML, CreateBDXML, AppMain, openDBXML, BDInformation, DBExportDatabase, MainSplashForm, BDGenClass, POETDatabaseGenerate.

CatalogoHojaEstilo Catalogo_HojaEstilo Catalogo_HojaEstilo: TCatalogo_HojaEstilo .

CatalogoUsers Catalogo_usuarios BDXML, User_AC, MainSplashForm, AppMain.

CatalogoXMLDoc Catalogo_XMLdoc BDXML, DocumentoXMLAC, AppMain, MainSplashForm, DBMemoXMLFile, XMLDocEdit.

CatalogoXMLSchemas Catalogo_esquemas BDXML, SchemaXMLAC, DBMemoSchemaFile, MainSplashForm, AppMain.

ConfiguracionXML DBConfigurationXML MainSplashForm, BDXML, AppMain .

ConfigurationBD DBConfiguration BDXML, MainSplashForm, AppMain .

CreateBDXML CrearBD SearchSub, SearchFile, BDXML, DBMemoSchemaFile, FieView, CatalogoXMLSchemas, AppMain, CatalogoHojaEstilo, DBMemoPTJFile, MainSplashForm, BDGenClass.

DBMemoPTJFile DBPTJFile BDXML, MainSplashForm .

DBMemoSchemaFile DBSchemaFile BDXML, MainSplashForm, AppMain, XMLParseError.

DBMemoStyleSheetFile DBStyleSheetFile BDXML, MainSplashForm .

DBMemoXMLFile DBXMLFile SearchFile, AppMain, MainSplashForm, XMLParseError, BDXML.

DBPackDatabase DBPack MainSplashForm, BDPackUnit, BDXML.

DocumentoXMLAC DocXML_AC BDXML, SearchSub, CatalogoHojaEstilo, StyleSheetDocXMLAC, DBMemoXMLFile, MainSplashForm, AppMain, CatalogoXMLDoc.

FileView VisorArch BDXML, MainSplashForm .

LogSystem BitacoraSystem bdxml, MainSplashForm, AppMain .

MainSplashForm SplashForm

openDBXML AbrirBD BDXML, AppMain, BDPassword, MainSplashForm.

POETDatabaseGenerate BDXML_E AppMain, MainSplashForm, BDXML, CatalogoHojaEstilo, DBMemoPTJFile, DBMemoSchemaFile.

Page 69: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

56

ReportDB ReporteBD BDXML.

ReportDBDetails ReporteBDDetails BDXML.

ReportDetails ReporteEsquema BDXML.

ReportStyleSheet ReporteStyleSheet BDXML.

SchemaXMLAC Esquema_AC BDXML, SearchFile, MainSplashForm, AppMain .

SearchFile BuscarArchivo MainSplashForm.

SearchSub BuscarSub MainSplashForm.

StyleSheetDocXMLAC HE_DocXML_AC BDXML, MainSplashForm.

StyleSheetXMLAC HojaEstilo_AC BDXML, SearchFile, MainSplashForm.

User_AC Usuario_AC BDXML, MainSplashForm .

XMLDocEdit DocXML_E DBMemoXMLFile, BDXML, CatalogoHojaEstilo, StyleSheetDocXMLAC, MainSplashForm, AppMain, CatalogoXMLDoc.

XMLParseDocument ParseDlg

XMLParseError XMLError MainSplashForm, BDXML.

Tabla 5.2 Relación de uso de unidades en cada formulario del MAD La unidad principal del proyecto MAD es el formulario Main. Este formulario tiene acceso a todos los procesos del MAD, el menú que se encuentra en esta unidad se describe en la fig. 5.2.

Documento XMLBase de datos XML

Abrir

Crear

Cerrar

Catálogo BD XML

Verificar Integridad

Catálogos

Esquemas

Hojas de Estilo

ReportesUtilerías

Bitácora

Movimientos

Usuarios

Configuración

Conf. Impresora

Comprimir BD

BD de Doc. XML

Base de Datos

BD Extendidas

Cat. de Doc. XML

Esquemas

Hojas de Estilo

Acerca de...

BDPackUnitSalir

Logout

Salir

Fig. 5.2 Menú del formulario Main del proyecto MAD El proyecto MAP está formado de una sola unidad que se describe en la tabla 5. 3. El diagrama de bloques y relación entre unidades no se describe ya que este proyecto consiste de una unidad y no describe información adicional del proyecto. Este proyecto no tiene un menú, y por lo tanto no se esquematiza.

Unidad Nombre físico del

archivo Nombre lógico

Descripción

MAP MAP .pas Main Programa principal, se describe a detalle en el punto 5.7

Tabla 5.3 Unidad del MAP La descripción de los iconos utilizados en las tablas 5.1, 5.2 y 5.3 y en la figura 5.3 se detallan en el anexo D sección unidades.

Page 70: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

57

El esquema de bloques, que indica el flujo y orden de los eventos que suceden durante la ejecución del MAD está descrito en la fig. 5.3. En esta figura se aprecian dos unidades separadas: Bases y SplahForm. La primera es una unidad utilizada por la mayoría de las ventanas, por lo que su relación se puede apreciar mejor en la tabla 5.2 (el nombre de la unidad es BDXML). SplashForm es una ventana que aparece cuando se esta creando el proyecto (sus formularios) y se destruye al iniciar el MAD (al aparecer la ventana Login), por lo que su relación es sólo en tiempo de creación del formulario.

Bases

ReporteBD AcercadeAbrirBD

ReporteBDDetails

ReporteEsquema

BitacoraSystem

ReporteStyleSheet

BD_VerificarIntegridad

BDXML_E

BuscarArchivo

CrearBD

BuscarSub

Catalogo_Usuarios

Catalogo_XMLDoc

CrearBD

Catalogo_Esquemas

Catalogo_HojaEstilo

DBInformation

DBPack

DBConfiguration

DBConfigurationXML

DBSchemaFile

DBStyleSheetFile

DBXMLFile

SplashForm

DocXML_E

DocXML_AC

Esquema_AC

PasswordBD

Login

HE_DocXML_AC Usuario_AC

XMLError

Main

BDPackUnit

Catalogo_BDXML

ClasesGeneradas

AbrirBD

DBSchemaFile

HojaEstilo_AC

BuscarArchivo

BuscarArchivo

DBPTJFile

ClasesGeneradas

BuscarSub

DBSchemaFile

BuscarArchivo

DBPTJFile

ClasesGeneradas

BuscarSub

DBSchemaFile

BuscarArchivo

DBPTJFile

ClasesGeneradas

BuscarArchivo

ParseDlg

Esquema_AC

BuscarArchivo

DBXMLFile

HE_DocXML_AC

XMLError

BuscarArchivo

ParseDlg

Esquema_AC

BuscarArchivo

Login

Explicación de colores (Indica pertenencia a secciones)

Base de datos de documentos de XMLDocumentos XMLMAD (configuración, ventanas de diálogos y sistema)Reportes

Fig. 5.3 Menú del formulario Main del proyecto MAD

Page 71: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

58

5.2 Módulo Administrador de Documentos de XML El MAD es un sistema diseñado para llevar el control de las bases de datos de documentos de XML y los documentos que contengan.

El módulo MAD esta dividido en cinco partes principales:

q Base de datos de XML. Alta, baja y cambios de la base de datos de documentos de XML, hojas de estilo y esquema asignado a la base de datos.

q Documento de XML. Movimientos de alta, baja y cambios de documentos de XML en una base de datos de XML.

q Utilerías. Revisión de la bitácora, compresión, configuración y movimientos sobre usuarios.

q Reportes. Reportes varios sobre las bases de datos. En el punto 5.6 se describe con más detalle este módulo.

q Salir. Información sobre el autor y salida del programa. En el punto 5.7 se describe con más detalle este módulo.

Para iniciar el programa es necesario instalar el MAD (véanse notas de instalación en el Anexo A); al ejecutar el programa MAD.exe se mostrará la fig. 5.4. Para ver más detalles sobre el acceso al MAD véase el punto 5.2.3.2.

Fig. 5.4 Inicio de sesión al MAD

La funcionalidad de los iconos estándares utilizados dentro del módulo MAP se detallan en el Anexo D (botones de navegación, base de datos, esquemas, hojas de estilo, doc. XML, botones de formas).

Al introducir un usuario y contraseña válidos aparecerá la ventana mostrada en la fig. 5.5, corresponde al MAD.

Fig. 5.5 Pantalla principal del MAD

Page 72: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

59

5.2.1 Base de datos de documentos de XML Esta sección del módulo MAD es la encargada del alta, baja y edición de la base de datos de documentos de XML y los documentos relacionados a esta base. Esta sección permite realizar movimientos de esquemas (necesarios para la generación de la base de datos, así como para la validación de documentos de XML), y de hojas de estilo, necesarios para la visualización de documentos de XML.

Fig. 5.6 Menú de la sección base de datos de documentos de XML

Esta sección se subdivide en seis puntos (Fig. 5. 6):

q Abrir. q Crear. q Cerrar. q Catálogo de BD de XML. q Verificar integridad. q Catálogo de esquemas. q Catálogo de hojas de estilo.

5.2.1.1 Abrir base de datos Para poder acceder a los documentos de una base de datos de documentos de XML y realizar operaciones sobre estos documentos, se debe abrir la base de datos. Para abrir la base de datos , se presiona desde el catálogo de bases de datos el botón con una carpeta (Fig. 5.7). Si esta operación resulta exitosa, se desplegará en la barra de estado de la pantalla principal el identificador de la base de datos y la descripción de la base de datos. También se habilitará la sección de documentos de XML.

Fig. 5.7 Apertura de una base de datos

Page 73: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

60

Si la base de datos a abrir tiene asignada una contraseña se abrirá una pantalla donde se solicitará la contraseña , y solamente se abrirá la base, si esta contraseña coincide con la contraseña asignada previamente. 5.2.2.2 Cerrar base de datos

Fig. 5.8 Cerrar una base de datos

Cerrar una base de datos es la acción contraria a la de abrir una base de datos (punto 5.2.2.1). Si la operación resulta satisfactoria, se eliminará de la barra de estado el nombre y descripción de la base que estaba abierta, se deshabilitará la sección de documentos de XML y se desplegará la pantalla mostrada en la Fig. 5.8 indicando el resultado.

5.2.2.3 Catálogo de base de datos de documentos de XML Esta parte del módulo MAD es la encargada del alta, baja y edición de bases de datos de documentos de XML, del esquema y hojas de estilo necesarias. En la fig. 5.9 se muestra la pantalla que aparece al dar un clic en Catálogo de BD XML. Desde esta pantalla se pueden realizar las operaciones de alta, baja y cambios, así como la visualización, clases generadas y apertura de la base de datos.

Fig. 5. 9 Pantalla del catálogo de base de datos de documentos de XML

Page 74: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

61

Los campos necesarios para dar de alta una base de datos de documentos de XML son los siguientes:

q Identificador. Éste identificador tiene por objeto de finir una clave única para distinguir este documento dentro de la base de datos de documentos de XML.

q Descripción. Una pequeña descripción del contenido de la base de datos, la cual permite al usuario de una aplicación de Web saber cuá l es el contenido, de la base de datos sin entrar a los registros.

q Localización. Ruta base en donde se ubica la base de datos de documentos de XML. q Esquema. Identificador del esquema (XSD) con el que se va a generar el esquema

de base de datos. q Hoja de estilo por omisión. Identificador de la hoja de estilo por omisión que van a

tomar los documentos de XML almacenados en la base de datos. q Codificación de los documentos de XML. Codificación por omisión de los

documentos de XML. No deben confundirse los conjuntos de caracteres con la codificación de caracteres. Un conjunto de caracteres se define independientemente de la forma en que viene representado en una computadora binaria. Una codificación de caracteres determina la correspondencia existente entre un conjunto de caracteres y una representación binaria de caracteres específica. En México (occidente) la codificación de caracteres que se utiliza es la ISO 8859-1.

q Archivo de configuración. El archivo de configuración indica los parámetros para la generación de la base de datos de documentos de XML. Este punto se detalla en el capítulo 4 en el punto 4.2.3.9. De este archivo de configuración se toman los datos de la clase principal, miembros índice de la clase principal, nombre físico del esquema, nombre de la base de datos y si el esquema y la base de datos va a crearse con un sólo archivo.

q Asignación de la contraseña. Al asignar una contraseña o clave de acceso, la base de datos sólo podrá ser abierta por quien conozca la contraseña . La asignación de contraseña afecta al MAD y al MAP.

q Byte order. Esta opción sólo es habilitada para la codificación de caracteres UTF-16.

Los campos clase principal, miembros índice de la clase principal, nombre físico del esquema, esquema de un archivo, nombre de la base de datos y base de datos de un archivo, se obtienen automáticamente del archivo de optimización. En la Fig. 5. 10 se muestra la ventana que aparece al dar de alta/editar una base de datos de documentos de XML.

Page 75: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

62

Fig. 5.10 Pantalla del alta/edición de base de datos de documentos de XML Al presionar el botón Grabar se realizan los procesos detallados en el capítulo 4 en el punto 4.2.3.4, y se obtiene como resultado la generación de un esquema de base de datos orientada a objetos (POET), con lo cual se podrán almacenar documentos de XML válidos para el esquema (XSD) definido al dar de alta la base de datos. Los procesos necesarios para la generación de un esquema de base de datos se describen en el punto 4.2.3.4. La implementación de este proceso es él siguiente:

q Se envia el archivo de esquema de XML a Castor para que éste desarrolle las clases (en java) necesarias para la generación de la base de datos.

q Se generan automáticamente dos archivos: q Main.java. Este programa funciona como interfaz entre el MAD y el manejador

de base de datos de POET. Las operaciones que realiza este programa son las de recuperación y almacenamiento de documentos de XML. Este programa realiza la comunicación con POET mediante el lenguaje de consultas OQL (lenguaje de consulta de objetos).

q Delete.java . Este programa permite la eliminación de objetos en la base de datos de POET.

q Se compilan todos los programas de Java (javac) para generar los archivos .class. q Se realiza el proceso de generación de la base de datos tomando las clases generadas

y el archivo de configuración. q Si todos los datos son correctos se genera la base de datos.

Page 76: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

63

5.2.1.4 Verificación de integridad El proceso de verificación de integridad (Fig. 5.11) consiste en que los archivos físicos existan (esquemas, hojas de estilo, el archivo de configuración, archivos de interfaz y clases), y que el contenido de estos archivos coincida con el contenido especificado al generar la base de datos, logrando con esto mantener la integridad del sistema. Para iniciar el proceso se escoge una base de datos (ya sea por descripción o identificador), y se presiona el botón aceptar. Al iniciar el proceso las barras de progreso indicarán el porcentaje de avance, así como una descripción de la actividad que se está desarrollando.

Fig. 5.11 Verificar integridad de bases de datos de XML En la fig. 5.11 se pueden observar tres casillas de verificación.

q Reporte extendido. Esta opción habilitada indica que se detallaran en el reporte todas las acciones que se realicen al verificar la integridad de una base de datos.

q Integridad en hojas de estilo. Esta opción habilitada indica que se revisará la integridad de las hojas de estilo asignadas a cada documento de XML de la base de datos.

q Reparar automáticamente. Esta opción habilitada permite realizar operaciones de reparación en donde se puedan corregir errores; por ejemplo , si el archivo de

Page 77: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

64

esquema fue modificado (en el sistema de archivos) después de la generación de la base de datos, el MAD regenerará este archivo. Se reparan automáticamente los archivos PTJ, XSD, CSS y XLS.

5.2.1.5 Catálogo de esquemas Esta sección permite dar de alta/editar y eliminar esquemas XML. Los parámetros necesarios para dar de alta un esquema son los siguientes (Fig. 5.12):

q Identificador. Este identificador tiene por objeto definir una clave única para distinguir este esquema dentro de la base de datos de esquemas.

q Descripción. Una pequeña descripción del uso que se le da al esquema. Esta descripción permite al usuario de una aplicación de Web saber información sobre el esquema.

q Formato. Formato del esquema, actualmente existen dos versiones (XSD 1.0 y XSD 2.0). Este dato permite conocer la versión que se utilizó al generar el esquema de base de datos y efectuar de este modo las configuraciones necesarias para analizar el esquema XML.

q URL. URL del archivo de esquema (con extensión .XSD). q Localización. Ruta al archivo físico en donde se encuentra el esquema XML. q Archivo de esquema. Contenido del esquema XML.

Fig. 5.12 Alta/edición de un esquema

Page 78: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

65

Debido a que el esquema XML es un documento de XML, debe cumplir con las restricciones de buena formación (capítulo 2, punto 2.3.2). Antes de almacenarlo se revisa que sea un documento de XML bien formado, y que el contenido del archivo coincida con el solicitado al servidor indicado en URL (pestaña URL). Cabe mencionar que si el esquema está siendo utilizado por alguna base de datos , no se puede eliminar ni modificar, y si se edita aparecerá habilitado sólo lo que se puede modificar. 5.2.1.6 Catálogo de hojas de estilo Una hoja de estilo es un archivo independiente, que contiene instrucciones para dar formato a los elementos de XML individuales (para más detalles vea en el capítulo 4 el punto 4.2.4.1). Esta sección permite dar de alta/editar y eliminar hojas de estilo. Los parámetros necesarios para dar de alta un esquema son los siguientes:

q Identificador. Este identificador tiene por objeto definir una clave única para distinguir esta hoja de estilo dentro de la base de datos de hojas de estilo.

q Descripción. Una pequeña descripción de la hoja de estilo. Esta descripción permite al usuario de una aplicación de Web conocer información adicional sobre la hoja de estilo consultada.

q Formato. Formato y versión de la hoja de estilo. Este dato permite vincular al documento de XML con su presentación (hoja de estilo). Este formato se convierte (en el documento de XML final) con la instrucción de procesamiento xml-stylesheet , que contiene el formato general <?xml-stylesheet type=”text/css href=CSSFilePath”>, donde CSSFilePath indica la localización del archivo de hoja de estilo (campo URL).

q URL. Localización del archivo (URL). q Localización. Ruta al archivo físico en donde se encuentra el esquema XML. q Archivo de esquema. Contenido del esquema XML.

Una vez vinculada una hoja de estilo a un documento de XML, puede abrirse dicho documento directamente en algún navegador (Netscape 7, o Explorer 6), y el explorador mostrará el documento de XML utilizando las instrucciones de transformación contenidas en la hoja de estilo. Si no se vincula una hoja de estilo CSS o una hoja de estilo XSL a un documento de XML, el Internet Explorer 6.0 mostrará el documento utilizando su hoja de estilo XSL predeterminada, que ya trae incorporada. Esta hoja de estilo muestra el código fuente de XML (XML nativo) como un árbol contraible/expandible (ver ejemplo en el capítulo 6 punto 6.4.2, Fig. 6.7). En la Fig. 5.13 se puede observar la ventana que aparece al dar de alta/editar una hoja de estilo.

Page 79: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

66

Cabe mencionar que si la hoja de estilo está siendo utilizada en alguna otra base de datos de documentos de XML, no se podrá eliminar.

Fig. 5.13 Alta/edición de una hoja de estilo

5.2.2 Documentos de XML Esta sección permite operaciones (alta, baja y edición) sobre documentos de XML en la base de datos de documentos de XML abierta (Fig. 5.14).

Fig. 5.14 Catálogo de documentos de XML

Page 80: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

67

El proceso de almacenamiento está detallado en el capítulo 4 en el punto 4.2.3.4. La implementación de este proceso se resume en los siguientes puntos:

q Se analiza la buena formación del documento de XML proporcionado. q Se analiza que el documento sea válido para el esquema de la base datos abierta.

Para realizar este punto se serializa el documento de XML. q Si el documento es válido, el objeto serializado se almacena en la base de datos

como un objeto. Se utiliza el programa Main.class enviando los parámetros necesarios para el almacenamiento del documento de XML.

Para la edición del documento de XML se realiza el proceso anterior a la inversa (deserializando el objeto). El alta/edición de un documento de XML se realiza en la pantalla de la Fig. 5.15, los campos que se necesitan son los siguientes: el identificador (que identifica de forma única al documento de XML), descripción del documento de XML, la hoja de estilo por omisión, el documento de XML y las hojas de estilo asignadas a este documento.

Fig. 5.15 Alta/edición de un documento de XML

Page 81: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

68

Al presionar el botón Doc. XML se muestra la ventana “Documento de XML” (fig. 5.15). El documento de XML se puede cargar, grabar o ejecutar en la aplicación asociada. Se especifica la funcionalidad de los botones de la Fig. 5.15 en el anexo D sección “Documentos de XML”.

Fig. 5.16 Análisis de buena formación de un documento de XML Al grabar el documento de XML se realiza el análisis de buena formación del documento de XML (capítulo 2 punto 2.3.2), si existe un error se muestra una pantalla informando esta situación y preguntando si se desea ver los errores generados (Fig. 5.16, Análisis de documento de XML). Si el documento de XML está bien formado, en esta pantalla se mostrará el documento de XML y el árbol de etiquetas generado del documento de XML. La validación del documento (capítulo 2 punto 2.3.1) se realiza al almacenar el registro, si el documento no es válido, se muestra una pantalla indicando esta situación, en caso contrario el documento se almacena y se cierra la ventana.

Page 82: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

69

Para eliminar un documento de XML basta con presionar en el catálogo de documentos de XML el botón Eliminar, y automáticamente lo borrará de la tabla y de la base de datos de documentos de XML. 5.2.3 Utilerías En esta sección se muestran las opciones que permiten realizar diferentes acciones sobre el sistema. Se compone de seis opciones:

q Bitácora de movimientos . q Usuarios. q Configuración del MAD. q Configuración del analizador de documentos de XML. q Configurar impresora. q Comprimir base de datos .

5.2.3.1 Bitácora de movimientos La bitácora de movimientos (Fig. 5.17) efectúa un monitoreo de las principales acciones realizadas por los usuarios del MAD. Esta ventana sólo podrá ser visualizada por el tipo de usuario Administrador. Se pueden realizar filtros por rango de fechas y por usuario. Al realizar una consulta de este tipo se debe presionar el botón en forma de tabla en la parte superior derecha. Al eliminar la bitácora, se genera un sólo registro indicando qué usuario eliminó la bitácora así como la fecha y hora.

Fig. 5.17 Bitácora del MAD

Page 83: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

70

5.2.3.2 Usuarios Al ingresar a esta opción es posible administrar los diferentes usuarios que tendrán acceso al MAD. Existen dos tipos de usuarios:

q Administrador . Este usuario tiene todos los privilegios de acceso y actualización, sobre el MAD.

q Operador . Este usuario tiene privilegios de inserción y actualización. No se le

permite eliminar registros ni modificar la configuración del MAD.

Fig. 5.18 Tipo de usuario en la barra de estado del MAD

Al iniciar el MAD y proporcionando usuario y contraseña correctos, se inicia el menú principal y en la barra de estado, en la parte inferior izquierda (fig. 5.18), se muestra el tipo de usuario: una “A” para Administrador o una “O” para indicar el tipo de usuario operador.

Para dar de alta un usuario (fig. 5.19) los datos que se proporcionan son los siguientes: Id (la clave del usuario, este dato lo identifica de manera única de los demás usuarios), password (contraseña para el acceso al sistema), Repita password (confirmación de la contraseña), nombre, (nombre del usuario) y tipo de usuario (administrador u operador).

Fig. 5.19 Alta/edición de un usuario del MAD Durante la administración de los usuarios, es posible eliminarlos con excepción del usuario con identificador “ADMINISTRADOR”, para garantizar que por lo menos exista un usuario dado de alta en el MAD.

Page 84: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

71

5.2.3.3 Configuración del MAD Esta sección permite configurar diversos parámetros del MAD y la interfaz con otras aplicaciones necesarias para el buen funcionamiento del MAD (Fig. 5.20). Se divide en cuatro secciones: Castor (vease el punto 4.2.3.6), POET (vease 4.2.3.3), Web Server y Módulo Administrador de Documentos de XML. En la sección Castor se solicitan dos parámetros: Parámetros para la generación de clases de Java y los parámetros enviados a las bibliotecas de Castor para la generación de clases de Java , y los tipos de datos necesarios para el mapeo de tipos de datos. En la sección POET se solicitan los parámetros necesarios para el proceso de configuración de la base de datos orientada a objetos de POET al momento de generar la base de datos (vease 4.2.3.9). En la pestaña ODMG (fig. 5.20) se puede encontrar el archivo fuente con las cabeceras de los tipos ODMG, necesarios para la administración de documentos de XML. En la pestaña XML Data Binding se encuentra el código fuente para el enlace de documentos de XML con la base de datos de POET. En la pestaña XML Data Unbind se encuentra el código fuente para la eliminación de objetos (documentos de XML) de la base de datos de POET. En la pestaña Web Server se solicita la ruta del subdirectorio público del servidor de Web. En la pestaña Módulo Administrador de Documentos de XML, el único parámetro que se configura es el de visualización previa de reportes. Esta opción habilitada permite visualizar el documento antes de enviarlo a la impresora.

Fig. 5. 20 Configuración del MAD Se recomienda que usuarios inexpertos no modifiquen los parámetros por omisión que aparecen en esta ventana.

Page 85: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

72

5.2.3.5 Configurar impresora En esta sección se permite modificar las propiedades de configuración de la(s) impresora(s) instalada(s) actualmente en Windows (Esta ventana es una llamada a la API estándar de Windows). La función de copias y el intervalo de impresión no se utilizan al realizar impresiones en el MAD. En la Fig. 5.21 se puede apreciar la ventana que aparece al configurar la impresora.

Fig. 5.21 Configuración de la impresora 5.2.3.6 Comprimir base de datos Esta sección permite eliminar físicamente de la base de datos los registros borrados lógicamente. Con esto se consigue recuperar espacio al compactar la base de datos. Para iniciar el proceso sólo se presiona el botón Iniciar, en caso contrario presionar el botón Cancelar (Fig. 5.22). Al iniciar el proceso se mostrará una barra indicando el avance del proceso.

Fig. 5.22 Comprimir base de datos

Page 86: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

73

5.2.4 Reportes Esta sección del MAD permite la impresión de la información de las bases de datos de documentos de XML. Existen cuatro tipos de reportes:

q Bases de datos . Este reporte incluye la descripción, ruta, identificador del esquema y ruta al archivo, hoja de estilo por omisión y ruta al archivo, ruta del archivo de configuración y el número de documentos de XML que existen en esa base de datos.

q Base de datos de documentos de XML. Incluye la información del reporte anterior, el identificador y descripción de cada documento de XML que existe en la base de datos (Fig. 5.23).

q Esquema. Este reporte incluye información del esquema (descripción, ruta al archivo, formato) y el archivo del esquema (Fig. 5.23).

q Hoja de estilo. Este reporte incluye información de la hoja de estilo (descripción, ruta al archivo y formato) y el archivo de la hoja de estilo.

Fig. 5.23 Visualización previa de los reportes (base de datos y esquema) Al tener habilitada la opción reporte previo (en la configuración del MAD punto 5.2.3.3), se puede visualizar el reporte antes de su impresión. En la Fig. 5.23 se puede apreciar el aspecto que tienen los reportes en la visualización previa.

Page 87: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

74

En la parte inferior del la Fig. 5.23 se puede observar una barra de estado que indica el número de página actual del total de hojas.

Fig. 5.24 Iconos de reporte previo En la fig. 5.24 se pueden apreciar con mayor detalle los iconos que aparecen en la parte superior de la fig. 5.21. La descripción de la funcionalidad de estos botones se detalla en el Anexo D sección “Reporte previo”. 5.2.5 Salir Esta sección tiene tres objetivos:

q Salir. Terminar la sesión actual, cerrar la aplicación MAD y regresar a Windows. Al seleccionar salir sólo se realiza la confirmación de esta acción.

q Logout. Permite salir de la sesión actual y regresar a la ventana de inicio (pedir

usuario y contraseña) para poder iniciar una sesión con otro usuario (fig. 5.4).

q Acerca de . Al ejecutar este evento, el MAD muestra una ventana donde se muestra información acerca del autor, director y codirector de tesis (fig. 5.25).

Fig. 5.25 Acerca del autor.

Page 88: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

75

5.3 Módulo Administrador de Peticiones El MAP es el encargado de la administración de peticiones. En el MAP se implantó el protocolo de comunicación descrito en el capítulo 4 en el punto 4.2.2. La comunicación entre una aplicación de Web y el MAP , se realiza a través de un enlace vía socket por el puerto 5000. La comunicación consiste de dos estados mostrados en la fig. 5.26.

Módulo Administrador de Peticiones (MAP)

Puerto 5000

Aplicación de WebProcesamiento del resultado

Comando

Resultado

Socket abierto paracomunicarse con el cliente

Fig. 5.26 Estados de una comunicación MAP-aplicación de Web En la fig. 5.26 la aplicación inicia la comunicación enviando un comando válido para el protocolo (tabla 4.1) al servidor MAP en el puerto 5000, el MAP crea un hilo de ejecución para entablar la comunicación con la aplicación de Web, procesa el comando, lo ejecuta y envía el resultado al cliente , cerrando la conexión recientemente abierta. Para tener acceso al MAP se requiere ejecutar el programa XMLService.exe. La ventana que aparece al ejecutar este comando se muestra en la fig. 5.27. En la ventana mostrada en la fig. 5.27, se puede apreciar al MAP resolviendo peticiones de aplicaciones de Web.

Fig. 5.27 Módulo Administrador de Peticiones (MAP) En la fig. 5.27 se presenta la pantalla principal del MAP; en la barra de estado de la pantalla aparece en el panel 1 el número de puerto; en el panel 2, el IP del servidor en donde se está ejecutando el MAP; y en el panel 3, se indica si el MAP está activado o no. La ventana incluye dos botones: limpiar (elimina los comandos del panel principal) y salir (permite cerrar la aplicación). En el panel principal se van registrando los comandos que se han ejecutado.

Panel 1

Panel 2 Panel 3

No. de conexiones simultá neas

No. de errores que han ocurrido

Page 89: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

76

CAPÍTULO 6

Evaluación experimental Este capítulo contiene las descripciones de las pruebas realizadas a los módulos de software desarrollados. Se presentan los documentos utilizados, los casos de prueba y los resultados de las pruebas realizadas.

Page 90: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

77

6.1 Objetivo de las pruebas El objetivo principal de las pruebas es comprobar la funcionalidad del software desarrollado en los siguientes aspectos (para casos exitosos y no exitosos).

q La capacidad del MAD para generar un esquema de base de datos a partir de un esquema XML y su archivo de configuración.

q La capacidad de administración (almacenamiento/recuperación) de documentos de XML del MAD.

q Demostrar la capacidad de recuperación de documentos de XML a través de Internet/Intranet por medio del MAP y una aplicación de Web.

q Comprobar la capacidad multitarea del MAP para atender múltiples clientes simultáneamente.

6.2 Descripción del ambiente de las pruebas Las pruebas se realizaron principalmente en la intranet del CENIDET, el servidor es una computadora con procesador Pentium III con 550 Mhz y 384 Mb en RAM, el cliente es una laptop con procesador Pentium III y 128 Mb en RAM, como se ilustra en la fig. 6.1. Se requiere el siguiente software instalado en el servidor:

q Instalar el MAD. q Instalar el MAP. q POET Object Server Suite 6.1 (como manejador de bases de datos orientadas a

objetos). q La plataforma Java 1.2 (JDK 1.2) o posterior. q Biblioteca de Castor 0.8.7. q Bibliotecas de Xerces 2.0.0. q Xitami Webserver 2.5b4 como servidor de Web, en el servidor. q Haber configurado correctamente las variables de ambiente para estos programas

(ver Anexo A). En el/los cliente(s) se necesita tener instalado el siguiente software:

q XMLChat 1.0 (prototipo realizado especialmente para las pruebas). q Internet Explorer 6.0 o Netscape 7.0 en clientes (como visualizador de documentos

de XML).

Page 91: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

78

Servidor de documentos XML

(MAD y MAP)

Intranet del cenidet

Computadora AXMLChat

Computadora BXMLChat

Fig. 6.1 Ambiente de pruebas 6.3 Especificación de entrada La especificación de entrada para la generación del esquema de base de datos, está constituida por dos archivos de esquema XML (que describen las características –herencia, tipos de datos, nombres de los campos, etc.) , que se muestran en el punto 6.3.1, y un archivo de configuración (que le proporciona parámetros a la base de datos) que se muestra en el punto 6.3.2. Una vez generado el esquema de base de datos, se podrán almacenar y recuperar documentos de XML. Para el ejemplo se tomaron cinco documentos. Estos documentos se describen en el punto 6.3.3.

6.3.1 Esquema XML Se presentan dos documentos: el esquema 1 es un documento válido, el esquema 2 es un documento no válido. Ambos esquemas XML, utilizados para la generación de la base de datos , se muestran a continuación: Esquema 1 [esquema1.xsd] Este documento es un documento bien formado y es válido con respecto a la especificación Schema-Data. Describe un elemento de nombre Invoice (elemento o nodo raíz) , que a su vez está constituido por dos elementos: Header y Body. El elemento Invoice contiene cuatro atributos (date, total, id y note, de tipo fecha, flotante, cadena y cadena respectivamente). El elemento Header contiene a su vez dos elementos: Billto y ShipTo (que puede ocurrir 0 o 1 vez en el documentos de XML). BillTo contiene un elemento de nombre Address. Éste contiene ocho campos de tipo cadena: name (requerido), street (requerido), zip (requerido),

Page 92: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

79

city (requerido), country (requerido), tel, fax y email. ShipTo tiene las mismas carácterísticas que BillTo. El elemento Body está constitutido por un elemento Item el cual puede tener como mínimo una ocurrencia. El elemento Item está constitutido por cinco campos con los siguientes nombres: id (requerido y de tipo cadena), descripción (de tipo cadena), quantity (requerido y de tipo entero), precio (requerido y de tipo flotante) y name (requerido y de tipo cadena). Este documento es utilizado para generar la base de datos en la prueba 1 y es el esquema que valida y recupera los documentos de XML en las pruebas 3, 4, 5, 6 y 7. El documento es el siguiente: 001 <?xml version ="1.0"?> 002 <schema xmlns = "http://www.w3.org/1999/XMLSchema"> 003 <element name = "Invoice"> 004 <type content = "elemOnly"> 005 <group order = "seq"> 006 <element ref = "Header"/> 007 <element ref = "Body"/> 008 </group> 009 <attribute name = "date" use = "required" type = "date"/> 010 <attribute name = "total" use = "required" type = "float"/> 011 <attribute name = "id" use = "required" type = "string"/> 012 <attribute name = "note" type = "string"/> 013 </type> 014 </element> 015 016 <element name = "Header"> 017 <type content = "elemOnly"> 018 <group order = "seq"> 019 <element ref = "BillTo"/> 020 <element ref = "ShipTo" minOccurs = "0" maxOccurs = "1"/> 021 </group> 022 </type> 023 </element> 024 025 <element name = "Body"> 026 <type content = "elemOnly"> 027 <group order = "seq"> 028 <element ref = "Item" minOccurs = "1" maxOccurs = "*"/> 029 </group> 030 </type> 031 </element> 032 033 <element name = "Address"> 034 <type content = "empty"> 035 <attribute name = "name" use = "required" type = "string"/> 036 <attribute name = "street" use = "required" type = "string"/> 037 <attribute name = "zip" use = "required" type = "string"/> 038 <attribute name = "city" use = "required" type = "string"/> 039 <attribute name = "country" use = "required" type = "string"/> 040 <attribute name = "tel" type = "string"/> 041 <attribute name = "fax" type = "string"/> 042 <attribute name = "email" type = "string"/> 043 </type> 044 </element> 045 046 <element name = "BillTo"> 047 <type content = "elemOnly"> 048 <group order = "seq"> 049 <element ref = "Address"/> 050 </group>

Page 93: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

80

052 </type> 053 </element> 054 055 <element name = "ShipTo"> 056 <type content = "elemOnly"> 057 <group order = "seq"> 058 <element ref = "Address"/> 059 </group> 060 </type> 061 </element> 062 063 <element name = "Item"> 064 <type content = "empty"> 065 <attribute name = "id" use = "required" type = "string"/> 066 <attribute name = "description" type = "string"/> 067 <attribute name = "quantity" use = "required" type = "int"/> 068 <attribute name = "price" use = "required" type = "float"/> 069 <attribute name = "name" use = "required" type = "string"/> 070 </type> 071 </element> 072 </schema>

Esquema 2 [esquema2.xsd] El esquema 2 es un documento que no cumple las reglas de buena formación (punto 2.3.2), por lo que no es un documento válido de entrada para generar una base de datos. El error consiste en que no existe la etiqueta de cierre </schema> en la línea 72. Este documento es utilizado en la prueba 2, el documento es el siguiente: 001 <?xml version ="1.0"?> 002 <schema xmlns = "http://www.w3.org/1999/XMLSchema"> 003 <element name = "Invoice"> 004 <type content = "elemOnly"> 005 <group order = "seq"> 006 <element ref = "Header"/> 007 <element ref = "Body"/> 008 </group> 009 <attribute name = "date" use = "required" type = "date"/> 010 <attribute name = "total" use = "required" type = "float"/> 011 <attribute name = "id" use = "required" type = "string"/> 012 <attribute name = "note" type = "string"/> 013 </type> 014 </element> 015 016 <element name = "Header"> 017 <type content = "elemOnly"> 018 <group order = "seq"> 019 <element ref = "BillTo"/> 020 <element ref = "ShipTo" minOccurs = "0" maxOccurs = "1"/> 021 </group> 022 </type> 023 </element> 024 025 <element name = "Body"> 026 <type content = "elemOnly"> 027 <group order = "seq"> 028 <element ref = "Item" minOccurs = "1" maxOccurs = "*"/> 029 </group> 030 </type> 031 </element> 032 033 <element name = "Address"> 034 <type content = "empty"> 035 <attribute name = "name" use = "required" type = "string"/>

Page 94: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

81

036 <attribute name = "street" use = "required" type = "string"/> 037 <attribute name = "zip" use = "required" type = "string"/> 038 <attribute name = "city" use = "required" type = "string"/> 039 <attribute name = "country" use = "required" type = "string"/> 040 <attribute name = "tel" type = "string"/> 041 <attribute name = "fax" type = "string"/> 042 <attribute name = "email" type = "string"/> 043 </type> 044 </element> 045 046 <element name = "BillTo"> 047 <type content = "elemOnly"> 048 <group order = "seq"> 049 <element ref = "Address"/> 050 </group> 052 </type> 053 </element> 054 055 <element name = "ShipTo"> 056 <type content = "elemOnly"> 057 <group order = "seq"> 058 <element ref = "Address"/> 059 </group> 060 </type> 061 </element> 062 063 <element name = "Item"> 064 <type content = "empty"> 065 <attribute name = "id" use = "required" type = "string"/> 066 <attribute name = "description" type = "string"/> 067 <attribute name = "quantity" use = "required" type = "int"/> 068 <attribute name = "price" use = "required" type = "float"/> 069 <attribute name = "name" use = "required" type = "string"/> 070 </type> 071 </element> 072

6.3.2 Archivo de configuración La descripción de este documento se presenta en la prueba 1, el documento de configu-ración es el siguiente: Archivo de configuración [Opt.ptj] 001 [schemata\dict] 002 name = dict 003 Onefile = false 004 [databases\base] 005 name = base 006 Onefile = false 007 008 [interfaces\org.odmg.DArray] 009 implementation = com.poet.odmg.util.ArrayOfObject 010 011 [classes\Invoice] 012 persistent = true 013 useIndexes = InvoiceIdx 014 [classes\Header] 015 persistent = true 016 [classes\Body] 017 persistent = true 018 [classes\Address] 019 persistent = true 020 [classes\BillTo] 021 persistent = true

Page 95: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

82

022 [classes\ShipTo] 023 persistent = true 024 [classes\Item] 025 persistent = true 026 027 [classes\Invoice\members\_HeaderList] 028 itemType = Header 029 [classes\Invoice\members\_BodyList] 030 itemType = Body 031 [classes\Header\members\_BillToList] 032 itemType = BillTo 033 [classes\Body\members\_ItemList] 034 itemType = Item 035 [classes\BillTo\members\_AddressList] 036 itemType = Address 037 [classes\ShipTo\members\_AddressList] 038 itemType = Address 039 040 [indexes\InvoiceIdx] 041 class = Invoice 042 members = _id 043 unique = true

6.3.3 Documentos de XML Documento 1 [documento1.xml] Éste es un documento de XML válido. El documento es utilizado en las pruebas 3, 6 y 7. 001 <?xml version="1.0"?> 002 003 <Invoice date="10/22/1999" id="1" total="846.23" note="test"> 004 <!-- (Header , Body )--> 005 <Header> 006 <!-- (BillTo , ShipTo? )--> 007 <BillTo> 008 <!-- (Address )--> 009 <Address name="Frank Thelen" street="Kattjahren 4-8" zip="22359"

city="Hamburg" country="Germany" tel="+1 40 60990 0" fax="+1 40 60990 113" email="[email protected]">

010 </Address> 011 </BillTo> 012 <ShipTo> 013 <!-- (Address )--> 014 <Address name="POET Software" street="Kattjahren 4-8" zip="22359"

city="Hamburg" country="Germany" tel="+1 40 60990 0" fax="+1 40 60990 113" email="[email protected]">

015 </Address> 016 </ShipTo> 017 </Header> 018 <Body> 019 <!-- (Item+)--> 020 <Item id="73-676" name="lawn mower" quantity="3" price="122.0"/> 021 <Item id="83-181" name="espresso machine" quantity="5" price="73.9"/> 022 <Item id="12-772" name="carpet cleaner" quantity="2" price="19.9"/> 023 <Item id="41-284" name="basket ball" quantity="7" price="9.99"/> 024 </Body> 025 </Invoice>

Page 96: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

83

Documento 2 [documento2.xml] Éste es un documento de XML válido. El documento es utilizado en las pruebas 3, 6 y 7. 001 <?xml version="1.0"?> 002 <Invoice date="4/15/2002" id="2" total="3480.00" note="Prueba 2"> 003 <Header> 004 <BillTo> 005 <Address name="Roble Leonel Glez. Urbieta" street="Apatzingan 24"

zip="62080" city="Cuernavaca" country="Morelos" tel="01 777 3795504" fax="01 777 379 5504" email="[email protected]">

006 </Address> 007 </BillTo> 008 <ShipTo> 009 <Address name="POET Software" street="Kattjahren 4-8" zip="22359"

city="Hamburg" country="Germany" tel="+1 40 60990 0" fax="+1 40 60990 113" email="[email protected]">

010 </Address> 011 </ShipTo> 012 </Header> 013 <Body> 014 <Item id="1-000" name="Monitor ViewSonic 19 pulgadas" quantity="1"

price="3480.00"/> 015 </Body> 016 </Invoice>

Documento 3 [documento3.xml] Éste es un documento de XML válido. El documento es utilizado en las pruebas 3, 6 y 7. 001 <?xml version="1.0"?> 002 <Invoice date="4/15/2002" id="3" total="3000.00" note="Prueba 3"> 003 <Header> 004 <BillTo> 005 <Address name="Adriana Fernandez Mendoza" street="Pvada. de

Eduardo Alday Hdez. No. 39 Col. Atasta" zip="91800" city="Villahermosa" country="Tabasco" tel="01 993 3155766" fax="01 993 3155766" email="[email protected]">

006 </Address> 007 </BillTo> 008 <ShipTo> 009 <Address name="POET Software" street="Kattjahren 4-8" zip="22359"

city="Hamburg" country="Germany" tel="+1 40 60990 0" fax="+1 40 60990 113" email="[email protected]">

010 </Address> 011 </ShipTo> 012 </Header> 013 <Body> 014 <Item id="1-000" name="Scanner Canon N670U 1600 dpi" quantity="2"

price="1000.00"/> 015 </Body> 016 </Invoice> Documento 4 [documento4.xml] El documento 4 no cumple con las reglas de buena formación (punto 2.3.2); el error consiste en que la etiqueta de cierre <Invoicex> (línea 16 en negritas) no coincide con la etiqueta de apertura <Invoice>. Este documento es utilizado en la prueba 4. El documento es el siguiente:

Page 97: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

84

001 <?xml version="1.0"?> 002 <Invoice date="4/15/2002" id="3" total="3000.00" note="Prueba 4"> 003 <Header> 004 <BillTo> 005 <Address name="Adriana Fernandez Mendoza" street="Pvada. de

Eduardo Alday Hdez. No. 39 Col. Atasta" zip="91800" city="Villahermosa" country="Tabasco" tel="01 993 3155766" fax="01 993 3155766" email="[email protected]">

006 </Address> 007 </BillTo> 008 <ShipTo> 009 <Address name="POET Software" street="Kattjahren 4-8" zip="22359"

city="Hamburg" country="Germany" tel="+1 40 60990 0" fax="+1 40 60990 113" email="[email protected]">

010 </Address> 011 </ShipTo> 012 </Header> 013 <Body> 014 <Item id="1-000" name="Scanner Canon N670U 1600 dpi" quantity="2"

price="1000.00"/> 015 </Body> 016 </Invoicex> Documento 5 [documento5.xml] El documento 5 no cumple con las reglas de validez (punto 2.3.1); el error consiste en que el esquema utilizado para almacenar este documento menciona que la etiqueta <ShipTo> sólo puede tener 0 o 1 ocurrencia y en el documento 5 se encuentra una ocurrencia en la línea 8 y otra en la línea 12 (en negritas), con lo cual viola esta regla. El documento 5 es utilizado en la prueba 5. El documento es el siguiente: 001 <?xml version="1.0"?> 002 <Invoice date="4/15/2002" id="3" total="3000.00" note="Prueba 5"> 003 <Header> 004 <BillTo> 005 <Address name="Adriana Fernandez Mendoza" street="Pvada. de

Eduardo Alday Hdez. No. 39 Col. Atasta" zip="91800" city="Villahermosa" country="Tabasco" tel="01 993 3155766" fax="01 993 3155766" email="[email protected]">

006 </Address> 007 </BillTo> 008 <ShipTo> 009 <Address name="POET Software" street="Kattjahren 4-8" zip="22359"

city="Hamburg" country="Germany" tel="+1 40 60990 0" fax="+1 40 60990 113" email="[email protected]">

010 </Address> 011 </ShipTo> 012 <ShipTo> 013 <Address name="POET Software" street="Kattjahren 4-8" zip="22359"

city="Hamburg" country="Germany" tel="+1 40 60990 0" fax="+1 40 60990 113" email="[email protected]">

014 </Address> 015 </ShipTo> 016 </Header> 017 <Body> 018 <Item id="1-000" name="Scanner Canon N670U 1600 dpi" quantity="2"

price="1000.00"/> 019 </Body> 020 </Invoice>

Page 98: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

85

6.4 Pruebas y resultados Se presentan en total siete casos de prueba en los cuales se demuestra la funcionalidad de los módulos de software desarrollados (MAD y MAP). Las pruebas a las que se sometieron el MAD y MAP son las siguientes:

q Generar un esquema de BD a partir de un esquema XML válido. q Generar un esquema de BD a partir de un esquema XML no válido. q Almacenamiento/recuperación de documentos de XML válidos en el MAD. q Almacenamiento de documentos de XML mal formados en el MAD. q Almacenamiento de documentos de XML no válidos en el MAD. q Recuperación de documentos de XML por medio del MAP y una aplicación de

Web. q Comprobar la capac idad multitarea del MAP.

6.4.1 Prueba 1: generar un esquema de BD a partir de un esquema XML válido El proceso para generar un esquema se realiza de acuerdo a los pasos descritos en el capítulo 4 en el punto 4.2.3.4. La pantalla de captura del ejemplo se muestra en la fig. 6.2.

Fig. 6.2 Pantalla de captura de la base de datos EJEMPLO

Page 99: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

86

Para esta prueba se tomo el esquema 1 y el archivo de configuración (opt.ptj). Las características de la base de datos de XML son las siguientes: Nombre (Identificador) EJEMPLO Descripción Base de datos de documentos de XML [EJEMPLO] Ruta o localización C:\xitami\Webpages\ejemplo\ Esquema Mostrado en el punto 6.3.2 [EJEMPLO] Hoja de estilo (por omisión) Ninguna Codificación ISO-8859-1 Ruta al archivo de optimización C:\xitami\Webpages\ejemplo\ptj.opt Nombre de la clase padre Invoice Contaseña Sin asignar

Las características del archivo de optimización son las siguientes:

Sección 1 El nombre físico del diccionario de datos será dict. El nombre físico del esquema de datos será base.

Sección 2 Se necesitará para la implementación de la base de datos la biblioteca: com.poet.odmg.util.ArrayOfObject

Sección 3 Las clases persistentes serán Invoice, Header, Adress, BillTo, ShipTo e Item.

Sección 4 Herencia entre objetos. Sección 5 Se generará un índice de nombre Invoice.

Para esta prueba se utilizó en la computadora servidor el ambiente de pruebas descrito en el punto 6.2. Se realizó el proceso de generación del esquema de base de datos tomando como documento esquema el descrito en el punto 6.3.1 y como archivo de configuración el descrito en el punto 6.3.2. Ejecución de la prueba : Se generaron, según las características del archivo de optimización y el esquema, dos subdirectorios de nombre dict (con el diccionario de datos) y base (como repositorio de documentos de XML), y las clases necesarias para la serialización/deserialización de objetos (*.class), y además los archivos de interfaz necesarios para la comunicación del Servidor de Documentos de XML y POET. El listado de archivos generados se muestra a continuación (los nombres de archivos en cursiva indican que ya existían por lo que no son parte de los archivos generados): El volumen de la unidad C es RLGU El número de serie del volumen es: DCAA-1275 Directorio de C:\Xitami\Webpages\ejemplo 13/07/2002 11:31a <DIR> . 13/07/2002 11:31a <DIR> .. 13/07/2002 11:31a <DIR> base 13/07/2002 11:31a <DIR> dict 13/07/2002 11:31a 6,842 Address.class

Page 100: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

87

13/07/2002 11:30a 5,302 Address.java 13/07/2002 11:30a 978 AddressDescriptor$1.class 13/07/2002 11:30a 974 AddressDescriptor$2.class 13/07/2002 11:30a 976 AddressDescriptor$3.class 13/07/2002 11:30a 974 AddressDescriptor$4.class 13/07/2002 11:30a 974 AddressDescriptor$5.class 13/07/2002 11:30a 982 AddressDescriptor$6.class 13/07/2002 11:30a 976 AddressDescriptor$7.class 13/07/2002 11:30a 980 AddressDescriptor$8.class 13/07/2002 11:30a 4,586 AddressDescriptor.class 13/07/2002 11:30a 15,463 AddressDescriptor.java 13/07/2002 11:31a 5,520 BillTo.class 13/07/2002 11:30a 4,931 BillTo.java 13/07/2002 11:30a 1,009 BillToDescriptor$1.class 13/07/2002 11:30a 3,194 BillToDescriptor.class 13/07/2002 11:30a 5,853 BillToDescriptor.java 13/07/2002 11:31a 5,467 Body.class 13/07/2002 11:30a 4,764 Body.java 13/07/2002 11:30a 984 BodyDescriptor$1.class 13/07/2002 11:30a 3,173 BodyDescriptor.class 13/07/2002 11:30a 5,808 BodyDescriptor.java 13/07/2002 11:30a 1,478 Delete.class 13/07/2002 11:30a 1,547 Delete.java 10/07/2002 11:10p 1,060 documento1.xml 10/07/2002 11:10p 724 documento2.xml 10/07/2002 11:10p 758 documento3.xml 10/07/2002 11:11p 759 documento4.xml 10/07/2002 11:11p 993 documento5.xml 10/07/2002 11:08p 2,318 esquema1.xsd 10/07/2002 11:09p 2,309 esquema2.xsd 13/07/2002 11:31a 6,058 Header.class 13/07/2002 11:30a 5,192 Header.java 13/07/2002 11:30a 1,004 HeaderDescriptor$1.class 13/07/2002 11:30a 1,003 HeaderDescriptor$2.class 13/07/2002 11:30a 3,395 HeaderDescriptor.class 13/07/2002 11:30a 7,059 HeaderDescriptor.java 13/07/2002 11:31a 8,232 Invoice.class 13/07/2002 11:30a 8,438 Invoice.java 13/07/2002 11:30a 976 InvoiceDescriptor$1.class 13/07/2002 11:30a 976 InvoiceDescriptor$2.class 13/07/2002 11:30a 978 InvoiceDescriptor$3.class 13/07/2002 11:30a 972 InvoiceDescriptor$4.class 13/07/2002 11:30a 1,009 InvoiceDescriptor$5.class 13/07/2002 11:30a 999 InvoiceDescriptor$6.class 13/07/2002 11:30a 4,386 InvoiceDescriptor.class 13/07/2002 11:30a 12,581 InvoiceDescriptor.java 13/07/2002 11:31a 5,688 Item.class 13/07/2002 11:30a 4,325 Item.java 13/07/2002 11:30a 961 ItemDescriptor$1.class 13/07/2002 11:30a 963 ItemDescriptor$2.class 13/07/2002 11:30a 975 ItemDescriptor$3.class 13/07/2002 11:30a 969 ItemDescriptor$4.class 13/07/2002 11:30a 957 ItemDescriptor$5.class 13/07/2002 11:30a 4,012 ItemDescriptor.class 13/07/2002 11:30a 11,344 ItemDescriptor.java 13/07/2002 11:30a 4,188 Main.class 13/07/2002 11:30a 4,698 Main.java 13/07/2002 11:30a 426 ODMG.class 13/07/2002 11:30a 634 ODMG.java 10/07/2002 11:09p 873 ptj.opt 13/07/2002 11:31a 5,520 ShipTo.class 13/07/2002 11:30a 4,931 ShipTo.java 13/07/2002 11:30a 1,009 ShipToDescriptor$1.class 13/07/2002 11:30a 3,194 ShipToDescriptor.class 13/07/2002 11:30a 5,853 ShipToDescriptor.java 13/07/2002 11:31a 1,077 _pt_metaAddress.class 13/07/2002 11:31a 962 _pt_metaBillTo.class 13/07/2002 11:31a 955 _pt_metaBody.class 13/07/2002 11:31a 996 _pt_metaHeader.class 13/07/2002 11:31a 1,083 _pt_metaInvoice.class 13/07/2002 11:31a 1,021 _pt_metaItem.class 13/07/2002 11:31a 962 _pt_metaShipTo.class 74 archivos 224,490 bytes Directorio de C:\Xitami\Webpages\ejemplo\base 13/07/2002 11:31a <DIR> . 13/07/2002 11:31a <DIR> ..

Page 101: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

88

13/07/2002 11:31a <DIR> eventlog 13/07/2002 11:31a 262,144 objects.dat 13/07/2002 11:31a 262,144 objects.idx 2 archivos 524,288 bytes Directorio de C:\Xitami\Webpages\ejemplo\base\eventlog 13/07/2002 11:31a <DIR> . 13/07/2002 11:31a <DIR> .. 13/07/2002 11:31a 102 f0000000.ptd 1 archivos 102 bytes Directorio de C:\Xitami\Webpages\ejemplo\dict 13/07/2002 11:31a <DIR> . 13/07/2002 11:31a <DIR> .. 13/07/2002 11:31a <DIR> eventlog.dic 13/07/2002 11:31a 262,144 _objects.dat 13/07/2002 11:31a 262,144 _objects.idx 2 archivos 524,288 bytes Directorio de C:\Xitami\Webpages\ejemplo\dict\eventlog.dic 13/07/2002 11:31a <DIR> . 13/07/2002 11:31a <DIR> .. 13/07/2002 11:31a 106 f0000000.ptd 1 archivos 106 bytes Total de archivos en la lista: 80 archivos 1,273,274 bytes 14 dirs 3,583,651,840 bytes libres

6.4.1.1 Archivos de interfaz generados Estos archivos generados permiten al MAD realizar la interfaz con POET para el almacenamiento, eliminación y recuperación de documentos de XML (como objetos de la base de datos). Al crear la base de datos de documentos de XML, se generaron automáticamente tres archivos:

q El programa ODMG.java proporciona las cabeceras para la implementación de algunas bibliotecas necesarias para POET.

q Main.java, necesario para el almacenamiento/recuperación de documentos de XML. q Delete.java, necesario para eliminar objetos de la base de datos de POET.

A continuación se muestra un listado de los programas en Java generados automáticamente. ODMG.java /** * POET SDK Java(tm) Edition * * XML-Data-Binding example: ODMG implementation factory * * ODMG.java * * Copyright (c) 1996-2000 POET Software Corporation. * All rights reserved. */ import org.odmg.Implementation; /** * This class provides the ODMG implementation factory.

Page 102: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

89

* @author <a href="mailto:[email protected]">frank Thelen, POET Software</a> * @version $Revision: 1.0 $ $Date: 2000/05/11 $ **/ public class ODMG { private static Implementation impl = new com.poet.odmg.Implementation(); public static Implementation getImplementation () { return impl; } } Main.JAVA /** ------------------------------------------------------------ * Este archivo fué generado automáticamente por AdminXML 1.0.0 * Roble Leonel Glez. Urbieta * Fecha: [13/07/2002] Hora: [11:30:51 AM] * ------------------------------------------------------------ */ //ver 10.04.2002 import java.io.PrintWriter; import java.io.FileReader; import org.exolab.castor.xml.Marshaller; import org.exolab.castor.xml.Unmarshaller; import org.odmg.*; import java.util.Collection; import java.util.Iterator; public class Main { public static String usage="Parámetros incorrectos \n" + "Utilización: Main -xml2java <db-url> <xml-filename> <id> \n" + " Main -java2xml <db-url> <id> \n"; public static Implementation odmg=ODMG.getImplementation(); public static PrintWriter log=new PrintWriter(System.out,true); public static void main( String[] args ) { if(args.length < 1) error_exit(); if(args[0].equalsIgnoreCase("-xml2java")) { if(args.length < 4) error_exit(); String dbUrl=args[1]; String xmlFilename=args[2]; String id=args[3]; xml2java(dbUrl,xmlFilename,id); } else if(args[0].equalsIgnoreCase("-java2xml")) { if(args.length < 3) error_exit(); String dbUrl=args[1]; String id=args[2]; java2xml(dbUrl,id); } else error_exit(); } public static void error_exit () { // log.println("[02] Parametros erroneos \n"); log.println(usage); System.exit(1); } // XML data --> Java objects public static void xml2java (String dbUrl, String xmlFilename, String id) { try {

Page 103: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

90

// unmarshal XML data --> Java objects Unmarshaller umrs=new Unmarshaller( Invoice.class ); umrs.setLogWriter( log ); umrs.setValidation( true ); Invoice invoice=(Invoice) umrs.unmarshal( new FileReader(xmlFilename) ); invoice.setId(id); // Almacenar datos XML en la base de datos Database db=odmg.newDatabase(); db.open(dbUrl,org.odmg.Database.OPEN_READ_WRITE); try { Transaction txn=odmg.newTransaction(); txn.begin(); try { db.bind(invoice,id); } catch (ODMGRuntimeException x) { txn.abort(); log.println("[04] ODMGRunTimeException \n"); //throw x; } catch (Exception x) { txn.abort(); log.println("[09] Error en transacción \n"); //throw x; } txn.commit(); log.println("[00] Documento de XML almacenado correctamente \n"); } finally { db.close(); } } catch ( Exception x ) { log.println("[10] Violación de llave \n"); } } //** Java Objects --> XML public static void java2xml (String dbUrl, String id) { try { Database db=odmg.newDatabase(); db.open(dbUrl,org.odmg.Database.OPEN_READ_ONLY); try { Transaction txn=odmg.newTransaction(); txn.begin(); try { Invoice invoice=null; OQLQuery query=odmg.newOQLQuery(); String queryString="SELECT i FROM InvoiceExtent AS i WHERE i._id=\"" + id + "\";"; query.create( queryString ); Collection result=(Collection) query.execute(); Iterator iterator=result.iterator(); if (iterator.hasNext()) { invoice=(Invoice) iterator.next(); //log.println("[00] DOcumento recuperado \n"); } else { throw new Exception("[01] Invoice " + id + " no encontrado"); } // Java objects --> Flujo de datos XML Marshaller mrs=new Marshaller( new PrintWriter(System.out,true) ); mrs.setLogWriter( log );

Page 104: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

91

mrs.marshal( invoice ); System.out.println("\n[00] Documento recuperado correctamente"); } catch (ODMGRuntimeException x) { txn.abort(); System.out.println("[06] Violación de llave\n"); //throw x; } catch (Exception x) { System.out.println("[08] ID no encontrado en la BD\n"); txn.abort(); //throw x; } txn.commit(); } finally { db.close(); } } catch ( Exception x ) { System.out.println("[07] No se puede abrir la BD\n"); } } } Delete.java /** ------------------------------------------------------------ * Este archivo fué generado automáticamente por AdminXML 1.0.0 * Roble Leonel Glez. Urbieta * Fecha: [13/07/2002] Hora: [11:30:51 AM] * ------------------------------------------------------------ */ //ver 11.04.2002 import org.odmg.ObjectNameNotFoundException; import org.odmg.ODMGException; import com.poet.odmg.*; public class Delete { Delete(Database db, String name) throws ODMGException { Transaction txn=new Transaction(); txn.begin(); try { ObjectServices.current().delete(db.lookup(name)); db.unbind(name); } catch (ObjectNameNotFoundException exc) { System.out.println("[12] Objeto a eliminar no encontrado"); txn.abort(); throw exc; } catch (POETRuntimeException exc) { System.out.println("[12] Eliminación de objeto no garantizado o conexión a servidor perdida"); txn.abort(); throw exc; } System.out.println("[00] Objeto Eliminado"); txn.commit(); } public static void main(String[] args) throws ODMGException { if (args.length<2)

Page 105: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

92

{ System.out.println("[11] Especifique el nombre de la Base de datos y del Objeto a eliminar"); System.exit(1); } Database db=new Database(); db.open(args[0], Database.OPEN_READ_WRITE); try { new Delete(db, args[1]); } finally { db.close(); } } } 6.4.2 Prueba 2: generar un esquema de BD a partir de un esquema XML no válido El proceso para generar un esquema se realiza de acuerdo a los pasos descritos en el capítulo 4 en el punto 4.2.3.4. La pantalla de captura del ejemplo se muestra en la fig. 6.2. Para este ejemplo se tomó como esquema el descrito en el punto 6.3.1, esquema 2 (el id es EJEMPLO2 y la ruta cambió por c:\xitami\Webpages\ejemplo2). El esquema 2 no es un documento de XML bien formado por lo que no es un esquema válido, ya que le falta la etiqueta de cierre </schema> que se puede apreciar en la línea 72 del esquema 1. El archivo de configuración es el mencionado en el punto 6.3.2, y las características son las descritas en el ejemplo anterior. Para esta prueba se utilizó en la computadora servidor el ambiente de pruebas descrito en el punto 6.2.

Page 106: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

93

Fig. 6.3 Pantalla de captura de la base de datos EJEMPLO2 con un esquema con errores Ejecución de la prueba: Se inició el proceso de generación de la base de datos de documentos de XML y para tal efecto se asigna un esquema a la base de datos. Durante este proceso el MAD detectó un problema, el cual se muestra en la fig. 6.3 (el esquema proporcionado no es un documento de XML bien formado). Al encontrar este error no se puede continuar con el proceso de generación de la base de datos , ya que el esquema proporcionado no es correcto.

Page 107: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

94

6.4.3 Prueba 3: almacenamiento de documentos de XML válidos en MAD El proceso para el almacenamiento de documentos de XML está explicado en el capítulo 3, en el punto 3.2.2.1. Para esta prueba se utilizó el esquema 1 y los documentos de XML 1, 2 y 3. Una vez generado el esquema de base de datos (punto 6.4.1), se intentó almacenar los documentos de XML 1, 2 y 3 mostrados en el punto 6.3.3, teniendo los resultados siguientes: Ejecución de la prueba : Los documentos 1, 2 y 3 se almacenaron satisfactoriamente (Figura 6.4), ya que estos documentos son documentos válidos para el esquema proporcionado al generar la base de datos de documentos de XML (EJEMPLO). Para el MAD, si los documentos son correctos, los almacena y cierra la ventana de captura (Alta de documentos de XML) automáticamente al terminar el proceso de almacenamiento.

Fig. 6.4 Pantalla de captura del documento 1

Page 108: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

95

6.4.4 Prueba 4: almacenamiento de documentos de XML mal formados en MAD El proceso para el almacenamiento de documentos de XML se detalla en el capítulo 3, en el punto 3.2.2.1. Para esta prueba se utilizó la base de datos generada (prueba 1) del esquema 1 y el documento 4. Una vez generado el esquema de base de datos (punto 6.4.1), se intentó almacenar el documento 4, mostrado en el punto 6.3.3, teniendo los resultados siguientes: Ejecución de la prueba : El documento 4 no se almacenó debido a que no es un documento bien formado (Fig. 6.5). En la fig. 6.5 se observa el mensaje informando al usuario esta situación. El error consiste en que la etiqueta de inicio <Invoice> no coincide con la etiqueta final </Invoicex> (líne |a 16 del documento 4). Para poder realizar un análisis más detallado del error se puede presionar el tercer botón de izquierda a derecha de la ventana Documento de XML para enviar el documento de XML a la aplicación asociada y analizar el documento en esta aplicación, o presionar el botón 4 de izquierda a derecha y realizar el análisis en el MAD mostrado en la fig. 6.6; en este caso el error aparecerá en la sección “Errores encontrados en el documento de XML”.

Fig. 6.5 Pantalla de captura del documento 4, y el mensaje de error sobre la mala formación del documento

Page 109: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

96

Fig. 6.6 Análisis detallado del documento de XML 6.4.5 Prueba 6: almacenamiento de documentos de XML no válidos en el MAD El proceso para el almacenamiento de documentos de XML está explicado en el capítulo 3, en el punto 3.2.2.1. Para esta prueba se utilizó la base de datos generada (prueba 1) del esquema 1 y el documento 5. Una vez generado el esquema de base de datos (punto 6.4.1), se intentó almacenar el documento 5, mostrado en el punto 6.3.3, teniendo los resultados siguientes:

Page 110: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

97

Ejecución de la prueba : El documento 5 no se almacenó debido a que no cumple los requerimientos de validez necesarios. El error consiste en que , en el esquema 1 mostrado en el punto 6.3.1 en la línea 20, se especifica que las ocurrencias de la etiqueta <ShipTo> es de 0 ó 1 (<element ref = "ShipTo" minOccurs = "0" maxOccurs = "1"/>) y en el documento 5 aparece 2 veces esta etiqueta, violando esta regla de validez. En la fig. 6.7 se puede observar el mensaje de error.

Fig. 6.7 Pantalla de captura del documento 5, y el mensaje de error sobre invalidez del documento

6.4.6 Prueba 6: recuperación de documentos de XML por medio del MAP Para esta prueba se utilizó el ambiente de pruebas descrito en el punto 6.2. Como aplicación de Web se diseño un programa con una implementación de sockets (XML Chat 1.0.0) para comunicarse al puerto 5000 de la computadora servidor con el módulo MAP (XML Chat). Para la ejecución de esta prueba es necesario tener cargado el módulo MAP en el servidor. Para esta prueba se utilizó la base de datos generada (prueba 1) del esquema 1 y los documentos de XML 1, 2 y 3. Se desarrollo un prototipo de software especialmente diseñado para comunicarse con el MAP. El prototipo denominado XML Chat, se desarrolló en Delphi. Sus unidades se pueden observar en la tabla 6.1.

Page 111: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

98

Unidad Nombre físico del archivo

Nombre lógico dentro del proyecto

Descripción

Chatmain Chatmain.pas main Programa principal

f_up f_up.pas Up Formulario para pedir un campo, depende del protocolo.

f_bd f_bd.pas Bd Formulario para pedir usuario y contraseña para el acceso a información.

f_dxml f_dxml.pas Gdxml Formulario para pedir datos necesarios para el acceso a documento de XML en una base de datos de documentos de XML.

Tabla. 6.1 Unidades del XML Chat 1.0.0

Ejecución de la prueba Se realizó la petición desde la computadora A (con IP 148.208.247.221) del documento de XML 1 de la base de datos EJEMPLO, de acuerdo al formato de protocolo descrito en el capítulo 3 en el punto 3.2.2 (get docxml ejemplo::1:xml), mostrado en la fig. 6.8.

Fig. 6.8 Solicitud de datos para recuperar un documento de XML en el XMLChat 1.0.0 El MAP recibió e interpretó la petición y generó dinámicamente el documento de XML solicitado. El resultado de la consulta fue enviado a la aplicación cliente (XML Chat). Una vez enviado el documento de XML, el cliente lo visualizó en el Internet Explorer 6.0, mostrado en la fig. 6.9.

Page 112: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

99

Fig. 6.9 Visualización del documento de XML en Internet Explorer 6 recuperado de la base de datos En la fig. 6.10 se pueden observar los mensajes que aparecen en el lado del servidor (MAP). En la línea 3 aparece la instrucción de recuperación del documento de XML 1 de la base de datos EJEMPLO en formato XML.

Fig. 6.10 Visualización de mensajes en el lado del servidor (MAP)

Instrucción para recuperar un

documento de XML

Page 113: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

100

6.4.7 Prueba 7: comprobación la capacidad multitarea del MAP Para esta prueba se utilizó el ambiente de pruebas descrito en el punto 6.2. Es necesario haber cargado el módulo MAP en el servidor y el XML Chat en las computadoras clientes (A y B). Ejecución de la prueba Las aplicaciones cliente (XML Chat en computadoras A [con IP 148208.247.221] y B [con IP 148208.247.31]) lanzaron solicitudes simultáneamente sin que existieran problemas de colisión entre aplicaciones. El MAP atendió satisfactoriamente las solicitudes de ambas aplicaciones. En la fig. 6.11 se puede observar en la ventana del MAP que en la barra indicadora de conexiones se atiende a más de una solicitud.

Fig. 6.11 El MAP resolviendo dos conexiones simultáneas

Barra indicadora de conexiones

Page 114: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

101

CAPÍTULO 7

Conclusiones En este capítulo se describen las conclusiones generales y los resultados obtenidos. Se incluyen además algunas recomendaciones y trabajos futuros.

Page 115: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

102

7.1 Conclusiones generales Este trabajo consiste en el diseño e implementación de una herramienta que permita la administración del almacenamiento y recuperación de documentos de XML en una base de datos orientada a objetos , así como la consulta de los documentos de XML vía Internet por medio de un protocolo entre una aplicación de Web y el Servidor de Documentos de XML. 7.2 Resultados obtenidos A continuación se listan los resultados obtenidos con el desarrollo de esta tesis:

q Se desarrolló, implementó y probó una herramienta que permita la administración de bases de datos de documentos de XML (MAD). Esto implica el análisis del esquema XSL para generar una base de datos de documentos de XML, la administración de hojas de estilo y la administración de documentos de XML (analizando su buena formación y validando estos documentos contra el esquema XSL proporcionado).

q Se desarrolló un protocolo por medio del cual las aplicaciones de Web pueden

consultar los documentos de XML contenidos en las bases de datos de documentos de XML, administrados por el el Servidor de Documentos de XML (MAD).

q Se desarrolló, implementó y se probó una aplicación (MAP) que actúa como

Servidor de Documentos de XML resolviendo las peticiones de los clientes (aplicaciones de Web) , implementando el protocolo desarrollado en esta tesis (punto anterior), y a través del cual se pueden realizar diferentes operaciones de consulta sobre la base de datos de documentos de XML administrada por el MAD.

7.3 Trabajos futuros Dentro de la herramienta de administración (MAD), se pueden mejorar algunos módulos, entre ellos los siguientes:

q Actualmente sólo se pueden realizar búsquedas sobre el campo llave de la base de datos, lo que es una gran limitante. Aprovechando que se tiene el esquema XSL (del cual se generó la base de datos de documentos de XML) se podría implementar un Query By Example en el cual el sistema MAP indique cuales son los posibles campos de búsqueda realizando un análisis de este esquema, y a partir de esto se podrán lograr nuevos niveles de automatización. Las búsquedas se podrán realizar en base al contexto y no sólo en base al índice primario. Básicamente, los datos contenidos en la base de datos se describirán a sí mismos, lo que potencia aplicaciones en formas todavía no imaginadas.

Page 116: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

103

q Se puede incrementar el número de instrucciones del protocolo de comunicaciones con aplicaciones de Web, para realizar otras acciones diferentes a las implementadas en el protocolo actual.

q En el módulo de catálogo de esquemas, la mejora consistiría en realizar una interfaz más sencilla para la generación y edición de esquemas y mejorar el manejo de errores.

q Para el catálogo de esquemas, desarrollar e implementar una herramienta para la generación automática de esquemas partiendo de esquemas de bases de datos relacionales.

q Dentro del módulo de hojas de estilo, se puede mejorar implementando una interfaz que facilite el desarrollo de hojas de estilo de acuerdo al esquema de base de datos y que tenga implementado los estándares CSS1 y CSS2.

q Desarrollar una interfaz visual para generar el archivo de configuración de base de datos de una forma simple y automática, implementando el conjunto de parámetros contenidos en el manual “POET Software Configuration Guide”.

Page 117: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

104

ANEXOS

Page 118: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

105

Anexo A. Notas de instalación del Módulo Administrador de Documentos de XML (MAD) Para el buen funcionamiento del prototipo se necesita instalar el MAD y el MAP en la computadora que actuara como servidor, además se necesitara tener instalado en la misma computadora el POET y el JDK 1.2. Todas las aplicaciones necesarias vienen en el cdrom de instalación del prototipo en la siguiente estructura de archivos:

El CDROM contiene nueve subdirectorios con información referente a la tesis (códigos fuente, documentación técnica y componentes externos necesarios para su compilación), documentación técnica y el software de instalación de POET, JDK, Xitami y otras aplicaciones necesarias para editar y visualizar documentos de XML. La descripción de los subdirectorios es la siguiente:

q Ejemplo. Archivos con los ejemplos de las pruebas realizadas al prototipo.

q JDK. Kit de desarrollo de Java (Ver. 1.3.3). q MS XML4.0. Instala la biblioteca de ActiveX del

procesador de XML de Microsoft. q POET. Documentación y el programa de instalación

del manejador de bases de datos orientadas a objetos POET (Ver. 6.1).

q Prototipo. Componentes y los programas fuentes y de instalación del Módulo Administrador de Documentos de XML (MAD), el Módulo Adminis-trador de Peticiones (MAP) y la aplicación prototipo (XMLNetChat 1.0.0) de comunicación con el MAP.

q Tesis. Documento de tesis y propuesta de tesis (en formato Word y PDF) y la presentación final en formato PPT de la tesis.

q Xitami. Servidor de Web utilizado en el ejemplo. q XML Apps. Aplicaciones necesarias para editar y

visualizar los documentos de XML. q XML Docs. Documentación variada sobre diversos

tópicos de XML. Los subdirectorios con nombre Docs contienen manuales y documentación técnica sobre el tópico de su directorio padre, y los Install contienen el software de instalación para las aplicaciones a que hace referencia su directorio padre con excepción del subdirectorio XML Apps en el cual el nombre del subdirectorio contiene el software de instalación de la aplicación .

Page 119: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

106

El software mínimo necesario para el funcionamiento del software desarrollado en esta tesis es el siguiente (y en el orden siguiente):

q 1Xitami. Servidor de Web necesario para poner el ejemplo en línea. Los documentos de ejemplo (subdirectorio Ejemplo) se colocan en algun subdirectorio visible por el servidor de Web (Una vez instalado el Xitami sería el subdirectorio Webpages). El archivo de instalación se encuentra en CDROM:\Xitami\Install\BW3225B4.EXE.

q

1JDK. Se instala el kit de desarrollo de Java, necesario para compilar las clases generadas por el MAD. Se encuentra en CDROM:\JDK\j2sdk1_3_0-win.exe. Se recomienda instalar el software en la ruta c:\jdk1.2.2\.

q

1POET. Este software es el manejador de bases de datos orientadas a objetos, necesario como repositorio de documentos de XML. Una vez instalado el POET es necesario copiar las bibliotecas Castor y Xerces (se encuentran en el subdirectorio CDROM:\POET Lib\) en el subdirectorio lib de POET. El software de instalación se encuentra en CDROM:\POET\Install\setup.exe. Se recomienda instalar el software en la ruta c:\POET.

q

1MAD. Este es el Módulo Administrador de Documentos de XML. El software de instalación se encuentra en CDROM:\prototipo\MAD\install\setup.exe .

q

1MAP. Este es el Módulo Administrador de Peticiones. El software de instalación se encuentra en CDROM:\prototipo\MAP\install\setup.exe.

q

2XMLNetChat. Este software se instala en los clientes, y funciona solamente cuando ya está cargado el MAP en el servidor. El software de instalación se encuentra en CDROM:\XML NetChat\Install.

q

2Microsoft Internet Explorer 6.0. Este software es necesario para visualizar los documentos de XML en el cliente. El software se encuentra en CDROM:\XML Apps\Internet Explorer 6 W2K\ie6setup.exe. En el cdrom sólo viene la versión para Windows 2000, si se tiene un sistema operativo diferente consulte la página de Microsoft para bajar una versión más reciente y en el sistema operativo de su preferencia.

Cabe mencionar que el software contenido en el cdrom funciona solamente en el ambiente Windows. El número 1 indica que se instala en la computadora servidor y el Número 2 en las computadoras clientes. Una vez instalado el manejador de bases de datos orientadax a objetos POET, se necesita configurar las siguientes variables de entorno:

Page 120: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

107

Para Windows 95, 98 y ME: La variable de ambiente CLASSPATH debe contener la siguiente línea (esta línea se grega en el archivo autoexec.bat cuando no es agregada por la propia instalación de POET).

q Para Java 2 compliant VM (version 1.2 or 1.3):

SET CLASSPATH=.;%POET6ODMG3JC_CLASSPATH%;%CLASSPATH% q Para JDK 1.1 compliant VM:

SET CLASSPATH=.;%POET6ODMG3SC_CLASSPATH%;%CLASSPATH% Para Windows 2000 o Windows NT, se agrega la línea en la sección propiedades del sistema (que se encuentra en el Panel de control->Sistema->Avanzado).

Fig. A1 Propiedades del Sistema

Variables de entorno Icono de

Sistema,en el Panel de Control

Page 121: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

108

Fig. A2 Modificar variables de entorno en Windows 2000

Para agregar una variable de entorno, se presiona el botón <Nueva…> dentro de la sección variables de usuario para [nombre de usuario], como nombre de variable se coloca CLASSPATH y como el valor de la variable se escribe .;%POET6ODMG3JC_CLASSPATH%; %CLASSPATH%;d:\jdk1.2.2\lib Donde d:\ es el nombre de la unidad, y c:\jdk1.2.2\lib es la dirección de las bibliotecas de JDK. En la variable PATH se agrega la siguiente línea: c:\poet\bin;

En la variable POET6ODMG3JC_CLASSPATH se agrega la siguiente línea: C:\POET\lib\POET6ODMG3JC_SDK.jar;D:\POET\lib\POET6ODMG3JC_Runtime.jar En la variable POET6ODMG3SC_CLASSPATH se agrega la siguiente línea: C:\POET\LIB\collections.jar;%POET6ODMG3SC_CLASSPATH% Para probar que las variables de entorno están funcionando correctamente, pueden ejecutarse desde la línea de comandos (DOS) las siguientes instrucciones: c:\PATH c:\echo %CLASSPATH% c:\echo %POET6ODMG3JC_CLASSPATH% c:\echo %POET6ODMG3SC_CLASSPATH% El sistema le debe contestar con el valor de la variable de entorno correspondiente. Unix / Linux En UNIX/Linux se tiene que agregar a la variable de ambiente CLASSPATH las siguientes líneas § Java 2 compliant VM (version 1.2 or 1.3):

Adicione POET6ODMG3JC_SDK.jar en la variable CLASSPATH. § JDK 1.1 compliant VM:

Adicione POET6ODMG3SC_SDK.jar y collections.jar en la variable CLASSPATH.

Page 122: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

109

Anexo B. Notas de Compilación del Módulo Administrador de Documentos de XML (MAD) y el Módulo Administrador de Peticiones (MAP) Proyecto MAD El proyecto MAD consta de 176 archivos (3,217,671 bytes): About.dcu About.ddp About.dfm About.pas AdminXML.res AppMain.dcu AppMain.ddp AppMain.dfm AppMain.pas AppMainLogin.dcu AppMainLogin.ddp AppMainLogin.dfm AppMainLogin.pas BDGenClass.dcu BDGenClass.ddp BDGenClass.dfm BDGenClass.pas BDInformation.dcu BDInformation.ddp BDInformation.dfm BDInformation.pas BDPackUnit.dcu BDPackUnit.pas BDPassword.dcu BDPassword.ddp BDPassword.dfm BDPassword.pas BDXML.dcu BDXML.ddp BDXML.dfm BDXML.pas BDXMLVerifyIntegrity.dcu BDXMLVerifyIntegrity.ddp BDXMLVerifyIntegrity.dfm BDXMLVerifyIntegrity.pas CatalogoBDXML.dcu CatalogoBDXML.ddp CatalogoBDXML.dfm CatalogoBDXML.pas CatalogoHojaEstilo.dcu CatalogoHojaEstilo.ddp CatalogoHojaEstilo.dfm CatalogoHojaEstilo.pas CatalogoUsers.dcu CatalogoUsers.ddp CatalogoUsers.dfm CatalogoUsers.pas CatalogoXMLDoc.dcu CatalogoXMLDoc.ddp CatalogoXMLDoc.dfm CatalogoXMLDoc.pas CatalogoXMLSchemas.dcu CatalogoXMLSchemas.ddp CatalogoXMLSchemas.dfm CatalogoXMLSchemas.pas ConfiguracionXML.dcu ConfiguracionXML.ddp ConfiguracionXML.dfm ConfiguracionXML.pas

ConfigurationBD.dcu ConfigurationBD.ddp ConfigurationBD.dfm ConfigurationBD.pas CreateBDXML.dcu CreateBDXML.ddp CreateBDXML.dfm CreateBDXML.pas DBExportDatabase.dcu DBExportDatabase.ddp DBExportDatabase.dfm DBExportDatabase.pas DBMemoPTJFile.dcu DBMemoPTJFile.ddp DBMemoPTJFile.dfm DBMemoPTJFile.pas DBMemoSchemaFile.dcu DBMemoSchemaFile.ddp DBMemoSchemaFile.dfm DBMemoSchemaFile.pas DBMemoStyleSheetFile.dcu DBMemoStyleSheetFile.ddp DBMemoStyleSheetFile.dfm DBMemoStyleSheetFile.pas DBMemoXMLFile.dcu DBMemoXMLFile.ddp DBMemoXMLFile.dfm DBMemoXMLFile.pas DBPackDatabase.dcu DBPackDatabase.ddp DBPackDatabase.dfm DBPackDatabase.pas DocumentoXMLAC.dcu DocumentoXMLAC.ddp DocumentoXMLAC.dfm DocumentoXMLAC.pas FieView.dcu FieView.ddp FieView.dfm FieView.pas LogSystem.dcu LogSystem.ddp LogSystem.dfm LogSystem.pas MAD.cfg MAD.dof MAD.dpr MAD.exe MAD.res MainSplashForm.dcu MainSplashForm.ddp MainSplashForm.dfm MainSplashForm.pas ModifyBDXML.dcu ModifyBDXML.ddp ModifyBDXML.dfm ModifyBDXML.pas openDBXML.dcu openDBXML.ddp

openDBXML.dfm openDBXML.pas POETDatabaseGenerate.dcu POETDatabaseGenerate.ddp POETDatabaseGenerate.dfm POETDatabaseGenerate.pas ReportDB.dcu ReportDB.ddp ReportDB.dfm ReportDB.pas ReportDBDetails.dcu ReportDBDetails.ddp ReportDBDetails.dfm ReportDBDetails.pas ReportDetails.dcu ReportDetails.ddp ReportDetails.dfm ReportDetails.pas ReportStyleSheet.dcu ReportStyleSheet.dfm ReportStyleSheet.pas SchemaXMLAC.dcu SchemaXMLAC.ddp SchemaXMLAC.dfm SchemaXMLAC.pas SearchFile.dcu SearchFile.ddp SearchFile.dfm SearchFile.pas SearchSub.dcu SearchSub.ddp SearchSub.dfm SearchSub.pas StyleSheetDocXMLAC.dcu StyleSheetDocXMLAC.ddp StyleSheetDocXMLAC.dfm StyleSheetDocXMLAC.pas StyleSheetXMLAC.dcu StyleSheetXMLAC.ddp StyleSheetXMLAC.dfm StyleSheetXMLAC.pas User_AC.dcu User_AC.ddp User_AC.dfm User_AC.pas x.txt XMLDocEdit.dcu XMLDocEdit.ddp XMLDocEdit.dfm XMLDocEdit.pas XMLParseDocument.dcu XMLParseDocument.ddp XMLParseDocument.dfm XMLParseDocument.pas XMLParseError.dcu XMLParseError.ddp XMLParseError.dfm XMLParseError.pas

Page 123: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

110

Para compilar el proyecto MAP es necesario instalar antes dos componentes externos que no vienen en la instalación normal de Delphi 6, estos componentes son los siguientes: XMLParser y PTapiz, que vienen en el subdirectorio Comps. Para instalar estos componen-tes siga las siguientes instrucciones: Para el componente XMLParser ejecute el archivo parsdpk.dpk que se encuentra en la ruta XMLPrsrFree\16Bit\Delphi6\parsdpk.dpk en el subdirectorio comps (ya debió haber instalado el MAD y el MAP y debe estar en la ruta \XML\comps). Una vez ejecutado el archivo, debe ver la pantalla A.3, en esta pantalla presione el botón [Compile] y después [Install].

Fig. A3 Instalación del componente parsdpk.dpk

Al presionar el boton instalar se debe mostrar una ventana con el mensaje de que la operación tuvo éxito. Para mayor información sobre la instalación refiérase al archivo XMLPrsrFree\16Bit\Delphi6\ Install.txt. Para instalar el componente PTapiz siga las siguientes instrucciones: 1.- Presione dentro del IDE de Delphi 6 las opciones del menú Component->Install Component… 2.- Posteriormente debe aparecer una ventana (Fig. A5) solicitando las siguientes rutas:

q En Unit File Name: de la ruta al archivo PAPELTAP.PAS que debe estar en \XML\COMPS\PTAPIZ.

q En Package File Name coloque un nombre de archivo con el que desea que se llame el paquete.

q Las demós opciones no las modifique.

Compilar

Instalar

Page 124: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

111

Fig. A4 Instalar componente Una vez instalados los componentes para compilar el proyecto cargue el archivo MAD.dpr desde el IDE de Delphi 6 (File->Open project…), que debe encontarse en XML\MAD\BIN\MAD.dpr.

Fig. A5 Proyecto MAD cargado en el IDE de Delphi 6

Page 125: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

112

Una vez cargado el proyecto para compilarlo sólo tiene que presionar F9 o el botón compilar desde el IDE ( ). Proyecto MAP El proyecto MAP consta de 10 archivos (773, 920 bytes): MAP.cfg MAP.dcu MAP.ddp MAP.dfm

MAP.dof MAP.dpr MAP.exe MAP.pas

MAP.res XMLService.res

Para compilar el proyecto MAP se tiene que cargar el archivo MAP.dpr en el IDE de Delphi 6. Al cargar el proyecto debe verse la imagen A6.

Fig. A6 Proyecto MAP cargado en el IDE de Delphi 6 Una vez cargado el proyecto para compilarlo sólo tiene que presionar F9, o el botón compilar desde el IDE ( ). Este proyecto no requiere de componentes externos.

Page 126: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

113

Anexo C. Diagrama Elka de la base de datos del MAD

Id ParProgGenClass Types ParFOP JavaClassPath POETAdminLoc PrintPreview PTJPar UsuarioDefault Visibilidad XMLStandard XMLValidar XMLRecuperarURL XMLIgnorarNoEncontrado XMLSalidaFormateada XMLConvertirPagCodWin XMLModoEscritura XMLFont XMLCharset XMLCodificacionDefault XMLByteOrder XMLFileNecessary XMLService CONFIGURACION

Id Password Nombre Clasificacion

USUARIO

Usuario Descripción Fecha Hora

BITACORA

Id_BD Descripcion Localizacion Password HojaEstiloDefault AsignarPassword

Id_Esquema

BD

BD Id HojaEstilo

HOJAESTILO_DOCXML

Id Descripcion Localización Formato StyleSheetFile URL

HOJAESTILO

Id Descripcion FormatoEsquema Localización SchemaFile URL

ESQUEMA

BD Id HojaEstilo Descripcion

XMLDOC

Page 127: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

114

Anexo D. Diccionario de datos del módulo MAD

Tabla BD Campo Tipo Tamaño Índice Máscara Descripción

Id A 15 # Campo llave.

Descripcion A 255 Descripción de la base de datos de documentos de XML.

Localizacion A 255 PATH de la base de datos . Esquema A 255 Enlace con tabla ESQUEMA.

Password A 255 Contraseña de acceso a la base de datos.

HojaEstiloDefault A 255 Hoja de estilo por omisión para documentos de XML para esta base de datos.

AsignarPassword L False||True

Este campo permite asignar un contraseña de acceso a la base de datos de documentos de XML Valor por omisión [FALSE].

PTJFile M 1 Archivo de parámetros para POET. LocalizacionPTJFile A 255 Dirección física al archivo de

parámetros para POET. Encoding A 30 Codificación por omisión de los

documentos de XML que pertenecen a la base de datos [ISO-8859-1].

ByteOrder A 1 Orden de bytes [L] . FileClass M 1 Nombre de los archivos de clases

generados. FileJava M 1 Nombre de los archivos fuente

generados. OPTIndexesClass A 255 Nombre de la clase principal de la

base de datos (elemento raíz). OPTIndexesMembers A 255 Nombre de los campos que van a ser

utilizados como índices. OPTSchemataName A 255 Nombre físico de la base de datos de

objetos XML (diccionario de datos). OPTSchemataOneFile A 5 False|True Permite conocer si el tipo de base de

datos (diccionario de datos) va a ser de un archivo o dos.

OPTDatabaseName A 255 Nombre físico de la base de datos de objetos XML (datos).

OPTDatabaseOneFile A 5 False|True Permite conocer si el tipo de base de datos (datos) va a ser de un archivo o dos.

Descripción Esta tabla contiene los datos generales de una base de datos de XML.

Page 128: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

115

Tabla ESQUEMA

Campo Tipo Tamaño Índice Máscara Descripción Id A 15 # Campo llave. Descripcion A 255 Descripción del esquema . FormatoEsquema A 20 Formato del esquema y versión. Localizacion A 255 Ruta al archivo. SchemaFile M 1 Archivo de esquema. URL A 255 URL del archivo en donde se

encuentra el archivo de esquema en el servidor de Web.

Descripción Esta tabla contiene los datos generales del esquema de una base de datos.

Tabla HOJA ESTILO Campo Tipo Tamaño Índice Máscara Descripción

Id A 15 # Campo llave. Descripcion A 255 Descripción de la hoja de estilo. Localizacion A 20 Localización física del archivo de hoja

de estilo. Formato A 255 Formato del esquema y versión

[XSL]. StyleSheetFile M 1 Archivo de hoja de estilo URL A 255 URL del archivo en donde se

encuentra el archivo de hoja de estilo en el servidor de Web.

Descripción Esta tabla contiene los datos generales de las hojas de estilo enlazadas a

documentos de XML.

Tabla BITÁCORA Campo Tipo Tamaño Índice Máscara Descripción

Usuario A 15 En lace a tabla Usuario. Accion A 60 Acción realizada por el usuario. Descripcion A 200 Descripción de la acción. Fecha D Fecha de la acción realizada. Hora T Hora de la acción realizada. Descripción Bitácora de movimientos en el Sistema Administrador de Documentos de XML.

Page 129: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

116

Tabla CONFIGURACION

Campo Tipo Tamaño Índice Máscara Descripción Id A 15 # Campo llave [1]. ParProgGenClass A 255 Parámetros para el programa

externo generador de clases [org.exolab.castor.builder.SourceGenerator –I].

Types A 255 Tipos por omisión usados por el generador de clases [-types odmg].

ParFOP A 255 Parámetros de configuración para visualizar los documentos de XML en formato PDF.

JavaClassPath A 255 Ruta al subdirectorio de clases de Java.

POETAdminLoc A 255 Localización del administrador de bases de datos orientadas a objetos.

PrintPreview L TRUE|FALSE Indica si se realizará una visualización previa al enviar a imprimir un documento [True].

PTJPar A 255 Parámetros necesarios para realizar la optimización del archivo de parámetros enviado a la base de datos orientada a objetos [-enhance -inplace -update -conf].

UsuarioDefault A 15 Usuario por omisión al iniciar el Sistema Administrador de Documentos de XML [ADMINISTRADOR].

Visibilidad N Visibilidad al mostrar ventanas basadas en modo de carácter (DOS) [0].

XMLStandard L TRUE|FALSE Utilizar el estándar XML Standard [False].

XMLValidar L TRUE|FALSE [True]. XMLRecuperarURL L TRUE|FALSE Esta opción habilitada permite

recuperar los documentos de XML externos (entidades externas) [False].

XMLIgnorarNoEncontrado

L TRUE|FALSE Esta opción habilitada ignora entidades externas no encontradas al recuperar documentos de XML desde un URL[False].

XMLSalidaFormateada

L TRUE|FALSE Permite formatear la salida de un documento de XML [True].

XMLConvertirPagCodWin

L TRUE|FALSE Esta opción habilitada permite convertir páginas a códigos de Windows [False].

XMLModoEscritura A 25 Modo de escritura de un documento de XML.

XMLFont A 255 Tipo de letra utilizado al mostrar documentos de XML [Tahoma].

Page 130: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

117

XMLCharset A 255 Juego de caracteres utilizados al

mostrar documentos de XML [Western Europe characters].

XMLCodificacionDefault

A 100 Codificación por omisión al mostrar documentos de XML [US-ASCII].

XMLByteOrder A 1 XMLFileNecessary M 1 Campo con la declaración de clases

para tipos de datos ODMG. XMLService N Puerto en donde escucha el Módulo

Administrador de Peticiones [5000]. CodXMLBinding M 1 Código del programa que permite la

serialización de un documento de XML hacia y desde la base de datos orientada a objetos.

XMLDeleteUnbind M 1 Clase necesaria para eliminar objetos de la base de datos.

WebServerPath A 255 Ruta al subdirectorio base del servidor de Web. [C:\xitami\Webpages\].

Descripción Pará metros de configuración general para el MAD y el analizador de documentos de XML.

Tabla USUARIO Campo Tipo Tamaño Índice Máscara Descripción

Id A 15 # Campo llave. Password A 15 Clave de acceso del usuario. Nombre A 60 Nombre del usuario. Clasificacion A 1 A||O Tipo de usuario. Puede ser

administrador (con todos los privilegios) u operador (con privilegios sólo de adición, modificación y eliminación de documentos de XML). Valor por o misión [O].

Descripción Esta tabla contiene los datos de usuarios del MAD.

Tabla XMLDOC Campo Tipo Tamaño Índice Máscara Descripción

BD A 15 # Enlace a tabla BD. Id A 15 # Identificación del documento de

XML. HojaEstilo A 15 Enlace con tabla HOJAESTILO. Descripcion A 255 Descripción del documento

XML. Descripción Esta tabla contiene los datos de cada documento de XML almacenado en la base

de datos orientada a objetos (POET).

Page 131: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

118

Tabla HOJAESTILO_DOCXML Campo Tipo Tamaño Índice Máscara Descripción

BD A 15 # Enlace a tabla BD. Id A 15 # Enlace a tabla XMLDOC. HojaEstilo A 15 # Enlace a tabla HOJAESTILO . Descripción Esta tabla contiene los datos de cada documento de XML almacenado en la base

de datos orientada a objetos POET

Page 132: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

119

Anexo E. Descripción de iconos de la interfaz del MAD Botones de Navegación.

Ir al primer renglón de la tabla actual.

Ir al renglón anterior de la tabla actual.

Ir al renglón siguiente de la tabla actual.

Ir al último renglón de la tabla actual.

Actualizar la tabla actual.

Agregar un renglón nuevo en la tabla actual.

Editar el renglón actual en la tabla actual.

Eliminar el renglón actual en la tabla actual. Cabe mencionar que esta opción solamente está activada si el tipo de usuario es supervisor.

Base de Datos de Documentos de XML.

Ver la base de datos en forma de árbol.

Ver las clases generadas (.java y .class) por Castor.

Abrir la base de datos de documentos de XML actual.

Esquemas y Hojas de Estilo.

Ver el esquema u hoja de estilo en la aplicación asociada. Por ejemplo, los esquemas se pueden ver con Internet Explorer 6 (si se tiene configurado así).

Ver el esquema u hoja de estilo en forma de texto.

Documentos de XML.

Cargar documento de XML.

Grabar documento de XML.

Ejecutar documento de XML en aplicación asociada.

Verificar la buena formación de un documento de XML.

Unidades .

Unidad, sólo procedimientos y funciones .

Formularios donde se necesita interacción con el usuario.

Ventana de información, no se necesita interacción con el usuario.

Ventana principal. Módulo de datos. Se almacenan tablas y relaciones entre ellas.

Reporte. Botones en formularios

Realiza la acción principal del formulario, si este botón va acompañado de un botón Salir deja la ventana sin cerrarla, en caso contrario cierra la ventana actual.

Almacena el renglón actual que se está editando o dando de alta.

Cancela la acción principal del formulario y cierra la ventana actual.

Cierra la ventana actual.

Este botón solamente aparece en configuración del MAP y configuración del analizador de documentos de XML. Se debe presionar solamente cuando por alguna razón se haya dañado la configuración.

Page 133: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

120

Reporte previo

Ver el reporte a página completa.

Ver el reporte al 100% .

Ver el reporte al ancho de página.

Ir a la primer página.

Ir a la página anterior.

Ir a la página siguiente.

Ir a la última página.

Configurar impresora.

Imprimir.

Almacenar reporte en disco.

Abrir reporte (almacenado previamente).

Cerrar ventana de reporte previo.

Page 134: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

121

Glosario de términos y abreviaturas BDE Motor de Base de Datos de Borland (Borland Database Engine).

El BDE es un traductor entre una aplicación desarrollada en Delphi y las base de datos a las que se desea acceder.

CGI Interfaze de Pasarela Común (Common Gateway Interface). Especificación que define la comunicación entre servidores de información (como los servidores de Web) y los recursos en la computadora servidor (como las bases de datos y otros programas).

CORBA Arquitectura de Manejo de Solicitudes de Objetos Comunes (Common Object Request Broker Architecture). Especificación desarrollada por el grupo de Administración de Objetos en 1992, en el cual piezas de programas (objetos) pueden comunicarse con otros objetos en otros programas desarrollados en diferentes lenguajes de programación y que corran en plataformas diferentes.

CSS Hojas de Estilo en Cascada (Cascade Style Sheet). Un mecanismo sencillo para añadir estilos a los documentos de Web. Las CSSs permiten controlar los parámetros de estilo de una página de Web, como las fuentes, los colores y el espaciado.

DOM Modelo de Objeto de Documento (Document Object Model). Una interfaz neutral al lenguaje y a la plataforma originariamente creada por Microsoft, que proporciona un acceso dinámico a la estructura interna de los documentos de Web.

DSSSL Lenguaje de Especificación y Semántica de Estilo de Documentos (Document Style Semantics and Specification Language). El estándar internacional para especificar formato y estructura de documentos (ISO/IEC 10179:1996)

DTD Definición de Tipo de Documentos (Data Definition Type). La solución tradicional a la estructuración de documentos de XML heredada de SGML. Las DTDs se suelen usar para crear un modelo de datos para los documentos de XML, lo que permite validar estos documentos.

EDI Intercambio de Datos Electrónico (Electronic Data Interchange). Conjunto complejo de estándares y tecnologías para automatizar el intercambio de documentos de negocios de datos estructurados entre dos aplicaciones.

HTML Lenguaje de Marcado de Hipertexto (HyperText Markup Language). El lenguaje de marcado que sirve como estándar de publicación en la Web. En su forma actual (versión 4.0), HTML es una aplicación de SGML, pero la recomendación XHTML del W3C altera HTML para que sea una aplicación XML.

OQL Lenguaje de Consulta de Objetos (Object Query Language). El OQL ofrece una notación similar a la del SQL para expresar consultas en un nivel más alto de abstracción que la instrucción usual de un lenguaje ordinario. OQL está diseñado para utilizarse como una extensión en algún lenguaje anfitrión orientado a objetos.

Page 135: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

122

RDF Marco de Trabajo de Descripción de Recursos (Resource Description FrameWork) RDF es un lenguaje que permite expresar metacontenidos en general. A diferencia de un documento de XML que se representa en forma de árbol, un documento RDF posee una estructura de datos basada en gráficos.

SAX API Simple para XML (Simple API for XML). Una interfaz de programación estándar diseñada para analizar sintácticamente documentos de XML a través de una arquitectura basada en eventos.

SGML Lenguaje de Marcado Generalizado Estándar (Standar Generalized Markup Language). La primera tecnología importante sobre información est ructurada normalizada, que fue creada como resultado de un trabajo hecho por IBM para ofrecer una forma de formatear y mantener documentos estructurados, como los documentos legales. XML es un subconjunto simplificado de SGML, que está orientado a la Web.

URL Localizador Universal de Recursos (Universal Resource Locator). Un estándar para escribir una única referencia de texto para una pieza de datos en el WWW.

W3C Consorcio de Internet (World Wide Web Consortium). Es un consorcio internacional de compañías encargado de desarrollar estándares abiertos con el fín de que la Web se encamine en una única dirección.

WWW Web (World Wide Web). El WWW es una red de recursos de información. Se basa en tres mecanismos para hacer los recursos disponibles a la audiencia:

q Un esquema uniforme de localización de recursos de información (ej. URIs).

q Protocolos, para el acceso a los nombres de los recursos a través de la red (ej. HTTP).

q Hipertexto para la fácil navegación a través de los recursos (ej. HTML).

XLL Lenguaje de Vínculos Extensibles (eXtended Link Language). El nombre anterior de la tecnología XLink, que proporciona un mecanismo avanzado para vincular documentos de XML.

XML Lenguaje de Marcado Extensible (eXtensible Markup Language). Un subconjunto simplificado de SGML que incorpora muchas opciones de SGML, incluyendo la extensibilidad, la estructura y la validación. XML representa una nueva era en la Web, estableciendo un modo de transmitir datos estructurados.

XSL Lenguaje de Hoja de Estilo Extensible (eXtens ible Stylesheet Language). Una tecnología de hojas de estilo que soporta la transformación de documentos de XML de un tipo a otro, así como los estilos de los documentos de XML en base a las reglas de formato estructurado. XSL ejecuta estos dos aspectos de la presentación de documentos de XML a través de dos tecnologías distintas: XSLT y Objetos de Formato XSL.

Page 136: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

123

XSLFO Objetos de Formato (XSL Format Object).

Una especificación neutral a la plataforma y neutral a la audiencia para especificar la salida de información de formato a cargo de un procesador XSLT a partir de un archivo de estilos XSL y un documentos de XML.

XSLT Transformación XSL (XSL Transformation). Un vocabulario de XML que sirve como componente de la tecnología XSL que soporta la transformación de documentos de XML de un tipo a otro.

Page 137: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

124

REFERENCIAS

Page 138: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

125

[Armstrong, 2001] Erick Armstrong, Sun Microsystem, Code Fast, Run Fast with XML Data Binding.

[Beenstalk, 2001] Transparency, Beanstalk Structured Relational Management for E-Commerce, 2001, URL http://www.transparency.com

[Bourret, 2001] Ronald Bourret, XML and Databases, 2001, URL http://www.rpbourret.com/xml/XMLDatabaseProds.htm

[Castor, 2000] Exolab.org, The Castor Project, 2000, URL http://castor.exolab.org/index.html

[ColdFusion, 2001] Allaire, Allaire: ColdFusion 4.5 & Web Technologies, 2001, URL http://www.allaire.com/Products/ColdFusion/ productinformation/

[COM, 2001] Microsoft,Component Object Model: Technical Overview, 2001, URL http://www.microsoft.com/com/wpaper/com_modl.asp

[Coocon, 2001] Organización Apache, Cocoon, 2001, URL http://www.apache.org/cocoon/sql.html

[CORBA, 1998] Object Management Group (OMG) ,CORBA/IIOP 2.2 Specification,1998, URL http://www.omg.org/corba/corbaiiop.html

[CSS1, 1996] W3C, Cascade Styele Sheet level 1 recommendation, 1996, URL http://www.w3c.org/TR/REC-CSS1-961217

[CSS2, 1998] W3C, Cascade Styele Sheet level 2 recommendation 1998 http://www.w3c.org/TR/REC-CSS2-19980512

[Database DOM, 2001] IBM, Database DOM, 2001, URL http://www.alphaworks.ibm.com/tech/databasedom

[DataChannel, 2001] DataChannel, DataChannel Server, 2001, URL http://www.datachannel.com/products/dcs4.html

[DataCraft, 2001] IBM, Datacraft, 2001, URL http://www.alphaworks.ibm.com/formula/datacraft

[DB2 XML, 2001] IBM Software, Database and Data Manage DB2 XML Extender : Overview, 2001, URL http://www-4.ibm.com/software/data/db2/extenders/xmlext.html

[DBIx::XML_RDB, 2001]

Matt Sergeant, DBIx::XML_RDB - Perl extension for creating XML from existing DBI datasources, 2001, URL http://theory.uwinnipeg.ca/CPAN/data/DBIx-XML_RDB.html

[DbXML, 2001] dbXML Group, dbXML - Product Overview, 2001, URL http://www.dbxml.org/FAQ.html

[Documentum, 2001] Documentum, Inc., Documentum > products & services > xml and documentum > product information, 2001, URL http://www.documentum.com/products/content/index.html

[DOM1, 1998] W3C, Level 1 Document Object Model Specification Version 1.0 Working Draft,1998, URL http://www.w3.org/TR/ 1 998/WD-DOM- 19980720/

Page 139: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

126

[Dynabase, 2001] Inso., eBT.com - DynaBase - technical overview, 2001, URL

http://www.ebt.com/dynabase / [HTML4, 1998] W3C, HyperText Markup Language Version 4.0 (HTML)

Recommendation 1998, URL http://www.w3,org/TR/1998/REC-htlnl4O-l9980424/

[Informix, 2001] Informix, Object Translator 1.1 Feature Details, 2001, URL http://www.informix.com/xml

[InterAccess, 2001] XML Software Corporation, XML Software Corporation : SQL Database...lia, universal data access, data-mining , 2001, URL http://www.xmlsoft.com.au/iaccess.html

[Lore, 2001] Stanford University, Lore , 2001, URL http://www-db.stanford.edu/lore/home/index.html

[Maruyama, 2000] Hiroshi Maruyama et al, Creación de sitios Web con XML y Java, Ed. Prentice Hall, 2000, pp 8, 17, 177.

[Miller, 2000] John A. Miller, Sonali Sheth, Querying XMl Documents, Computer science Department, University of Georgia

[Morrison, 2000] Michael Morrison et al. XML al descubierto, Ed. Prentice Hall, 2000, pp 4,5,20, 164,346, 380.

[Net.Data, 2001] IBM Software, Database and Data Manage DB2 Product Family : Net.Data : Overview, 2001, URL http://www-4.ibm.com/software/data/net.data/

[ODBC Socket Server, 2001]

Team FXML, ODBC Socket Server, 2001, URL http://odbc.linuxbox.com

[ODMG, 1998] ODMG, Technical report 1998, URL http://www.odmg.org

[Osier, 1996] Dan Osier et al, Aprendiendo Delphi en 21 días, Ed. Sams Publishing, 1996, pp 5,13, 394.

[Poet, 1997a] POET, Software, XML – the Foundation for the future. Technical Report, Poet, URL http://www.poet.com/products/cms_solutions/ white_papers/foundation_for_the_future/indes.html

[Poet, 1997b] POET Software GmbH, XML and the Interne: Driving the future EDI, 1999. pp18.

[Poet, 1999] POET Software GmbH, POET Configuration Guide, 2000 [Poet, 1999] POET Java™ Programmer’s Guide

POET Software GmbH, 1999. [POET, 2001] POET Software, POET Content Management Suite, 2001, URL

http://www.poet.com/products/cms/cms.hmtl [Rhythmyx, 2001] Percusión Software, Tech Specs - XML Integration - Rhythmyx

- Percussion, 2001, URL http://www.percussion.com/Products/Rhytmyx/ rhythmyxover.htm

[Robie, 2001] Jonathan Robie, Dirk Bartels, “A comparison between relational and object oriented databases for object oriented application development”, POET Software GMBH.

Page 140: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

127

[Schema, 1999] W3C, XML Schema, URL

http://www.w3c.org/1995/05/06/-xmlshema-1 [Sheth, 2000] Sonali Sheth , John A. Miller, Query Languagues and tools for

xml documents and databases, Computer science Department, University of Georgia

[SOX, 1998] W3C, Schema for Object-oriented XMI, (SOX) Note 15-September - 1998, URL http://www.w3.org/TR/1998/NOTE-SOX-19980930/

[SQL Server, 2001] Microsoft, SQL Server Magazine Online - The XML Files, 2001, URL http://www.microsoft.com/workshop/XML/articles/ xmlsql/sqlxml_prev.asp, http://www.microsoft.com/msdnmag/issues/0300/sql/sql.asp

[Sybase, 2001] Sybase, Sybase SQL Server, 2001, URL http://www.sybase.com/products/dataservers/ase/ whitepapers/L01041.pdf

[Tamino, 2001] Software AG, Tamino XML DataBase, 2001, URL http://www.softwareag.com/tamino/

[Ullman, 1997] Jeffrey D. Ullman et al, Introducción a los sistemas de base de datos, Ed. Mc. Graw Hill, 1997, pp 419.

[Xerces, 2001] Apache Group, Xerces2 , 2001, URL http://xml.apache.org/~andyc/xerces2/ [19/06/2001 10:37:54 AM]

[Xerces, 2001] Projecto Apache, Xerces2 Architecture, 2001, URL http://xml.apache.org/~andyc/xerces2/architecture.html

[Xlink, 1998] W3C, Extensible Linking Language (XLink) Working Draft 3-March-1998, URL http://www.w3.org/TR/ 1 998AVD-xlink- 19980303

[XML, 2000] W3C, Extensible Markup Language (XML) 1.0. World Wide Web Cons ortium, 2 ed.. W3C Recommendation, 2000. URL http://www.w3c.org/TR/2000/REC-xml-20001006

[XMLPointer, 1998] W3C, XML Pointer Language (XPointer) working draft, URL http://www.w3.org/TR/ 1 998/WD-xptr- 19980303

[XPath, 1999] W3C, Namespaces in XML (XML Namespace) Recommnendation 14-January- 1999, URL http://www.w3.org/TR/ 1 999/REC-xml-names- 19990114/

[XPS, 2001] Sequoia Software Corp., XPS Portal Software Features and Benefits - Sequoia Software, 2001, URL http://www.sequoiaw.com/xps/index.asp

[XSL, 1998] W3C, Extensible Stylesheet Language (XSL) Version 1.0 recommendation, URL http://www.w3c.org/TR/1998/WD-xsl-19980818

[Young, 2001] Michael J. Young, Aprenda XML ya, Ed. Mc. Graw Hill, 2000, pp 3, 13.

Page 141: SECRETARÍA DE EDUCACIÓN PUBLICA - CENIDET · 2020-07-07 · 4.2.3.5 Vinculación de datos XML (XML Data Binding) ... datos semiestructurados implican ausencia de una estructura

128

[Zope, 2001] Digital Creations, User Doc for XMLDocument beta of zope-

xml, 2001, URL http://www.zope.org/, http://www.devshed.com/Server_Side/Zope/Intro/

[SIM, 2001] Progressive Information Technologies, SIM (Structured Information Manager), 2001, URL http://www.simdb.com/simdb/content/Fabout/SIM/

[Monster DOM, 2001] Ozone-db.org, Monster DOM, 2001, URL http://www.ozone-db.org/ozonies.html

[PDOM, 2001] GMD-IPSI, Persistent DOM, 2001, URL http://xml.darmstadt.gmd.de/xql/index.html

[Apache, 2001] Proyecto Apache, xml.apache.org, 2001, http://www.apache.org

[4ODS, 2001] Four Thought, 4Suite, 2001, URL http://opentechnology.org/4Suite/

[Oracle 8i, 2001] Oracle, Using XML and Relational Databases for Internet Applications, 2001, URL http://technet.oracle.com/tech/xml/info/htdocs/relational/index.htm#ID795, http://technet.oracle.com/tech/xml/info/htdocs/xml_twp.html