2.2 Parsing de documentos XML

Tamaño: px
Comenzar la demostración a partir de la página:

Download "2.2 Parsing de documentos XML"

Transcripción

1 2.2 Parsing de documentos XML

2 Introducción (1) Un documento XML se apoya en dos ideas [Obligatoria] Tiene que estar bien formado, y en consecuencia, estar construido en base a las normas de XML (los tags se abren y cierran, los tags se anidan de manera jerárquica, los atributos tienen que ir entrecomillados, etc.) [Opcional] El conjunto de elementos y atributos, y sus restricciones, pueden estar descritas formalmente en algún tipo de esquema (esquema XML, DTD, etc.) de manera que se pueda comprobar que el documento es válido Consecuencias Es posible construir parsers genéricos que comprueban que el documento (1) está bien formado, y si se desea, (2) es válido Existen parsers para los lenguajes más usuales En un lenguaje orientado a objetos, un parser XML es una librería de clases

3 Tipos de parsers Parsers tipo DOM Parsers tipo streaming Introducción (2) Parsers tipo DOM (Document Object Model) Construyen un árbol en memoria equivalente al documento XML (pueden hacerlo, dado que la sintaxis de XML sigue un modelo jerárquico) Ventajas Sencillos de utilizar: para acceder a la información del documento, basta recorrer el árbol Suelen permitir modificar/crear un árbol y generar XML a partir de él Desventajas Consumo de memoria alto en aplicaciones servidoras que reciben muchas peticiones que involucran parsear/generar documentos XML grandes (normalmente las aplicaciones servidoras sirven cada petición en un thread)

4 Introducción (y 3) Parsers tipo streaming No construyen un árbol en memoria, sino que procesan secuencialmente el documento en bloques Ventajas Mínimo consumo de memoria Especialmente útiles en las situaciones en las que los parsers de tipo DOM son prohibitivos Desventajas No todos tienen soporte para generar XML Más difíciles de usar que los parsers de tipo DOM

5 Caso de estudio: parsers Java (1) SAX (Simple API for XML) Parser tipo streaming Forma parte de Java SE (Standard Edition) API: familia de paquetes org.xml.sax Es un pequeño framework basado en eventos El programador proporciona uno o varios objetos callback a los que el parser llamará cada vez que ocurra un evento de interés (apertura de un tag, cierre de un tag, un error, etc.) Dentro de los parsers de tipo streaming es de tipo push El parser envía eventos al código escrito por el desarrollador No tiene soporte para generación de XML Disponible también para otros lenguajes

6 Caso de estudio: parsers Java (2) StAX (Streaming API for XML) Parser tipo streaming Forma parte de Java EE (Enterprise Edition) API: familia de paquetes javax.xml.stream Dentro de los parsers de tipo streaming es de tipo pull El desarrollador utiliza el API del parser para pedir los datos Tiene soporte para generación de XML DOM (Document Object Model) Parser tipo DOM El API está estandarizada por el W3C ( => disponible para varios lenguajes Forma parte de Java SE API: familia de paquetes org.w3c.dom Tiene soporte para generación de XML

7 Caso de estudio: parsers Java (3) DOM: tipos principales de nodos Paquete org.w3c.dom <<interface>> Document <<interface>> Comment <<interface>> Node <<interface>> CharacterData <<interface>> Element <<interface>> <<interface>> CDATASection 0..n <<interface>> NodeList <<interface>> Attr Representa un atributo de un elemento. Es un subtipo de Node, sin embargo, no es un nodo del árbol (los atributos de un elemento forman parte de su objeto Element)

8 Caso de estudio: parsers Java (4) DOM. Ejemplo: representación DOM de Movies.xml (apartado 2.1) (EBI) Document Element (movies) (EBI) Flechas verticales: hijos Flechas horizontales: hermanos EBI: Espacio en Blanco Ignorable (EBI) Comment (EBI) Element (movie) [La Maldición...] (EBI) Comment (EBI) Element (movie) [Amelie] (EBI) (EBI) Element (identifier) (EBI)... (EBI) Element (releasedate)... synopsis (EBI)...

9 Caso de estudio: parsers Java (5) JAXP (Java API for XML Processing) API: familia de paquetes javax.xml.parsers y javax.xml.transform Forma parte de Java SE El API Java de los parsers SAX y DOM viene definida por interfaces estándar JAXP proporciona, entre otras cosas, dos factorías abstractas (patrón Factory ), para poder crear instancias de parsers DOM y SAX Este mecanismo permite enchufar en Java SE cualquier parser SAX y DOM que implemente los interfaces Existen diversas implementaciones de parsers SAX y DOM que implementan los interfaces estándar Cualquier implementación de Java SE proporciona una implementación por defecto de los parsers SAX y DOM El código que escribe el desarrollador no depende del parser concreto que se utilice (porque trabaja contra los interfaces estándar de los parsers) NOTA: El API de StAX también viene definida por interfaces, y el propio API de StAX proporciona mecanismos para trabajar con un parser concreto

10 Caso de estudio: parsers Java (6) JDOM y DOM4J Alternativas famosas a DOM Open Source JDOM: DOM4J: Utilizan un modelo similar a DOM Tienen soporte para generación de XML Pensados para el lenguaje Java y más fáciles de usar que el API de DOM El API de DOM es demasiado tediosa de usar porque es de muy bajo nivel (no automatiza aspectos comunes) No está acoplada con el lenguaje Java (e.g. no utiliza java.util.list, sino que dispone de sus propias listas) Especialmente más fáciles que DOM cuando se trabaja con documentos orientados a datos, que es nuestro caso Utilizaremos JDOM

11 Caso de estudio: parsers Java (y 7) JAXB (Java Architecture for XML Binding) Forma parte de Java EE (Enterprise Edition) API: familia de paquetes javax.xml.bind Como siempre, un conjunto de interfaces Existen múltiples implementaciones, algunas Open Source Parsing y generación de XML automático A partir de un esquema XML, genera clases Java equivalentes a las estructuras definidas en el esquema A partir de un documento XML, crea automáticamente instancias de las clases generadas, que contienen los datos del documento A partir de instancias de las clases generadas, permite generar un documento XML Solución más sencilla que el uso de un parser de más bajo nivel, aunque quizás menos flexible cuando se utiliza un enfoque REST (apartado 3.3) En los apartados 3.4 y 3.5 (SOAP), indirectamente, utilizaremos una solución parecida a JAXB

12 JDOM (1) Tres paquetes principales para parsing/generación de XML org.jdom Clases que modelan los distintos tipos de nodos (parecido al API de DOM, pero más amigable ) de un árbol JDOM org.jdom.input Clases para construir un árbol JDOM en memoria a partir de un documento XML org.jdom.output Clases para generar un documento XML a partir de un árbol JDOM Internamente JDOM utiliza el API de SAX y/o DOM mediante JAXP

13 JDOM (2) Ilustraremos el API básica de JDOM tomando como ejemplo parte de la clase MovieXMLConversor Pertenece al subsistema Movies de los ejemplos de la asignatura (los proporcionaremos en clase de prácticas). Forma parte de los casos de estudio de los apartados 3.3 (REST) y 3.5 (SOAP) Dispone de métodos para convertir instancias de MovieInformationTO a XML, y viceversa. En particular, estudiaremos la implementación de dos métodos tomovieinformation(java.io.inputstream) : MovieInformationTO Recibe un documento XML que tiene la información de una película y crea un objeto MovieInformationTO con la misma información toxml(movieinformationto, java.io.outputstream) Recibe un objeto MovieInformationTO y genera un documento XML con la misma información

14 JDOM (3) MovieInformationTO - identifier : Long - title : String - runtime : short - releasedate : Calendar - directornames : List<String> - actornames : List<String> - genres : List<Genre> - synopsis : String El tipo Genre está declarado dentro de MovieInformationTO: public enum Genre { COM, DRA, HOR, ROM, SFI, THR}; + Constructor + Métodos get/set MovieXMLConversor + tomovieinformation(in : InputStream) : MovieInformationTO + toxml(movieinformation : MovieInformationTO, out : OutputStream) : void

15 JDOM (4) Ejemplo de un documento XML con la información de una película Elemento identifier es opcional <?xml version="1.0" encoding="utf-8"?> <!-- Amelie. --> <movie xmlns=" xmlns:xsi=" xsi:schemalocation=" Movies.xsd"> <title>amelie</title> <runtime>120</runtime> <releasedate day="19" month="10" year="2001"/> <director>jean-pierre Jeunet</director> <actor>audrey Tautou</actor>... <actor>dominique Pinon</actor> <genre>com</genre> <genre>rom</genre> <synopsis> Amelie no es una chica como las demás. Ha visto a su pez de colores deslizarse hacia las alcantarillas... </synopsis> </movie>

16 JDOM (5) Visión global de org.jdom: principales tipos de nodos y métodos Content 0..n Comment Attribute + métodos getxxxvalue() : XXX + getvalue() : String 0..n Element Document + Document(rootElement : Element) + getcontent() : List + getrootelement() : Element + Element(name : String [, ns : Namespace]) + addcontent(child : Content) : Element + addcontent(collection : Collection) : Element + getattribute(name : String [, ns : Namespace]) : Attribute + getattributevalue(name : String [, ns : Namespace]) : String + getchild(name : String [, ns : Namespace]) : Element + getchildren(name : String [, ns : Namespace]) : List + getchildnormalize(name : String [, ns : Namespace]) : String + getchildtrim(name : String [, ns : Namespace]) : String + getnormalize() : String + gettrim() : String + setattribute(name : String, value : String [, ns : Namespace]) + set(text : String)

17 JDOM (6) Representación JDOM del documento XML de ejemplo Document Comment Element (movie) (EBI) Element (title) (EBI)... (EBI) Element (releasedate)... synopsis (EBI) Flechas verticales: hijos EBI: Espacio en Blanco Ignorable

18 JDOM (7) Document Constructor Document(Element rootelement) Crea un documento con ese elemento raíz Método List getcontent() Devuelve la lista de hijos del documento Método Element getrootelement() Devuelve el elemento raíz del documento Ejemplo: Element movieelement = document.getrootelement(); Element Hay dos versiones de cada uno de los métodos que muestra el diagrama UML con la notación [, Namespace ns] Versión con parámetro name y ns: cuando es necesario especificar el espacio de nombres (aunque sea el espacio de nombres por defecto) para un elemento hijo o atributo Versión con parámetro name: cuando no hay que especificar espacio de nombres para un elemento hijo o atributo A no ser que se indique lo contrario, los nombres de los atributos no se cualifican (e.g. recuérdese que con los esquemas XML el valor de attributeformdefault es unqualified por defecto )

19 JDOM (8) Element (cont) Constructores Element(String name [, Namespace ns]) Crea un elemento con el nombre especificado Ejemplo movieelement = new Element("movie", Namespace.getNamespace(" Método Element addcontent(content child) Añade un hijo (por el final) Devuelve this Ejemplo movieelement.addcontent(titleelement); Método Element addcontent(collection collection) Añade una colección de hijos (por el final) Devuelve this Ejemplo Collection<Element> children =... movieelement.addcontent(children);

20 JDOM (9) Element (cont) Métodos Attribute getattribute(string name [, Namespace ns]) Devuelven el objeto Attribute correspondiente al nombre de atributo especificado La clase Attribute dispone de los métodos getdoublevalue, getintvalue, getfloatvalue, getlongvalue y getvalue para obtener el valor de atributo como un número (métodos getxxxvalue) o un String (método getvalue) Ejemplo: int day = releasedateelement.getattribute("day").getintvalue(); Métodos String getattributevalue(string name [, Namespace ns]) Devuelven directamente el valor de un atributo como un String a partir de su nombre Ejemplo String dayasstring = releasedateelement.getattribute("day");

21 JDOM (10) Element (cont) Métodos Element getchild(string name [, Namespace ns]) Devuelven un elemento hijo a partir de su nombre Ejemplo Element titleelement = movieelement.getchild("title", Namespace.getNamespace(" Métodos List getchildren(string name [, Namespace ns]) Devuelven la lista de elementos hijo con el nombre especificado Ejemplo List<Element> actorelements = movieelement.getchildren("actor", Namespace.getNamespace("

22 Element (cont) JDOM (11) Métodos String getchildnormalize(string name [, Namespace ns]) Devuelve el texto normalizado contenido en el elemento especificado Se asume que ese elemento sólo tiene texto o normalizado Elimina los espacios en blanco del principio y el final Cada espacio en blanco contenido en el texto se sustituye por un blanco NOTA: espacio en blanco un blanco, un tabulador, un salto de línea o una secuencia de cualquiera de los anteriores Útil para elementos que contienen descripciones Si el documento XML fue escrito con un editor, posiblemente el autor, por legibilidad, partió la descripción en varias líneas Cuando el XML se genera automáticamente (e.g. desde un cliente o un servidor), normalmente no se incluyen espacios en blancos innecesarios antes, en medio y después del texto Los métodos getchildnormalize nos abstraen de este problema Ejemplo String synopsis = movieelement.getchildnormalize("synopsis", Namespace.getNamespace(" sypnosis contendría el resumen de la película sin blancos innecesarios y sin saltos de línea También existe String getnormalize()

23 JDOM (12) Element (cont) Métodos String getchildtrim(string name [, Namespace ns]) Devuelve el texto, sin espacios en blanco al principio y al final, contenido en el elemento especificado Se asume que ese elemento sólo tiene texto Útil para elementos que contienen datos Si el documento XML fue escrito con un editor, quizás el autor incluyó blancos antes y después Cuando el XML se genera automáticamente (e.g. desde un cliente o un servidor), normalmente no se incluyen espacios en blancos innecesarios antes y después Los métodos getchildtrim nos abstraen de este problema Ejemplo short runtime = Short.valueOf( movieelement.getchildtrim("runtime", XML_NS)); También existe String gettrim()

24 JDOM (13) Element (cont) Métodos void setattribute(string name, String value [, Namespace ns]) Da valor a un atributo Si el atributo no existía, lo añade Si el atributo ya existía, lo reemplaza por el nuevo Ejemplo int day =... releasedateelement.setattribute("day", Integer.toString(day)); Método void set(string text) Establece el texto pasado como el contenido del elemento Ejemplo String title =... titleelement.set(title);

25 En org.jdom.input JDOM (14) SAXBuilder + SAXBuilder() + build(in : InputStream) : Document El método build parsea la entrada con un parser SAX y crea el objeto Document que contiene el árbol JDOM

26 JDOM (y 15) En org.jdom.output XMLOutputter + XMLOuputter(format : Format) + output(doc : Document, out : OutputStream) Format Constructor Lo invocaremos pasándole Format.getPrettyFormat() XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()); Genera el XML en formato bonito y con codificación UTF-8 Método output Escribe el XML correspondiente al documento pasado

27 es.udc.ws.movies.xml.moviexmlconversor (1) package es.udc.ws.movies.xml; import java.io.inputstream; import java.io.outputstream; import java.util.arraylist; import java.util.calendar; import java.util.list; import org.jdom.dataconversionexception; import org.jdom.document; import org.jdom.element; import org.jdom.namespace; import org.jdom.input.saxbuilder; import org.jdom.output.format; import org.jdom.output.xmloutputter; import es.udc.ws.movies.model.genreoperations; import es.udc.ws.movies.model.movieinformationto; import es.udc.ws.util.exceptions.parsingexception;

28 es.udc.ws.movies.xml.moviexmlconversor (2) public class MovieXMLConversor { public final static Namespace XML_NS = Namespace.getNamespace(" private MovieXMLConversor() {} public final static MovieInformationTO tomovieinformation(inputstream in) throws ParsingException { } try { SAXBuilder builder = new SAXBuilder(); Document document = builder.build(in); Element movieelement = document.getrootelement(); return tomovieinformation(movieelement); } catch (Exception e) { throw new ParsingException("Error deserializing instance" + " of " + MovieInformationTO.class, e); }

29 es.udc.ws.movies.xml.moviexmlconversor (3) public final static void toxml(movieinformationto movieinformation, OutputStream out) throws ParsingException { } try { Element movieelement = toxml(movieinformation); Document document = new Document(movieElement); XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()); outputter.output(document, out); } catch (Exception e) { throw new ParsingException("Error serializing instance " + " of " + MovieInformationTO.class, e); } // Otros métodos públicos...

30 es.udc.ws.movies.xml.moviexmlconversor (4) /* Helper methods for XML to Java conversion */ private final static MovieInformationTO tomovieinformation( Element movieelement) throws DataConversionException { Element identifierelement = movieelement.getchild("identifier", XML_NS); Long identifier = null; if (identifierelement!= null) { identifier = Long.valueOf(identifierElement.getTrim()); } String title = movieelement.getchildnormalize("title", XML_NS); short runtime = Short.valueOf( movieelement.getchildtrim("runtime", XML_NS)); Calendar releasedate = getreleasedate( movieelement.getchild("releasedate", XML_NS)); List<String> directornames = getlist( movieelement.getchildren("director", XML_NS)); List<String> actornames = getlist( movieelement.getchildren("actor", XML_NS));

31 es.udc.ws.movies.xml.moviexmlconversor (5) List<String> genres = getlist( movieelement.getchildren("genre", XML_NS)); String synopsis = movieelement.getchildnormalize("synopsis", XML_NS); MovieInformationTO movieinformation = new MovieInformationTO( identifier, title, runtime, releasedate, directornames,actornames, GenreOperations.toListOfGenres(genres), synopsis); return movieinformation; }

32 es.udc.ws.movies.xml.moviexmlconversor (6) private final static Calendar getreleasedate( Element releasedateelement) throws DataConversionException { int day = releasedateelement.getattribute("day").getintvalue(); int month = releasedateelement.getattribute("month").getintvalue(); int year = releasedateelement.getattribute("year").getintvalue(); Calendar releasedate = Calendar.getInstance(); releasedate.set(calendar.day_of_month, day); releasedate.set(calendar.month, Calendar.JANUARY + month - 1); releasedate.set(calendar.year, year); } return releasedate; private final static List<String> getlist( List<Element> elementlist) { List<String> textlist = new ArrayList<String>(); } for (Element c : elementlist) { textlist.add(c.getnormalize()); } return textlist;

33 es.udc.ws.movies.xml.moviexmlconversor (7) /* Helper methods for Java to XML conversion */ public final static Element toxml( MovieInformationTO movieinformation) { Element movieelement = new Element("movie", XML_NS); if (movieinformation.getidentifier()!= null) { Element identifierelement = new Element("identifier", XML_NS); identifierelement.set( movieinformation.getidentifier().tostring()); movieelement.addcontent(identifierelement); } Element titleelement = new Element("title", XML_NS); titleelement.set(movieinformation.gettitle()); movieelement.addcontent(titleelement); Element runtimeelement = new Element("runtime", XML_NS); runtimeelement.set( Short.toString(movieInformation.getRuntime())); movieelement.addcontent(runtimeelement);

34 es.udc.ws.movies.xml.moviexmlconversor (8) Element releasedateelement = getreleasedate(movieinformation.getreleasedate()); movieelement.addcontent(releasedateelement); List<Element> directorelements = getelementlist( "director", XML_NS, movieinformation.getdirectornames()); movieelement.addcontent(directorelements); List<Element> actorelements = getelementlist("actor", XML_NS, movieinformation.getactornames()); movieelement.addcontent(actorelements); List<Element> genreelements = getelementlist("genre", XML_NS, movieinformation.getgenres()); movieelement.addcontent(genreelements); Element synopsiselement = new Element("synopsis", XML_NS); synopsiselement.set(movieinformation.getsynopsis()); movieelement.addcontent(synopsiselement); return movieelement; }

35 es.udc.ws.movies.xml.moviexmlconversor (9) private final static Element getreleasedate(calendar releasedate) { } Element releasedateelement = new Element("releaseDate", XML_NS); int day = releasedate.get(calendar.day_of_month); int month = releasedate.get(calendar.month) Calendar.JANUARY + 1; int year = releasedate.get(calendar.year); releasedateelement.setattribute("day", Integer.toString(day)); releasedateelement.setattribute("month", Integer.toString(month)); releasedateelement.setattribute("year", Integer.toString(year)); return releasedateelement;

36 es.udc.ws.movies.xml.moviexmlconversor (y 10) private final static List<Element> getelementlist( String elementname, Namespace namespace, List textlist) { } List<Element> elementlist = new ArrayList<Element>(); for (Object t : textlist) { Element element = new Element(elementName, namespace); element.set(t.tostring()); elementlist.add(element); } return elementlist;

37 Comentarios (1) es.udc.ws.util.exceptions.parsingexception Los métodos públicos de la clase MovieXMLConversor devuelven esta excepción cuando hay algún problema durante el proceso de parsing Forma parte de subsistema de utilidades de los ejemplos de la asignatura Extiende a RuntimeException Representa un error grave Sólo es preciso capturarla en los lugares en los que explícitamente se quiere tratar En resto de sitios, la excepción fluye hacia arriba Como cualquier tipo de excepción (java.lang.throwable), permite especificar un mensaje y/o encapsular una excepción (la que produjo el problema) RuntimeException ParsingException Los constructores mostrados invocan a los constructores de la clase padre + ParsingException() + ParsingException(message : String) + ParsingException(message : String, cause : Throwable) + ParsingException(cause : Throwable)

38 Comentarios (y 2) Validación y esquemas XML JDOM no tiene soporte directo para validar con esquemas XML, aunque existe un workaround sencillo para poder hacerlo En cualquier caso, y como justificaremos en el apartado 3.3, no siempre queremos que los clientes y/o servidores validen los documentos XML que reciben, sino simplemente que comprueben que Los documentos estén bien formados Los elementos y atributos que se requieran estén presentes NOTA: obsérvese que MovieXMLConversor hace ambas cosas En consecuencia, los documentos XML que produce MovieXMLConversor tampoco generan una referencia al esquema XML Los documentos XML (Movie-1.xml, Movie-2.xml, etc.) presentes en Subsystems/Movies/Documents incluyen una referencia al esquema XML Al editarlos con un editor con soporte para XML (e.g. el editor que viene con Eclipse Web Tools Platform), el editor puede detectar el uso de elementos y atributos incorrectos

Interacción y manejo de documentos XML.

Interacción y manejo de documentos XML. Interacción y manejo de documentos XML. Como último miembro de la familia XML, nos planteamos la tecnología por la cual una aplicación externa, escrita en no importa que lenguaje de programación, puede

Más detalles

3.4 Parsers DOM con JAXP

3.4 Parsers DOM con JAXP 3.4 Parsers DOM con JAXP Una representación DOM de Movies.xml Document DocumentType Element (movies) Comment Element (movie, La Maldición..) Comment Element (movie, Amelie) Element (director) Element (actor)

Más detalles

SAX Parser. Ing. Augusto Dobeslao Herández López (Bases de Datos en XML)

SAX Parser. Ing. Augusto Dobeslao Herández López (Bases de Datos en XML) SAX Parser Ing. Augusto Dobeslao Herández López (Bases de Datos en XML) Simple API for XML (SAX) Proporciona mecanismos para leer desde un documento XML. Es un API orientada a eventos, actualmente en su

Más detalles

6.1 APIs para XML. APIs para XML (I) ! Uno de los usos más habituales de XML (y menos esperado) es como formato de intercambio de datos.

6.1 APIs para XML. APIs para XML (I) ! Uno de los usos más habituales de XML (y menos esperado) es como formato de intercambio de datos. 6.1 APIs para XML APIs para XML (I)! Uno de los usos más habituales de XML (y menos esperado) es como formato de intercambio de datos.! En este caso los documentos XML nunca llegan a visualizarse, sino

Más detalles

3.3 Parsers SAX con JAXP

3.3 Parsers SAX con JAXP 3.3 Parsers SAX con JAXP Introducción (1) Un parser XML permite comprobar que el documento está bien formado y acceder a los datos Si además el parser es validante, permite validar el documento (usando

Más detalles

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando

Más detalles

Tema IV. XML V. APIs (DOM & SAX)

Tema IV. XML V. APIs (DOM & SAX) Tema IV. XML V. APIs (DOM & SAX) Desarrollo de Aplicaciones para Internet Curso 12 13 Índice 1.Introducción 2.DOM i. Introducción ii. Interfaces y Clases iii.ejemplos 3.SAX i. Introducción ii. Interfaces

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Tecnología XML. Unidad: 3 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Tecnología XML. Unidad: 3 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Tecnología XML Unidad: 3 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice DOM Concepto Características Niveles Estructura del documento Tipo

Más detalles

Uso de excepciones en Java

Uso de excepciones en Java Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que

Más detalles

Visualización y Transformaciones en XML

Visualización y Transformaciones en XML Visualización y Transformaciones en XML 106 Visualización Los archivos XLM pueden ser vistos prácticamente en cualquier browser 107 Visualización Los XML en los web browsers no se despliegan como páginas

Más detalles

Procesamiento de documentos XML

Procesamiento de documentos XML Procesamiento de documentos XML Documentación Electrónica Soto Montalvo Contenido Introducción Document Object Model Simple API for XML DOM vs. SAX Cómo podemos manipular los documentos XML? SAX (Simple

Más detalles

Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez. Qué es DOM?

Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez. Qué es DOM? DOM y PHP Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez mx/rogomez Lámina 1 Qué es DOM? Document Object Model Especificación de W3C http://www.w3.org/dom/ w3 Mecanismo para

Más detalles

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Protocolo XML-RPC de Mensajería Negocios Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...

Más detalles

Parsear HTML con htmlparser para Android Guillem Pérez

Parsear HTML con htmlparser para Android Guillem Pérez Parsear HTML con htmlparser para Android Guillem Pérez He escogido esta librería(http://htmlparser.sourceforge.net/) aunque no había muchos ejemplos porque la he visto realmente ligera y esta en java hay

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1. Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;

Más detalles

Microsoft XML Core Services MSXML

Microsoft XML Core Services MSXML Microsoft XML Core Services MSXML Sergio Luján Mora sergio.lujan@ua.es http://gplsi.dlsi.ua.es/~slujan/ 1 MSXML... 3 Introducción... 3 Objetos del DOM... 5 Objeto XMLDOMDocument... 5 Construcción de un

Más detalles

Documento de Recomendación de Uso de Firma Digital en Comunicación PISEE. Ministerio Secretaría General de la Presidencia

Documento de Recomendación de Uso de Firma Digital en Comunicación PISEE. Ministerio Secretaría General de la Presidencia Documento de Recomendación de Uso de Firma Digital en Comunicación PISEE Ministerio Secretaría General de la Presidencia Santiago, septiembre de 2011 Índice Índice... 2 Abstracto... 3 Resumen... 3 Generación

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Introducción a XML - Validación y Parseo. Huibert Aalbers, Senior Certified Software IT Architect

Introducción a XML - Validación y Parseo. Huibert Aalbers, Senior Certified Software IT Architect Introducción a XML - Validación y Parseo Huibert Aalbers, Senior Certified Software IT Architect IT Insight podcast Este podcast pertenece a la serie IT Insight Pueden suscribirse al podcast a través de

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

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

Sistemas de Información 12/13 XML (extensible Mark-up Language) 12/13 XML (extensible Mark-up Language) Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza (raqueltl@unizar.es) " Guión Introducción Ejemplos Documentos vs apliaciones XML Espacios

Más detalles

ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS

ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS Versión 1.0 Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Servicio de SMS Cliente NORMATIVA ATLAS Arquitectura

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

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

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

Notación UML para modelado Orientado a Objetos

Notación UML para modelado Orientado a Objetos 1 Notación UML para modelado Orientado a Objetos 2 Notación UML para modelado Orientado a Objetos Índice 1.1. Qué es UML?.. 3 1.2. Por qué interesa UML en la asignatura de Programación Orientada a Objetos?3

Más detalles

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

Curso de JavaServer Faces

Curso de JavaServer Faces 1 Una JavaBean es una clase Java que sigue las siguientes convenciones: Constructor vacío Atributos de clase privados Por cada atributo, se crean los métodos getters y setters El Objetivo de los Managed

Más detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

extensible Markup Language

extensible Markup Language extensible Markup Language ISLN ISLN () XML 1 / 26 Librería LWP::Simple Bajarse el archivo de internet Para bajar archivos de internet se puede usar alguno de los módulos del CPAN http://search.cpan.org

Más detalles

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Definición de clases: Herencia, polimorfismo, ligadura dinámica Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual

Más detalles

Capítulo 1 Documentos HTML5

Capítulo 1 Documentos HTML5 Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones Programación Orientada a Objetos en Java Curso 2006-2007 Tema 6 Excepciones Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Qué son? Excepciones

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Programación orientada a objetos

Programación orientada a objetos Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Clase! Objeto! Atributo o variable de instancia! Método! Instanciar/crear un objeto!

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Desarrollo de Servicios Web con JBuilder

Desarrollo de Servicios Web con JBuilder Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo

Más detalles

Introducción - por qué usarlas?(1)

Introducción - por qué usarlas?(1) Excepciones en Java Introducción - por qué usarlas?(1) En el mundo de la programación hay algo que siempre ocurre: los errores en los programas. Pero qué sucede realmente después de que ha ocurrido el

Más detalles

Elastix Web Services (WSDL) Manual de Usuario

Elastix Web Services (WSDL) Manual de Usuario Elastix Web Services (WSDL) Manual de Usuario Elaborado por: Departamento de Desarrollo de Elastix Versión: Elastix 2.0.4-Beta 2 Versión Versión de Elastix VERSIONAMIENTO Fecha Editado por Aprobado Por

Más detalles

2.2.- Paradigmas de la POO

2.2.- Paradigmas de la POO 2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier

Más detalles

Qué es XML? XML (extensible Markup Language) Lenguaje de tags (similar en sintaxis a HTML) Estandarizado por el W3C (http://www.w3.

Qué es XML? XML (extensible Markup Language) Lenguaje de tags (similar en sintaxis a HTML) Estandarizado por el W3C (http://www.w3. 2.1 El lenguaje XML Qué es XML? XML (extensible Markup Language) Lenguaje de tags (similar en sintaxis a HTML) Estandarizado por el W3C (http://www.w3.org) Es extensible: XML no impone un conjunto de tags,

Más detalles

GENERACIÓN Y CONSTRUCCIÓN DE DOCUMENTOS XML

GENERACIÓN Y CONSTRUCCIÓN DE DOCUMENTOS XML RUEDA TORRES DULCE CAROLINA 3CM2 GENERACIÓN Y CONSTRUCCIÓN DE DOCUMENTOS XML Java & XML DESARROLLO > Generating Sample En este ejercicio se genera un documento XML en base a las reglas establecidas en

Más detalles

MANEJO DE FICHEROS XML Versión 1.0

MANEJO DE FICHEROS XML Versión 1.0 MANEJO DE FICHEROS XML Versión 1.0 NOVIEMBRE 2006 Página: 1 1 TABLA DE CONTENIDO 1 TABLA DE CONTENIDO... 2 2 INTRODUCCIÓN... 3 3 ELEMENTOS NECESARIOS PARA EL DESARROLLO... 3 4 GENERAR ESQUEMA... 3 5 LECTURA

Más detalles

XMLNode y XMLDocument en el aula

XMLNode y XMLDocument en el aula XMLNode y XMLDocument en el aula Nieves Carralero Colmenar. IES Pedro Mercedes. Junta de Comunidades de Castilla-La Mancha. España. ncarralero@edu.jccm.es Resumen El presente artículo se centra en ofrecer

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

3.9 Patrón Distributed callback

3.9 Patrón Distributed callback 3.9 Patrón Distributed callback Motivación (1) Queremos que la aplicación de administración de los termostatos Monitorize la temperatura de algunos termostatos, avisándonos si ésta baja o sube por encima

Más detalles

UNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007

UNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 UNIVERSIDAD DE SEVILLA E. T. S. INGENIERÍA INFORMÁTICA LENGUAJES Y SISTEMAS INFORMÁTICOS PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 Qué es el análisis

Más detalles

Curso de Python Inicial

Curso de Python Inicial Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos

Más detalles

Creación de documentos XML

Creación de documentos XML Creación de documentos XML 'Exchanger XML edition' es un editor estructurado que facilita la edición de lenguajes de marcas (ej XML). La versión Lite se puede descargar y utilizar libremente en aplicaciones

Más detalles

Tutorial 1: Desarrollo de un plugin

Tutorial 1: Desarrollo de un plugin Tutorial 1: Desarrollo de un plugin En este tutorial introductorio se creará un plugin siguiendo una de las plantillas que ofrece Eclipse. Concretamente se extenderá una vista para mostrar cierta información

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Capítulo 3: XML Spy como editor de documentos XML. 2. La interfaz de usuario de XML Spy

Capítulo 3: XML Spy como editor de documentos XML. 2. La interfaz de usuario de XML Spy Capítulo 3: XML Spy como editor de documentos XML 1. Objetivos del capítulo Este capítulo pretende servir como una introducción a las funciones de la aplicación XML Spy, incluida dentro del conjunto de

Más detalles

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases PHP y MySQL Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases Herencia de Objetos La herencia permite crear muchas clases que son similares entre si, sin tener

Más detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011

Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011 Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011 Por favor siga las siguientes indicaciones: Escriba con lápiz y de forma prolija. Escriba las hojas de un solo lado Escriba su nombre y número de documento

Más detalles

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE Versión 1.3 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de Usuario del NORMATIVA

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

WEBSERVICES CON FIRMA DIGITAL Versión 1.2

WEBSERVICES CON FIRMA DIGITAL Versión 1.2 WEBSERVICES CON FIRMA DIGITAL Versión 1.2 FEBRERO 2007 Página: 1 1 TABLA DE CONTENIDO 1 TABLA DE CONTENIDO... 2 2 INTRODUCCIÓN... 3 3 HERRAMIENTA DE DESARROLLO ANT... 3 4 CREACION SERVICIO WEB... 3 5 CREACIÓN

Más detalles

JavaScript como Orientación a Objetos

JavaScript como Orientación a Objetos Gustavo Lacoste (gustavo@lacosox.org) October 2012 Resumen El objetivo de las siguientes notas es generar una estructura en JavaScript que nos permita reutilizar de manera limpia las funciones creadas

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

Bases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Bases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos XPath - XQuery 1 XML: XPath - XQuery Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos XPath - XQuery 2 XPath - XQuery Ambos son estándares para acceder y obtener datos

Más detalles

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences Índice 1 Compartir datos entre actividades con Shared Preferences (0.75 puntos)... 2 2 Actividad de preferencias (0.75

Más detalles

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes VAST: Manual de usuario Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes Índice general Índice general 2 1. Introducción 4 2. Representación intermedia del AST 5 2.1. Funcionamiento del VAST

Más detalles

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

M III ABSTRACCIÓN Y CLASIFICACIÓN

M III ABSTRACCIÓN Y CLASIFICACIÓN M III ABSTRACCIÓN Y CLASIFICACIÓN COMPLEJIDAD Y ABSTRACCIÓN La abstracción en el desarrollo del programario En todo el proceso de abstracción siempre hay una parte de la situación o del problema que se

Más detalles

Metadatos en Plataformas ECM

Metadatos en Plataformas ECM Metadatos en Plataformas ECM understanding documents Ofrece tu sistema soporte para tipos documentales en bases de datos? Por qué debería importarte? Marzo, 2013 Basado en: Manejo de metadatos en plataformas

Más detalles

Programación en Java. Programación en OO

Programación en Java. Programación en OO Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,

Más detalles

PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 7

PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 7 PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 7 En esta práctica veremos cómo aplicar transformaciones XSLT a documentos XML. Esta tecnología nos permite hacer algo similar a lo que ya hicimos en

Más detalles

Práctica de introducción a

Práctica de introducción a Práctica de introducción a XML El trabajo consiste en una introducción al uso del lenguaje XML y su aplicación en documentos y sistemas de caracteristicas multimedia. 1.- Qué es XML? XML (extensible Markup

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS XML

NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS XML 1 NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS XML 2 Agenda XML DOM Xerces 2 3 Qué es XML? Es un lenguaje estándar diseñado para describir cualquier tipo de información. Su principal motivación es estructurar,

Más detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

Framework 2 Manual de usuario del Servicio de envío de SMS

Framework 2 Manual de usuario del Servicio de envío de SMS Manual de usuario del Servicio de envío de SMS Versión 1.0 Área de Aplicaciones Especiales y Arquitectura de Software 1 Hoja de Control Título Documento de Referencia Framework 2: Servicio de envío de

Más detalles

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario Apéndice 5 Manual de usuario de ColeXión ColeXión 1.0 Manual de usuario Índice 1. Qué es ColeXión?... 2 2. Requerimientos del sistema... 3 3. Instalación de ColeXión... 3 4. Creación de un nuevo esquema...

Más detalles

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios Diplomado Java Descripción El lenguaje de programación Java es uno de los más utilizados hoy en día. Su potencia, simplicidad, funcionalidad y capacidad hacen que este lenguaje sea una de las herramientas

Más detalles

EXCEPCIONES EN JAVA. Las sentencias que tratan las excepciones son try y catch. La sintaxis es:

EXCEPCIONES EN JAVA. Las sentencias que tratan las excepciones son try y catch. La sintaxis es: EXCEPCIONES EN JAVA Uno de los problemas más importantes al escribir aplicaciones es el tratamiento de los errores. Errores no previstos que distorsionan la ejecución del programa. Las excepciones de Java

Más detalles

Oracle 12c DISEÑO Y PROGRAMACIÓN

Oracle 12c DISEÑO Y PROGRAMACIÓN Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo

Más detalles

JAVA SE STANDARD EDITION

JAVA SE STANDARD EDITION JAVA SE STANDARD EDITION PRESENTACIÓN Introduce la tecnología Java describiendo cuáles son sus características fundamentales. Seguidamente se proporciona una visión bastante completa del lenguaje Java,

Más detalles

Leer XML con XMLReader en el aula

Leer XML con XMLReader en el aula Leer XML con XMLReader en el aula Nieves Carralero Colmenar. IES Pedro Mercedes. Junta de Comunidades de Castilla-La Mancha. España. ncarralero@edu.jccm.es Resumen Según la Orden EDU/2887/2010, de 2 de

Más detalles

Universidad de Cantabria corcuerp@unican.es

Universidad de Cantabria corcuerp@unican.es Herencia Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender los conceptos de herencia Comprender la forma de derivar una

Más detalles

Clases abstractas e interfaces

Clases abstractas e interfaces Clases abstractas e interfaces Clases abstractas Una clase abstracta es una clase que no se puede instanciar se usa únicamente para definir subclases Cuándo es una clase abstracta? En cuanto uno de sus

Más detalles

Plataforma de Contratación del Sector Público

Plataforma de Contratación del Sector Público del Sector Público Dirección General del Patrimonio del Estado Subdirección General de Coordinación de la Contratación Electrónica Versión: 1. Fecha: 10/12/2015 DEL PATRIMONIO DEL DEL ESTADO CONTROL DE

Más detalles

Análisis de esquemas XML [1]

Análisis de esquemas XML [1] Análisis de esquemas XML [1] Dirigido a: Administradores de Bases de Datos Área: Bases de Datos Autor: Pablo F. Dueñas Servicios Profesionales Danysoft Resumen Un esquema XML describe la estructura de

Más detalles

Manual de referencia para la invocación de WebServices con Aduanas (SMS v3.0)

Manual de referencia para la invocación de WebServices con Aduanas (SMS v3.0) Valparaíso, 24 de abril de 2006 Manual de referencia para la invocación de WebServices con Aduanas (SMS v3.0) Introducción El sistema SMS (Sistema de Mensajería por SOAP) fue diseñado con el fin de servir

Más detalles

Ingeniería del Software Arquitectura Física en 3 niveles

Ingeniería del Software Arquitectura Física en 3 niveles Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre

Más detalles

5.3 Diseño por capas con Servicios Web

5.3 Diseño por capas con Servicios Web 5.3 Diseño por capas con Servicios Web Diseño por capas Misma idea que en CORBA Interfaz de usuario (no WS) Capa de traducción y delegación (WS) Capa de traducción y delegación (WS) IDL Capa de lógica

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles