XML para FP : Introducción



Documentos relacionados
XML. Introducción. Cómo se usa? XML Tree. Sintaxis XML

PrefDataImporter Manual de Usuario Noviembre de 2013

3.1 Tipos de DTDs. ! Si queremos validar un documento XML (para comprobar si cumple las normas de un dialecto) tendremos que validarlo contra el DTD.

XML, parte 3. M. en C. Erika Vilches

ADEUDOS DOMICILIADOS SEPA ERP Microsa

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

GUÍA PARA LA FORMULACIÓN PROYECTOS

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Sistemas de Información 12/13 XML (extensible Mark-up Language)

NORMA (SEPA) 22/11/2013

Análisis de esquemas XML [1]

OBTENER DATOS EXTERNOS

XML Schema. Definición y validación

Datos Estadísticos y el Lenguaje XML

Curso Internet Básico - Aularagon

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

KERNEL GESTIÓN v5.2 2

SOLUCIÓN CASO PRÉSTAMOS II

XML Schema. Sergio Luján Mora.

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

CALCULAR NOTAS CON EXCEL

Plantilla de texto plano

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS

Programa Presupuestos de Sevillana de Informática.

Presentacion de Declaraciones Juradas de Retenciones de Sellos. <Cuit> </Cuit> Etiqueta de Apertura

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

MANUAL MÓDULO CECA CON RECARGOS O DESCUENTOS PARA PRESTASHOP Guía Básica

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento

Hoja1!C4. Hoja1!$C$4. Fila

Ética en la Investigación con seres humanos. Mod. 3 UD4: La investigación con datos personales

RECUPERAR DATOS DE UN FORMULARIO HTML USANDO PHP. USO DE $_GET. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00833B)

XML Namespaces. Sergio Luján Mora.

Manual para la utilización de PrestaShop

Creación de documentos XML

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Para aquellos que tengan conocimientos de Access es lo más parecido a una consulta de referencias cruzadas, pero con más interactividad.

ESOFT 3 Nice Screen Scraper: A simple scraper

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

CIERRE EJERCICIO CON BECONTA

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Pista: utilizar el elemento choice.

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

- Access es un gestor de bases de datos relacionales gráfico e interactivo.

Norma ISO 9001:2015. Cuáles son los cambios presentados en la actualización de la Norma?

Trabajo Practico Tema: XML

Comerciales. Comisiones en Documentos de Venta WhitePaper Enero de 2008

Base de datos en Access

La Gestión Operativa: La Clave del Éxito.

El proceso de edición digital en Artelope y CTCE

COLEGIO APUNTES ACCESS

Módulo II - PowerPoint

Práctica 4 Manejo avanzado de Bison

Fundamentos de las tecnologías de la información

Software para Seguimiento de Clientes. Descripción del Producto

La ventana de Microsoft Excel

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

ESQUEMAS INTRODUCCION A LA VALIDACIÓN DE DOCUMENTOS MEDIANTE ESQUEMAS. 7.3 Partes importantes de los esquemas Repeticiones de elementos

Sistema de etiquetas Manual de uso

BASE DE DATOS DE ENTIDADES CON EXPERIENCIA EN LA REALIZACIÓN DE ESTUDIOS DE ANALISIS Y DETECCION DE NECESIDADES EN EMPRESAS ( ENTIDADES EADN )

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

Operaciones con polinomios

INSTRUCCIONES ALBARANES XML

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones

El registro de una Organización de Productores Agrarios en el Sistema en Línea tiene los objetivos siguientes:

pacientes Cuidar al cuidador Junio Número 17

Base de datos en la Enseñanza. Open Office

UN PROBLEMA CON INTERÉS Y CALCULADORA

Modulo 1 El lenguaje Java

La elección de Blogger como la plataforma o lugar donde

Creación de una entidad

Guía Ceconta Cloud Ceginfor S.L.

Manual de OpenOffice Impress

MANUAL DE USUARIO UTILIZACIÓN DE LA EXTRANET

understanding documents Digitalización y Captura Inteligente de Documentos

PROBLEMAS RESUELTOS DE TEORÍA DE COLAS. (M/M/1: Un servidor con llegadas de Poisson y tiempos de servicio Exponenciales)

MICROSOFT EXCEL Introducción: Qué es y para qué sirve Excel2007? TECNOLOGIA/ INFORMATICA: MS-EXCEL

TEMA 1 INTRODUCCIÓN A OPENOFFICE IMPRESS

Qué requisitos deben cumplir los albaranes o notas de entrega?

Bienvenidos a esta guía la cual pretende ilustrar la manera de utilizar este programa

INSTRUCCIONES BÁSICAS DE ACCESO AL PORTAL DEL CLIENTE

PROYECTO: CONSTRUIMOS NUESTRO ABECEDARIO

Centros administrativos en factura electrónica (DIR3)

INYECCIóN DE CóDIGO EN APLICACIONES PHP. Autor: Iñaki Rodriguez (2005)

Unidad 3 Direccionamiento IP (Subnetting)

MÓDULO 3 HERRAMIENTAS EN LA NUBE: ANFIX

Documentación del Terminal

Programación Lineal. Ficha para enseñar a utilizar el Solver de EXCEL en la resolución de problemas de Programación Lineal

SMS PUSH SMS ENCUESTAS INTERNET FAX

Evítese las prisas de última hora. Le explicamos, paso a paso, cómo pagar la nómina de sus empleados a través de Internet. Septiembre de 2003

El inventario preciso de todos los recursos técnicos. Todas sus características serán almacenados en una base de datos.

LAS BARRAS. La barra de acceso rápido

Nivel Básico I Prof. Mariano Correa

Transformación de documentos XML con

Transcripción:

Supongamos que tenemos una tienda de pinturas, en la cual, mediante un software nos vamos en cargar de almacenar (sin valernos de un gestor de base datos) la información referente a los pedidos que se realizan desde la misma a los distintos proveedores que nos proporcionan los distintos tipos de pinturas. Vamos a utilizar como medio de almacenamiento un sistema de ficheros, de manera que vamos a definir el formato de los mismos mediante XML. Para la definición del contenido de los ficheros vamos a trabajar teniendo en cuenta las siguientes consideraciones: Cada pintura viene determinada por la marca (dupont, tintanlux, bruguer, etc.) además del color (magenta, bermellón, etc.). El pedido en sí viene identificado por el proveedor y la pintura de que se trate, además de la fecha y hora en que se realizo dicho pedido, también para cada pedido se almacenará la cantidad de pintura demandada. Del proveedor almacenamos el CIF (código de identificación fiscal) que es su identificativo, junto con su nombre, domicilio y teléfono/s. En primer lugar vamos a desarrollar la DTD ( Document Type Definition ) mediante la cual vamos a definir la forma que van a tener los documentos XML : En primer lugar indicamos por medio de este encabezado la versión de XML a utilizar, en este caso la 1.0, para posteriormente expresar el tipo de codificación del documento, asunto importante si se trata una lengua con características especiales como sería el caso del japones; para la utilización del lenguaje español podemos emplear bien ISO 8859 1 o UTF 8. El elemento raíz desde el empezamos a definir los pedidos se llama peticiones. En este supuesto el almacenamiento no se limita solo a un pedido, por tanto indicamos que pedidos debe aparecer una o más veces por medio del carácter + ; de no indicar esta condición en la definición del elemento peticiones no podremos incluir dentro del documento XML relacionado más de un elemento pedidos. <!ELEMENT peticiones (pedidos)+> En la siguiente línea definimos el elemento pedidos, el cual esta compuesto a su vez cuatro elementos fecha, cantidad, pintura y proveedor; cada uno de estos elementos bien dados en el enunciado del caso que estamos analizando, especificando que el elemento pedidos debe contener un elemento fecha, a continuación otro cantidad, En el caso de que tenga varios subelementos como contenido, se habla de secuencia, que además determina el orden en que aparecen éstos, presentándolo siempre separados por comas. <!ELEMENT pedidos (fecha, cantidad, pintura, proveedor)> Juan Manuel Alcázar Donaire 1/8

La especificación del elemento fecha, esta compuesta tres cuatro elementos dia, mes, año y hora. <!ELEMENT fecha (dia, mes, año, hora)> <!ELEMENT dia (#PCDATA)> <!ELEMENT mes (#PCDATA)> <!ELEMENT año (#PCDATA)> <!ELEMENT hora (#PCDATA)> Para la especificación del elemento cantidad indico que el contenido de este elemento es de tipo #PCDATA ósea un dato directamente tenido en cuenta por la aplicación que analice el documento XML. <!ELEMENT cantidad (#PCDATA)> Para el elemento pintura tomo para su definición los subelementos marca y color. <!ELEMENT pintura (marca, color)> <!ELEMENT marca (#PCDATA)> <!ELEMENT color (#PCDATA)> A la hora de incluir en el DTD el elemento proveedor, indico que el subelemento TLF puede aparecer mas de una vez.. <!ELEMENT proveedor (cif, domicilio, nombre, TLF+)> <!ELEMENT cif (#PCDATA)> <!ELEMENT TLF (#PCDATA)> <!ELEMENT nombre (#PCDATA)> En el elemento domicilio el subelemento AvoCalle lo utilizo para dar la posibilidad de indicar el tipo de vía a la que se refiere el domicilio. <!ELEMENT domicilio (AvoCalle, numero, CP)> <!ELEMENT AvoCalle (#PCDATA)> <!ELEMENT numero (#PCDATA)> <!ELEMENT CP (#PCDATA)> La forma como se puede organizar un documento que describa una DTD es bastante libre, aunque sea conveniente seguir el mismo orden con el que van a presentar los objetos en el documento XML, definido por tanto en primer lugar los objetos que aparecen primero y/o que pueden ser incluidos en otros elementos, para luego definir el resto de elementos. El DTD queda finalmente como : <!ELEMENT peticiones (pedidos)+> <!ELEMENT pedidos (fecha, cantidad, pintura, proveedor)> <!ELEMENT fecha (dia, mes, año, hora)> <!ELEMENT dia (#PCDATA)> <!ELEMENT mes (#PCDATA)> <!ELEMENT año (#PCDATA)> Juan Manuel Alcázar Donaire 2/8

<!ELEMENT hora (#PCDATA)> <!ELEMENT cantidad (#PCDATA)> <!ELEMENT pintura (marca, color)> <!ELEMENT marca (#PCDATA)> <!ELEMENT color (#PCDATA)> <!ELEMENT proveedor (cif, domicilio, nombre, TLF+)> <!ELEMENT cif (#PCDATA)> <!ELEMENT TLF (#PCDATA)> <!ELEMENT nombre (#PCDATA)> <!ELEMENT domicilio (AvoCalle, numero, CP)> <!ELEMENT AvoCalle (#PCDATA)> <!ELEMENT numero (#PCDATA)> <!ELEMENT CP (#PCDATA)> Supongamos que quiero llegar a concretar el tipo de vía, dejando solo como posibles valores Avenida o calle. Para ello cambiaré la siguiente línea : <!ELEMENT AvoCalle (#PCDATA)> <!ELEMENT domicilio (AvoCalle, numero, CP)> Por <!ELEMENT domicilio (tipodevia, numero, CP)> <!ELEMENT tipodevia (Avenida Calle)> <!ELEMENT Avenida (#PCDATA)> <!ELEMENT Calle (#PCDATA)> O también podríamos poner : <!ELEMENT domicilio ((Avenida Calle), numero, CP)> Como ejemplo para la utilización de atributos vamos a dar la opción de indicar el formato para expresar la hora, así, puede ser en formato 12 o 24 horas, y toma como valor por defecto 24. <!ELEMENT hora (#PCDATA)> <!ATTLIST hora tipo (12 24) "24" > Después de esto en un fichero XML bien formado a partir de este DTD tendríamos que colocar : <hora tipo="12">22:00</hora> Donde como puede observar el atributo tipo forma parte de la etiqueta hora. Tener en cuenta que tipo es un ejemplo de metadato puesto que no es la información en sí. Juan Manuel Alcázar Donaire 3/8

En un DTD tenemos la posibilidad de declarar entidades, este caso vamos a declarar dos entidades de tipo interno : <!ENTITY DOCEFORMATO12 "12:00"> <!ENTITY DOCEFORMATO24 "24:00"> Que nos permiten en el documento XML hacer cosas como : <hora tipo="12" >DOCEFORMATO12 </hora> Que equivale a : <hora tipo="12" >12:00</hora> Las anotaciones nos permiten pasar información a la aplicación que este realizando el análisis del fichero XML, esta información puede ser una simple clave ( como gif ), un URL, o cualquier otro tipo de descripción; en este caso se va a aplicar sobre una entidad, aunque también es posible aplicar una anotación sobre atributos. <!ELEMENT cantidad (#PCDATA)> <!NOTATION cantidad SYSTEM "kilos"> En concreto lo que tratamos de indicar en este caso a la aplicación que recoja los datos del fichero XML es que la cantidad estará expresada en kilogramos. Con todo esto un documento XML válido para la DTD expuesta podría ser el siguiente : <!DOCTYPE peticiones SYSTEM "C:\Archivos de programa\altova\xml Spy Suite\Examples\pinturas.dtd"> <peticiones> <dia>02</dia> <hora tipo="12" >22:00</hora> <marca>titanlux</marca> <color>magenta</color> <proveedor> <cif>2900967</cif> <Calle>Juan XXII</Calle> <CP>29009</CP> Juan Manuel Alcázar Donaire 4/8

<nombre>benitez</nombre> <! comienza otro pedido > <dia>05</dia> <hora tipo="24">20:00</hora> <marca>dupon</marca> <color>verde</color> <proveedor> <cif>2903967</cif> <Avenida>Juan XXII</Avenida> <CP>29004</CP> <nombre>alvarez</nombre> <TLF>950227943</TLF> </peticiones> Supongamos que queremos especificar en nuestra DTD que el CIF de cada proveedor debe ser único, y además de que sea obligatorio introducirlo. Para ello podemos utilizar las posibilidades que nos dan los atributos los cuales permiten añadir información sencilla y desestructurada a los elementos de un documento; puesto que puede existir más de un atributo por elemento, se utiliza una lista para ello en la llamada declaración de lista de atributos (ATTLIST). En concreto cambiaremos las líneas : <!ELEMENT proveedor (cif, domicilio, nombre, TLF+)> <!ELEMENT cif (#PCDATA)> por las siguientes : <!ELEMENT proveedor (domicilio, nombre, TLF+)> <!ATTLIST proveedor cif ID #REQUIRED> Aquí hemos añadido el cif del proveedor como atributo al elemento proveedor, siendo este atributo de tipo ID lo que quiere decir que debe ser único, a continuación aparece Juan Manuel Alcázar Donaire 5/8

#REQUIRED que significa que no tiene valor por defecto, por lo que es obligatorio especificar este atributo. Pero si realizamos el siguiente fichero XML : <!DOCTYPE peticiones SYSTEM "C:\Archivos de programa\altova\xml Spy Suite\Examples\pinturas.dtd"> <peticiones> <dia>02</dia> <hora tipo="12">22:00</hora> <marca>titanlux</marca> <color>magenta</color> <proveedor cif="2900967"> <Calle>Juan XXII</Calle> <CP>29009</CP> <nombre>benitez</nombre> <! comienza otro pedido > <dia>05</dia> <hora tipo="24">20:00</hora> <marca>dupon</marca> <color>verde</color> <proveedor cif="2903967"> <Avenida>Juan XXII</Avenida> <CP>29004</CP> <nombre>alvarez</nombre> <TLF>950227943</TLF> </peticiones> Juan Manuel Alcázar Donaire 6/8

Y lo intentamos validar anda la nueva DTD, observaremos el siguiente error : This file is not valid Invalid value for datatype ID in attribute cif Que quiere decir que el tipo de datos del valor dado al atributo cif no es el adecuado para ello; y porque no es el adecuado?, por que solo emplea numeros y para que sea válido debe empezar por una letra, así que podríamos por ejemplo la letra del cif al principio del valor, quedando finalmente así : <!DOCTYPE peticiones SYSTEM "C:\Archivos de programa\altova\xml Spy Suite\Examples\pinturas.dtd"> <peticiones> <dia>02</dia> <hora tipo="12">22:00</hora> <marca>titanlux</marca> <color>magenta</color> <proveedor cif="j897645"> <Calle>Juan XXII</Calle> <CP>29009</CP> <nombre>benitez</nombre> <! comienza otro pedido > <dia>05</dia> <hora tipo="24">20:00</hora> <marca>dupon</marca> <color>verde</color> <proveedor cif="h22589"> <Avenida>Juan XXII</Avenida> <CP>29004</CP> Juan Manuel Alcázar Donaire 7/8

<nombre>alvarez</nombre> <TLF>950227943</TLF> </peticiones> Junto a las prácticas del tema 2 podréis encontrar más ejemplos sobre la especificación de DTD con atributos y entidades. Juan Manuel Alcázar Donaire 8/8