Servicios Telemáticos Avanzados. 4.- Representación de datos: XML y JSON

Documentos relacionados
Servicios Telemáticos Avanzados. 7.- Capa de Negocio en Java EE. OpenCourseWare 2014

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

LENGUAJES DE PROGRAMACIÓN 4 MÓDULOS. 56 Horas

Librerías JavaScript Processing.js

Javascript parte II: AJAX

Aprender a desarrollar con JavaScript

DESARROLLO WEB EN ENTORNO CLIENTE

JavaScript,, AJAX y otras tecnologías web. Área de Ingeniería Telemática

JavaScript: Introducción

CEFIRE: Curso Administración de APACHE

4.5 APIs Java y Java EE para Servicios Web

Plataforma de Contratación del Sector Público

WSDL (Web Service Defini/on Language)

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Curso de Ajax con Java. Manual del alumno

DWR: Easy Ajax for Java

Tutorial de enlace entre Formulario Web y Servicio Web REST. Programación en Internet

ESOFT 3 Nice Screen Scraper: A simple scraper

API de búsqueda (LFASparql)

Fundamentos de las tecnologías de la información

Desarrollo de Aplicaciones Web con AJAX Huibert Aalbers Senior Certified Software IT Architect

Curso ONLINE de Javascript, jquery y Angular2_. Duración: 50 sesiones aprox. (150 horas lectivas)

Introducción a JSF con NetBeans

Java EE JavaServer Pages (JSP)

Presentación y objetivos

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

Parte III: AJAX y REST

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE

Extensiones. Guillermo López Mozilla Hispano

DESARROLLO WEB EN ENTORNO CLIENTE

4. CODIFICACIÓN. Previo a la codificación además de instalar las respectivas herramientas es. importante tenerlas bien configuradas.

XHTML DINAMICO AVANZADO (AJAX Y DOM)

Capítulo IV. Implementación.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

AJAX. Desarrollo de Aplicaciones Distribuidas

Control de Producto No Conforme

Tipos de documentos XML

TEMA 7. Contenido

Tema 3: Diseño de la capa de presentación

Curso JAVA EE

Clase 4. Ajax XML. XML Ajax definición Breve explicación de como funciona el HTTP XMLHttpRequest. El XML se creó para que cumpliera varios objetivos.

Introducción a las aplicaciones WEB

Servicios Telemáticos Avanzados 1.- ADMINISTRACIÓN DE SERVIDORES

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

PASO 1: Creamos un nuevo proyecto en NetBeans. Nos vamos a File y pulsamos sobre New Project

Node.JS Raspberry Pi (RPi) 2015/05/08 Juan V. Capella

Bloque3: Parte servidora (backend)

Elementos léxicos del lenguaje de programación Java

Java Servlets. Luis Fernando Llana Díaz. 17 de abril de Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Documentos HTML. Introducción. Elementos. Atributos de elemento

XML: HTML y XHTML. Sergio Luján Mora XML-03

django el curso Día 5 Parte 2

ATLAS MANUAL DE USUARIO SERVICIO DE FUSIÓN

Algunos ejercicios de Ampliación de Cálculo

Construir RIA usando Flex. Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A.

escuela técnica superior de ingeniería informática

QUÉ ES Y PARA QUÉ SIRVE AJAX? JAVASCRIPT ASÍNCRONO, XML Y JSON. VENTAJAS E INCONVENIENTES DE AJAX. XMLHTTPREQUEST. EJEMPLO.

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

XML práctico Bases esenciales, conceptos y casos prácticos (2ª edición)

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Mono: la nueva plataforma de desarrollo Open Source

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

WEB SERVICES TUTORIAL. Tutorial completo para poder crear y utilizar Web Services con las configuraciones más usadas de forma profesional.

Universidad de Chile - Magister Artes Mediales ARTE / INTERNET. Clase 4: HTML

Programación Hipermedia I

Scripting en el cliente: Javascript. Tecnologías Web

PHP 7 Desarrollar un sitio web dinámico e interactivo

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

Cracterísticas de las aplicaciones Web convencionales

La biblia de HTML Francisco Charte Ojeda

Agenda XML XML XML XML XML. 1.1 Conceptos básicos de XML. 1.2 Ejemplos de lenguajes basados en XML. 1.3 Estructura de un documento XML

Servicios Web: Concepto

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

AJAX. Asynchronous JavaScript And Xml

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Tutorial Servicios Web

Curso de JavaScript y DOM Scripting para Desarrollo Web

Web Service: Consulta de Sistema de Turnos Manual de referencia

extensible Markup Language

SWITCH JAVASCRIPT. SELECCIÓN ENTRE ALTERNATIVAS. DIAGRAMA DE FLUJO Y EJEMPLO DE APLICACIÓN. (CU01120E)

Introducción a los servicios web 2012 Marcelino Rodríguez Suárez Un servicio web publica su descripción en un documento XML en

GALA. Servicios WEB. Curso ASP.NET Desarrollo de Sitios y Servicios Web con Visual Basic 2010, 24 h. L25. Servicios Web en Integración

Introducción al desarrollo web (idesweb) - 3 a ed.

JavaScript como Orientación a Objetos

Tema 3, parte 4. Javascript: el DOM (Modelo de Objetos del. Documento) Texto.

JavaScript III. JavaScript, la POO y el DOM

Arquitectura del Software

INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 14 de SEPTIEMBRE de 2006

HTML 5. Que es HTML5 07/04/2011

FORMACIÓN ESPECIALIZADA EN HERRAMIENTAS Y LENGUAJES DE PROGRAMACIÓN WEB

INGENIERÍA del SOFTWARE Curso 2004/05. Tema 2: Arquitecturas Software de varios niveles en Java. Introducción a los Servicios Web

Introducción a ASP.NET

Ejercicios de AJAX y REST

Índice. Fundamentos de Desarrollo de Aplicaciones Web en J2EE. JavaScript básico. Qué es JavaScript? Para qué es bueno JavaScript?

Prototipo de visualización de técnicas de diseño de algoritmos

Especificación para la documentación del código fuente en PHP de los proyectos de la FDQ.

Taller de Sistemas de Información 2

DOM. Document Object Model

Transcripción:

Servicios Telemáticos Avanzados 4.- Representación de datos: XML y JSON OpenCourseWare 2014 Maider Huarte y Gorka Prieto Escuela Técnica Superior de Ingeniería de Bilbao Departamento de Ingeniería de Comunicaciones Universidad del País Vasco (UPV/EHU)

Servicios Telemáticos Avanzados: 4.- XML y JSON.odp Copyright 2014 Maider Huarte Arrayago, Gorka Prieto Agujeta Servicios Telemáticos Avanzados: 4.- XML y JSON.odp lana, Maider Huartek eta Gorka Prietok egina, Creative Commons-en Atribution-NonCommercial-Share Alike 4.0 International License baimenaren menpe dago. Baimen horren kopia bat ikusteko, http://creativecommons.org/licenses/by-nc-sa/4.0/ webgunea bisitatu edo gutun bat bidali ondoko helbidera: Creative Commons, 171 2nd Street, Suite 300, San Francisco, California, 94105, USA. Servicios Telemáticos Avanzados: 4.- XML y JSON.odp by Maider Huarte and Gorka Prieto is licensed under a Creative Commons Atribution-NonCommercial-Share Alike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ or, send a letter to Creative Commons, 171 2nd Street, Suite 300, San Francisco, California, 94105, USA.

XML y JSON ÍNDICE 1.- Introducción 2.- XML 2.1.- Introducción 2.2.- Sintaxis 2.3.- Validación 2.4.- JAXB 3.- JSON 3.1.- Introducción 3.2.- Sintaxis 3.3.- AJAX Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 3/26

1.- Introducción Transporte de datos entre aplicaciones HTTP - HTML - XML - JSON Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 4/26

2.1.- Introducción Qué es XML? Extensión de ficheros: Tipo MIME: Ejemplos de utilización Server-Side Scripting Client-Side Scripting: AJAX Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 5/26

2.1.- Introducción Tecnologías basadas en XML xhtml: - Utilizado en JavaEE - Versión más estricta de html, basada en xml XSD: xml Schema, alternativa a DTD SOAP WSDL... Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 6/26

2.2.- Sintaxis Documentos xml Texto simple Declaración xml Elementos estructurados: etiquetas - No etiquetas predefinidas Definición libre de etiquetas Definición libre de estructura Ejemplo XML Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 7/26

2.2.- Sintaxis Sintaxis xml Comentarios: <!-- comentario de varias lineas --> Etiquetas: apertura y cierre - Declaración xml - Nombres Anidamiento Elemento raíz Atributos de elementos: nombre= valor Ejemplo XML Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 8/26

2.2.- Sintaxis Sintaxis xml Caracteres especiales Carácter Sustitución Razón < < Delimitación de etiquetas > > Delimitación de etiquetas " Valores de atributos ' &apos; Valores de atributos & & Sustitución de caracteres conflictivos Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 9/26

2.2.- Sintaxis Ejemplos: Ficheros xml básicos <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sesion SYSTEM "Sesion.dtd"> <sesion idsesion="1" idusuario="25"> <operacion> <op1>12</op1> <op>-</op> <op2>2</op2> <res>10</res> </operacion> <operacion> <op1>34</op1> <op>+</op> <op2>5</op2> <res>39</res> </operacion> </sesion> SesionMatematicas1.java <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sesion SYSTEM "froga3.dtd"> <sesion> <idsesion>1</idsesion> <idusuario>25</idusuario> <operacion> <op1>12</op1> <op>-</op> <op2>2</op2> <res>10</res> </operacion> <operacion> <op1>34</op1> <op>+</op> <op2>5</op2> <res>39</res> </operacion> </sesion> SesionMatematicas2.java Volver a 6 Volver a 7 Volver a 10 Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 10/26

2.2.- Sintaxis Nomenclatura de etiquetas Letras, números, etc Números, caracteres de puntuación Espacios xml, Xml, etc Recomendaciones para nomenclatura Nombres descriptivos: '_' Cortos y simples No utilizar: No utilizar: Ejemplo XML Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 11/26

2.2.- Sintaxis Texto interno vs atributos Varios valores Valores estructurados Extensible Identificación de elementos Combinación XML y DOM Elemento raíz: árbol Hijos, padres Hermanos <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sesion SYSTEM "Sesion.dtd"> <sesion idsesion="1" idusuario="25"> <operacion> <op1>12</op1> <op>-</op> <op2>2</op2> <res>10</res> </operacion> <operacion> <op1>34</op1> <op>+</op> <op2>5</op2> <res>39</res> </operacion> </sesion> SesionMatematicas1.java idusuario operacion op1 op op2 res sesion idsesion operacion op1 op op2 res 12-2 10 34 + 5 39 Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 12/26

2.2.- Sintaxis XML Namespaces Conflictos de nomenclatura Declaración: xmlns[:prefijo]= URL - Prefijos - URL Ubicación de declaraciones xmlns - - Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 13/26

2.2.- Sintaxis Ejemplo: NameSpaces <root xmlns:h="http://www.w3.org/tr/html4/" xmlns:f="http://www.w3schools.com/furniture"> <h:table> <h:tr> <h:td>manzanas</h:td> <h:td>peras</h:td> </h:tr> </h:table> <f:table> <f:name>mesa de cocina</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root> EjemploTable.xml <table xmlns="http://www.w3.org/tr/html4/"> <tr> <td>manzanas</td> <td>peras</td> </tr> </table> Tabla.xml <table xmlns="http://www.w3schools.com/furniture"> <name>mesa de cocina</name> <width>80</width> <length>120</length> </table> Mesa.xml Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 14/26

2.3.- Validación Bien formado vs válido Bien formado Válido - Patrón de validación DTD XML Schema <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sesion SYSTEM "froga3.dtd"> <sesion> <idsesion>1</idsesion> <idusuario>25</idusuario> <operacion> <op1>12</op1> <op>-</op> <op2>2</op2> <res>10</res> </operacion> <operacion> <op1>34</op1> <op>+</op> <op2>5</op2> <res>39</res> </operacion> </sesion> SesionMatematicas2.java <?xml version="1.0" encoding="utf-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi=" http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="t3-5_3" transaction-type="jta"> <jta-data-source>java:jboss/datasources/mysqlds</jta-data-source> <!-- Clases Entity --> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.mysqldialect" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence> persistence.java Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 15/26

2.4.- JAXB Java Architecture for XML Binding (JAXB) Permite mapear clases Java a XML Anotaciones+marshallers Incluido a partir de Java6 Proceso Anotar beans - @XmlRootElement, @XmlElement - Admiten nombre: @XmlElement(name= item ) Obtener contexto JAXB - JAXBContext.newInstance(Item.class) Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 16/26

2.4.- JAXB Proceso (continuación) Obtener marshallers -.createmarshaller() -.createunmarshaller() Serializar/Deserializar -.marshal(object, dest) -.unmarshal(src) Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 17/26

2.4.- JAXB @XmlRootElement public class ItemBean { private long ref; private String name; @XmlElement public long getref() { return ref; public void setref(long ref) { this.ref = ref; @XmlElement public String getname() { return name; public void setname(string name) { this.name = name; ItemBean.java Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 18/26

2.4.- JAXB @XmlRootElement public class ItemList { private List<ItemBean> items; @XmlElement(name = "item") public List<ItemBean> getitems() { return items; public void setitems(list<itembean> items) { this.items = items; public static void save( ItemList itemlist, String path ) throws IOException, JAXBException { JAXBContext jaxbcontext = JAXBContext.newInstance(ItemList.class); Marshaller jaxbmarshaller = jaxbcontext.createmarshaller(); jaxbmarshaller.setproperty(marshaller.jaxb_formatted_output, true); jaxbmarshaller.marshal(itemlist, new File(path)); ItemList.java Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 19/26

3.- JSON 3.1.- Introducción Qué es JSON? JSON vs XML Parecidos Diferencias Extensión de ficheros: Tipo MIME: Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 20/26

3.- JSON 3.2.- Sintaxis Documentos JSON: texto simple Sintaxis Datos: nombre, valor Separación entre datos: Objetos: Arrays Declaración de datos nombre : valor Valores Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 21/26

3.- JSON 3.2.- Sintaxis Ejemplo: Sintaxis JSON { "sesion" : { "idsesion" : "1", "idusuario" : "25", "operacion" : [ {"op1":"12", "op":"-", "op2":"2", "res":"10", {"op1":"34", "op":"+", "op2":"5", "res":"39" ] SesionMatematicas2.json <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sesion SYSTEM "froga3.dtd"> <sesion> <idsesion>1</idsesion> <idusuario>25</idusuario> <operacion> <op1>12</op1> <op>-</op> <op2>2</op2> <res>10</res> </operacion> <operacion> <op1>34</op1> <op>+</op> <op2>5</op2> <res>39</res> </operacion> </sesion> SesionMatematicas2.java Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 22/26

3.- JSON 3.2.- Sintaxis http://www.json.org/ Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 23/26

3.- JSON 3.3.- AJAX AJAX Asynchronous JavaScript And XML Cambiar visualización de página - - Objeto XMLHttpRequest - open(method,url,async), send(), send( ),.responsetext Procesar código JSON de la respuesta - eval( código_json ) - JSON.parse( código_json ) Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 24/26

3.- JSON 3.3.- AJAX Ejemplo: JSON+AJAX <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>coordenadas</title> <script> function obtenercoordenadas() { dir=document.getelementbyid("direccion").value; dirsinespacios=sustituirespacios(dir); Coordenadas.html if (window.xmlhttprequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("get","http://maps.googleapis.com/maps/api/geocode/json?address="+dirsinespacios+"&sensor=false",false); xmlhttp.send(); jsonrespuesta=xmlhttp.responsetext; var jso=eval("("+jsonrespuesta+")"); document.getelementbyid("latitud").innerhtml=""+jso.results[0].geometry.location.lat; document.getelementbyid("longitud").innerhtml=""+jso.results[0].geometry.location.lng; <!-- RESTO DE LINEAS EN LA PÁGINA SIGUIENTE --> Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 25/26

3.- JSON 3.3.- AJAX Ejemplo: JSON+AJAX <!-- RESTO DE LINEAS EN LA PÁGINA ANTERIOR --> function sustituirespacios(direccion) { palabras=direccion.split(" "); l=palabras.length; sinespacios=palabras[0]; for(i=1;i<l;i++) sinespacios+="+"+palabras[i]; Coordenadas.html return sinespacios; </script> <script> </script> </head> <body> <h1>aplicación PARA OBTENER COORDENADAS</h1> <b>latitud:</b><label id="latitud"></label><br> <b>longitud:</b><label id="longitud"></label><br> <input id="direccion"> <button onclick="obtenercoordenadas();">obtener Coordenadas</button> </body> </html> Maider Huarte Arrayago, Gorka Prieto Agujeta STA: 4.- REPRESENTACIÓN DE DATOS 26/26