XML. Spunti per la parte esercitativa. Simon Pietro Romano
|
|
- Romeo Clemente
- 5 anni fa
- Visualizzazioni
Transcript
1 XML Spunti per la parte esercitativa Simon Pietro Romano
2 PARTE I Concetti generali
3 SAX vs DOM SAX: Simple API for XML event-driven, serial-access mechanism that does element-by-element processing DOM: Document Object Model Una struttura ad albero di un documento XML Presente in memoria nella sua interezza per tutta la durata dell elaborazione
4 La API SAX: struttura
5 I package SAX
6 La API DOM: struttura
7 I package DOM
8 La API XSLT: struttura
9 Le API Java per XML javax.xml.parsers Un interfaccia comune per i parser SAX e DOM forniti da produttori differenti org.w3c.dom Definisce la classe Document, nonché tutte le classi per la gestione del modello DOM (Document Object Model) org.xml.sax Le classi base per l interfaccia SAX javax.xml.transform Le classi base per la trasformazione di XML in altri formati
10 Il package javax.xml.parsers
11 PARTE II Esempi con la API SAX
12 Eco di un file XML con SAX Lo scheletro: public class Echo { public static void main(string argv[]) {
13 Eco di un file XML con SAX I package da importare: import java.io.*; import org.xml.sax.*; import org.xml.sax.helpers.defaulthandler; import javax.xml.parsers.saxparserfactory; import javax.xml.parsers.parserconfigurationexception; import javax.xml.parsers.saxparser; public class Echo {
14 Eco di un file XML con SAX Configurazione dell I/O: public static void main(string argv[]) { if (argv.length!= 1) { System.err.println("Usage: cmd filename"); System.exit(1); try { // Set up output stream out = new OutputStreamWriter(System.out, "UTF8"); catch (Throwable t) { t.printstacktrace(); System.exit(0); // end main static private Writer out;
15 Eco di un file XML con SAX Implementazione dell interfaccia Contenthandler: public class Echo extends DefaultHandler { Domanda: qual è la relazione tra ContentHandler e DefaultHandler?
16 Eco di un file XML con SAX Configurazione del parser: public static void main(string argv[]) { if (argv.length!= 1) { // Use an instance of ourselves as the SAX event handler DefaultHandler handler = new Echo(); // Use the default (non-validating) parser SAXParserFactory factory = SAXParserFactory.newInstance(); try { // Set up output stream // Parse the input SAXParser saxparser = factory.newsaxparser(); saxparser.parse( new File(argv[0]), handler); catch (Throwable t) { t.printstacktrace(); System.exit(0);
17 Eco di un file XML con SAX Scrittura dell output: // Wrap I/O exceptions in SAX exceptions, to // suit handler signature requirements private void emit(string s) throws SAXException { try { out.write(s); out.flush(); catch (IOException e) { throw new SAXException("I/O error", e);
18 Eco di un file XML con SAX Spaziatura dell output: private void emit(string s) // Start a new line private void nl() throws SAXException { String lineend = System.getProperty("line.separator"); try { out.write(lineend); catch (IOException e) { throw new SAXException("I/O error", e);
19 Eco di un file XML con SAX Gestione eventi Document : public void startdocument() throws SAXException { emit("<?xml version='1.0' encoding='utf-8'?>"); nl(); public void enddocument() throws SAXException { try { nl(); out.flush(); catch (IOException e) { throw new SAXException("I/O error", e);
20 Eco di un file XML con SAX Gestione evento startelement : public void startelement(string namespaceuri, String sname, // simple name String qname, // qualified name Attributes attrs) throws SAXException { echotext(); String ename = sname; // element name if ("".equals(ename)) ename = qname; // not namespaceaware emit("<"+ename); if (attrs!= null) { for (int i = 0; i < attrs.getlength(); i++) { String aname = attrs.getlocalname(i); // Attr name if ("".equals(aname)) aname = attrs.getqname(i); emit(" "); emit(aname+"=\""+attrs.getvalue(i)+"\""); emit(">");
21 Eco di un file XML con SAX Gestione evento endelement : public void endelement(string namespaceuri, String sname, // simple name String qname // qualified name ) throws SAXException { echotext(); String ename = sname; // element name if ("".equals(ename)) ename = qname; // not namespaceaware emit("</"+ename+">");
22 Eco di un file XML con SAX Gestione evento characters : public class Echo extends DefaultHandler { StringBuffer textbuffer; public void characters(char buf[], int offset, int len) throws SAXException { String s = new String(buf, offset, len); if (textbuffer == null) { textbuffer = new StringBuffer(s); else { textbuffer.append(s);
23 Eco di un file XML con SAX Stampa del contenuto del buffer: public class Echo extends DefaultHandler { private void echotext() throws SAXException { if (textbuffer == null) return; String s = ""+textbuffer; emit(s); textbuffer = null;
24 Esercizio 1 Scrivere un programma che effettui l eco di un file XML, utilizzando la API SAX
25 Eco di un file XML con SAX Il file di input: <slideshow title="sample Slide Show" date="date of publication" author="yours Truly"> <!-- TITLE SLIDE --> <slide type="all"> <title>wake up to WonderWidgets!</title> </slide> <!-- OVERVIEW --> <slide type="all"> <title>overview</title> <item>why <em>wonderwidgets</em> are great</item> <item/> <item>who <em>buys</em> WonderWidgets</item> </slide> </slideshow>
26 Eco di un file XML con SAX
27 Eco di un file XML con SAX Osservazioni: Da dove provengono gli spazi bianci in eccesso? Come mai il codice è indentato, nonostante il codice non gestisca l indentazione? Che fine hanno fatto i commenti?
28 Esercizio 2 Modificare il programma dell esercizio 1 in modo da stampare, oltre al contenuto, anche informazioni relative al tipo di evento individuato
29 Esercizio 2: esempio di output L indentazione ed i ritorni a capo sono passati dal parser al metodo characters()
30 Esercizio 3 Modificare il codice dell esercizio 2 in modo da sopprimere l output di stringhe fatte solo di whitespace Suggerimento: Utilizzare il metodo trim()
31 Esercizio 3: esempio di output NB: sono scomparsi anche i caratteri di indentazione!
32 Esercizio 4 Modificare il codice dell esercizio 3, gestendo opportunamente l indentazione
33 Esercizio 4: esempio di output
34 Esercizio 5 Modificare il codice dell esercizio 4 per far sì che l applicazione riconosca eventuali processing instructions presenti nel file XML
35 Esercizio 5: file di input <?xml version="1.0" encoding="utf-8"?> <!-- A SAMPLE set of slides --> <slideshow title="sample Slide Show" date="date of publication" author="yours Truly"> <!-- PROCESSING INSTRUCTION --> <?my.presentation.program QUERY="exec, tech, all"?> <!-- TITLE SLIDE --> <slide type="all"> <title>wake up to WonderWidgets!</title> </slide> <!-- OVERVIEW --> <slide type="all"> <title>overview</title> <item>why <em>wonderwidgets</em> are great</item> <item/> <item>who <em>buys</em> WonderWidgets</item> </slide> </slideshow>
36 Esercizio 5: esempio di output
37 Gestione degli errori Gli errori sono generati dal parser e possono essere gestiti mediante i seguenti handler: error() fatalerror() warning()
38 Errori: esempio <?xml version='1.0' encoding='utf-8'?> <slideshow title="sample Slide Show" date="date of publication" author="yours Truly"> <!-- TITLE SLIDE --> <slide type="all"> <title>wake up to WonderWidgets!</title> </slide> <!-- OVERVIEW --> <slide type="all"> <title>overview</title> <item>why <em>wonderwidgets</em> are great</item> <item> <item>who <em>buys</em> WonderWidgets</item> </slide> </slideshow>
39 Errori: esempio di output
40 Gestione degli errori catch (SAXParseException spe) { // Error generated by the parser System.out.println("\n** Parsing error" + ", line " + spe.getlinenumber() + ", uri " + spe.getsystemid()); System.out.println(" " + spe.getmessage() ); catch (Throwable t){ t.printstacktrace();
41 Esempio
42 Incapsulamento di eccezioni private void emit(string s) throws SAXException { try { out.write(s); out.flush(); catch (IOException e) { throw new SAXException("I/O error", e);
43 Decapsulamento di eccezioni Nel codice cha ha invocato il parser: catch (SAXException sxe) { // Error generated by this application // (or a parser-initialization error) Exception x = sxe; if (sxe.getexception()!= null) x = sxe.getexception(); x.printstacktrace();
44 Il metodo error() // treat validation (i.e. non-fatal) errors as fatal public void error(saxparseexception e) throws SAXParseException { throw e; NB: per default, error() non fa niente
45 Sezioni!CDATA[] <slide type="tech"> <title>how it Works</title> <item>first we fozzle the frobmorten</item> <item>then we framboze the staten</item> <item>finally, we frenzle the fuznaten</item> <item><![cdata[diagram: frobmorten < fuznaten <3> ^ <1> <1> = fozzle V <2> = framboze staten <3> = frenzle <2> ]]></item>
46 Sezioni!CDATA[]
47 Il validating parser SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setvalidating(true);
48 Validare con gli schemi XML static final String JAXP_SCHEMA_LANGUAGE = static final String W3C_XML_SCHEMA= ; SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setnamespaceaware(true); factory.setvalidating(true); saxparser.setproperty(jaxp_schema_language, W3C_XML_SCHEMA);
49 Il LexicalHandler Consente di gestire Commenti Sezioni CDATA DTD cfr anche DTDHandler Entità
50 LexicalHandler: utilizzo public class Echo extends DefaultHandler implements LexicalHandler { public static void main(string argv[]) { Echo handler = new Echo(); try{ SAXParser saxparser = factory.newsaxparser(); XMLReader xmlreader = saxparser.getxmlreader(); xmlreader.setproperty( " handler); saxparser.parse( new File(argv[0]), handler); catch( )
51 LexicalHandler: utilizzo public void comment(char[] ch, int start, int length) throws SAXException { String text = new String(ch, start, length); nl(); emit("comment: "+text);
52 LexicalHandler: utilizzo public void startcdata() throws SAXException { // echo anything we've seen before now echotext(); nl(); emit("start CDATA SECTION");
53 PARTE III Esempi con la API DOM
54 Da XML a DOM Uno scheletro di programma: public class DomEcho { public static void main(string argv []) { if (argv.length!=1){ System.err.println( "Usage:java DomEcho filename"); System.exit(1);
55 Da XML a DOM Classi importate: import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.parsers.factoryconfigurationerror; import javax.xml.parsers.parserconfigurationexception; Classi API JAXP import org.xml.sax.saxexception; import org.xml.sax.saxparseexception; Parsing exceptions import java.io.file; import java.io.ioexception; Errori lettura file import org.w3c.dom.document; import org.w3c.dom.domexception; Classi specifiche del modello DOM
56 Da XML a DOM Dichiarazione dell oggetto DOM: public class DomEcho01{ // static because filled inside the main static Document document; public static void main(string argv[]) {
57 Da XML a DOM Gestione degli errori: come con SAX: Il parser DOM utilizza, internamente, un parser SAX (che era già disponibile quando si è realizzata la API DOM ) catch (SAXParseException spe) { // Error generated by the parser catch (SAXException sxe) { // Error generated during parsing)
58 Da XML a DOM Utilizzo della factory, istanziazione del parser e parsing del file: public static void main(string argv[]) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newdocumentbuilder(); document = builder.parse( new File(argv[0]) );
59 Esercizio 1 Scrivere un programma che effettui il parsing di un file XML e rappresenti tale file in memoria come documento DOM
60 Configurazione della factory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setvalidating(true); factory.setnamespaceaware(true); try { DocumentBuilder builder = factory.newdocumentbuilder();
61 Gestione errori di validazione builder.seterrorhandler( new org.xml.sax.errorhandler(){ //ignore fatal errors (an exception is guaranteed) public void fatalerror(saxparseexception exception) throws SAXException { //treat validation errors as fatal public void error(saxparseexception e) throws SAXParseException { throw e; //dump warnings too public void warning(saxparseexception err) throws SAXParseException { ; System.out.println("**Warning + ", line + err.getlinenumber() + ", uri + err.getsystemid()); System.out.println( + err.getmessage());
62 Eco con DOM e Transformer Partendo dal DOM, per stampare il contenuto XML bisogna effettuare una trasformazione // For write operation import javax.xml.transform.transformer; import javax.xml.transform.transformerfactory; import javax.xml.transform.transformerexception; import javax.xml.transform.transformerconfigurationexception; import javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamresult;
63 Eco con DOM e Transformer // Use a Transformer for output TransformerFactory tfactory = TransformerFactory.newInstance(); Transformer transformer = tfactory.newtransformer(); DOMSource source = new DOMSource(document); StreamResult result = new StreamResult(System.out); transformer.transform(source, result); Domanda: Qual è l effetto del metodo transform eseguito sull oggetto Transformer creato dalla TransformerFactory? NB: Si faccia caso all utilizzo del newinstance()
64 Esercizio 2 Modificare il cosice dell esercizio 2 per stampare su console il contenuto del documento DOM presente in memoria
65 Esercizio 3 Scrivere un programma che, utilizzando la API DOM, crei ex-abrupto un oggetto DOM e lo stampi sulla console di output Es: Fare riferimento al seguente file di esempio (da riprodurre senza effettuarne il parsing ): schemastuff\books.xml
66 Esercizio 4 Scrivere un programma che, utilizzando la API DOM, modifichi il contenuto di alcuni nodi di un documento DOM: Es: aggiunta attributi eliminazione e/o aggiunta nodi figlio ricerca di nodi e modifica selettiva del loro contenuto
Le librerie Java per manipolare XML
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Le librerie Java per manipolare XML Ing. Marco Mamei Anno Accademico 2004-2005
DettagliLaboratorio di sistemi interattivi. Struttura di un applicazione Java-XML. Lezione 12: Java & XML
Laboratorio di sistemi interattivi Lezione 12: Java & XML 1 Struttura di un applicazione Java-XML Parser analizza il contenuto di un file XML Produce eventi in corrispondenza delle diverse componenti Eventi
DettagliJAXP: Java API for XML Processing. Marco Tessarotto Programmazione dei Web Server Anno Accademico
JAXP: Java API for XML Processing Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 JAXP: Java API for XML processing JAXP: elaborazione di dati XML in Java Utilizza i parser che
DettagliCorso di Applicazioni Telematiche
XML: extensible Markup Language Parte II Corso di Applicazioni Telematiche A.A. 2011-2012 Prof. Simon Pietro Romano Università degli Studi di Napoli Federico II Facoltà di Ingegneria Outline Parte I XML:
DettagliSAX e DOM. Analisi di un documento
SAX e DOM Programmazione in Ambienti Distribuiti A.A. 2003-04 Analisi di un documento Il parser è uno modulo software utilizzato per l analisi di un documento Eseguire il parsing di un documento significa
DettagliElaborazione di documenti XML
Elaborazione di documenti XML Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.13 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria XML e i linguaggi di
DettagliLaboratorio di Sistemi Distribuiti
Laboratorio di Sistemi Distribuiti Bianchi Marco Univ. Roma Tor Vergata November 15, 2006 Bianchi Marco (Univ. Roma Tor Vergata) Laboratorio di Sistemi Distribuiti November 15, 2006 1 / 52 Introduzione
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione su XML: Librerie per XML versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
Dettagli4 Anno 2011 - Informatica ABACUS
Testo Il Ministero dell Ambiente commissiona lo sviluppo di un nuovo Sistema Informativo per censire la fauna e la flora presenti nei vari parchi naturali di ciascuna regione. Le informazioni della fauna
DettagliUniversità degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web T A.A Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM
Università degli Studi di Bologna Facoltà di Ingegneria Tecnologie Web T A.A. 2018 2019 Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM Agenda Creazione di documenti XML Creazione di documenti XML Schema
DettagliUniversità degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web T A.A. 2014 2015. Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM
Università degli Studi di Bologna Facoltà di Ingegneria Tecnologie Web T A.A. 2014 2015 Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM Agenda Creazione di documenti XML Creazione di documenti DTD Creazione
DettagliUniversità degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web T A.A. 2014 2015. Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM
Università degli Studi di Bologna Facoltà di Ingegneria Tecnologie Web T A.A. 2014 2015 Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM Agenda Creazione di documenti XML Creazione di documenti DTD Creazione
DettagliIl formato XML La persistenza dei dati persistenza
Il formato XML Il testo che segue è in parte rielaborato da Informatica Concetti e Sperimentazioni Apogeo 2003. La persistenza dei dati Da quando esistono i computer, i programmatori si sono scontrati
DettagliDocument Object Model
Document Object Model Dott. D Anna Leandro Accesso documenti XML Esistono 2 approcci ( molti parser) SAX (Simple( API for XML) SAX 2.0 (JAVA) MSXML 6.0 (MICROSOFT) DOM (Document( Object Model) è uno standard
DettagliUna filosofia diversa
Parsing del cntenut XML e SAX quand l efficienza ha la precedenza Crs di laurea in Cmunicazine Digitale Labratri di sistemi e reti A.A. 2010-2011 Simne Bassis bassis@dsi.unimi.it Labratri di sistemi e
DettagliUniversità degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web T A.A. 2015 2016. Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM
Università degli Studi di Bologna Facoltà di Ingegneria Tecnologie Web T A.A. 2015 2016 Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM Agenda Creazione di documenti XML Creazione di documenti XML Schema
DettagliAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Input/output (in Java) Michele Tomaiuolo Eccezione Un eccezione è
DettagliLETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream
LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Sfortunatamente, una tale classe non esiste
DettagliProgrammazione su Reti
Programmazione su Reti Esempio di applicazione Client Server su protocollo Soap Fabio Donatantonio Applicazione Applicazione Client-Server per la gestione di un elenco di persone con relativi dati. Viene
DettagliLaboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2013/2014
Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale Anno Accademico 2013/2014 XML XML = extensible Markup Language Progettato per transporto e memorizzazione dati, non per visualizzazione
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione XML: JDOM versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.
DettagliEsercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java:
Esercitazione n 4 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Gestione di input/output da console e da file (package java.io) Utilizzo di
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione su XML: Strato di Persistenza versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 0 (svolta) Multithreading in Java Luca Foschini Anno accademico 2009/2010 Esercitazione 0 1 Modello
DettagliEccezioni Precisazioni e approfondimenti
Eccezioni Precisazioni e approfondimenti Costruttore: il parametro String definisce il messaggio di errore associato all eccezione Metodi particolarmente significativi getmessage(): ritorna l istanza di
DettagliCapitolo 13: Gestione delle eccezioni. Capitolo 13. Gestione delle eccezioni Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2
Capitolo 13 Gestione delle eccezioni 1 Figura 1 La gerarchia delle classi di eccezioni 2 Figura 2 Eccezioni controllate e non controllate 3 File PurseTest.java import javax.swing.joptionpane; import java.io.ioexception;
DettagliSerializzazione. La persistenza dei dati
La persistenza dei dati Serializzazione Da quando esistono i computer, i programmatori si sono scontrati con la necessità di far vivere i dati al di fuori dei programmi. Chiariamo il concetto con un esempio
DettagliGESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
DettagliGESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
DettagliLETTURA DI DATI DA INPUT
LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream FileDescriptor InputStream SequenceInputStream ByteArrayInputStream
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA8 B1 Accesso sequenziale 1 Prerequisiti Programmazione ad oggetti Conoscenza classi di base di I/O Tecnica della programmazione 2 1 Introduzione In questa Unità vediamo
DettagliProgrammazione 2 - Marco Ronchetti. Fondamenti di Java. Fac.Scienze Università di Trento. Static
1 Fondamenti di Java Static 2 Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola variabile condivisa
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario API di Java Istruzione di scrittura Istruzione di lettura 21/03/2011 2 API di Java Java è un linguaggio orientato agli oggetti basato
DettagliXML Programming: DOM e SAX
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011-2012 XML Programming: DOM e SAX Eufemia TINELLI Contenuti Obiettivi delle API per XML DOM Modello
DettagliEccezioni. Comportamento di default (esempio) Propagazione delle eccezioni
Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Eccezioni L esistenza di
DettagliOrganizzazione della lezione. Invocazione remota di metodi fai-da-te. Lezione 12 Introduzione a Remote Method Invocation
Organizzazione della lezione Lezione 12 Introduzione a Remote Method Invocation Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi
DettagliUniversità degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)
Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento) Prof. Marco Cadoli, Canale M-Z A.A. 2005-06 USO DEL FRAMEWORK JUNIT
DettagliPrincipi, Modelli e Applicazioni per Sistemi Distribuiti M
Università degli Studi di Bologna Facoltà di Ingegneria Principi, Modelli e Applicazioni per Sistemi Distribuiti M Esercitazione 2 (svolta) Socket Java con connessione Alessandro Pernafini Architettura
DettagliAutomazione di test. Si presuppone la conoscenza del documento XML.pdf. Un package per i test automatizzati
Automazione di test Si presuppone la conoscenza del documento XML.pdf. Un package per i test automatizzati Il package test (fornito completo nel file test.zip) permette di automatizzare una serie di test.
DettagliEccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.
Eccezioni Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it 2 Eccezione Evento anormale che avviene durante l'esecuzione del programma
DettagliXML e XSD. Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com
XML e XSD Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com Ordine di Acquisto Servizio: eshop Operazione: ordine di acquisto Dati dell'ordine: prodotti quantità corriere Playstation 2 Controller
DettagliEsercitazione 2. Java:
Esercitazione 2 Java: Eccezioni @andreamocci Casi Eccezionali (1) /* * Produce un numero complesso a partire dalla sua forma polare */ public static Complex frompolarform(double abs, double phase) { /*
DettagliCorso di Reti di Calcolatori T
Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 7 (svolta) Java RMI e Riferimenti Remoti Un RMI Registry Remoto Luca Foschini Anno accademico 2018/2019
DettagliFondamenti di Informatica
Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale OOP: I/O da/su File e Java Exceptions Prof. Stefano Mariani Dott. Alket Cecaj Indice I/O da/su file: java.io e java.nio BufferedReader
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA6 A2 I file binari 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione
DettagliOrganizzazione della lezione. Modelli di programmazione: RPC e RMI Trasparenza: un dibattito Un esempio di implementazione di invocazione remota
Organizzazione della lezione 10. Invocazione di Metodi Remoti Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Modelli di programmazione:
DettagliLaurea in Informatica. "Programmazione Distribuita" - Prof. Scarano. A.A Università di Salerno 1. Organizzazione della lezione
12. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Modelli di programmazione:
Dettagli10. Invocazione di Metodi Remoti
10. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Programmazione Distribuita.
DettagliEsercizio: Lista Circolare
Esercizio: Lista Circolare Si realizzi in Java un gestore di una lista circolare. La dimensione minima della lista è 2 elementi (ed è anche la dimensione iniziale). La dimensione massima è 20 elementi.
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA8 B2 Accesso diretto 1 Prerequisiti Programmazione ad oggetti Conoscenza classi di base di I/O Tecnica della programmazione Organizzazione ed accesso ai file 2 1 Introduzione
DettagliGestione delle eccezioni
Gestione delle eccezioni Raffaella Brighi, a.a. 2007/08 Ereditarietà Corso di Algoritmi e programmazione. A.A. 2007-08 CdL Operatore Informatico Giuridico. Casi di insuccesso Vi sono numerosi problemi
DettagliProgrammazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
DettagliFileHandler. +getcontent():string +getline(number:int):string
Proxy 85 12. Proxy (GoF pag. 207) 12.1. Descrizione Fornisce una rappresentazione di un oggetto di accesso difficile o che richiede un tempo importante per l accesso o creazione. Il Proxy consente di posticipare
DettagliProva d Esame Compito A
Prova d Esame 19.04.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;
DettagliUniversità Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1
Università Ca Foscari DAIS Programmazione ad Oggetti Esame del modulo 1 Nome: Matricola: Samuel Rota Bulò, a.a. 2012/2013 Programmazione ad Oggetti a.a. 2012/2013 Esame del modulo 1 Nome: Samuel Rota Bulò
DettagliLaboratorio di sistemi Tag personalizzati Jsp [NetBeans] Sezione A
Sezione A In NetBeans creiamo una applicazione web nel solito modo, confermando tutte le impostazioni proposte senza alcuna variazione. Per costruire una libreria di tag personalizzata, costruiamo innanzitutto
DettagliLaboratorio di reti I
Laboratorio di reti I Stefano Brocchi brocchi@dsi.unifi.it 13 ottobre, 2009 Stefano Brocchi Laboratorio di reti I 13 ottobre, 2009 1 / 27 Introduzione Obiettivi del corso Aspetti di programmazione Java
DettagliC++ Copy Constructor
C++ Copy Constructor Versione 1 #include using namespace std; class Line{ public: Line( int len ); ~Line(); ; // simple constructor // destructor Member functions definitions Line::Line(int
DettagliUnità 2 I file binari
Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA file binari file di tipi primitivi file di oggetti serializzazione (B) CONOSCENZA E COMPETENZA Rispondere alle seguenti domande
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
DettagliInput. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei
Input Il tipo char Alcune modalità di acquisizione di input 1 Lettura di dati in input Vediamo due modi per acquisire dei dati di input dall utente: 1. Tramite una finestra grafica di dialogo 2. Tramite
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Qualità del Codice: Convenzioni di Stile versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliProgrammazione ad Oggetti
Programmazione ad Oggetti Java File Flussi e file Flusso (stream) = sequenza di dati di input: da cui leggere di output: su cui scrivere I file sono visti come flussi di dati Il package java.io definisce
DettagliLa Serializzazione in Java. L24_Serialization 1
La Serializzazione in Java L24_Serialization 1 La Serialization è la trasformazione di un oggetto in memoria in una sequenza di byte (ospitata in un file, trasmessa in rete, ecc). La Deserialization è
DettagliOOP: L13: Eccezioni e loro trattamento in Java
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica A. Acc. 2005/2006 Programmazione Orientata agli Oggetti OOP: L13: Eccezioni e loro trattamento
DettagliPolimorfismo parametrico vs polimorfismo per inclusione
Polimorfismo parametrico vs polimorfismo per inclusione Esercizio Definire il tipo di dato Stack con operazioni Push( element ) Pop() Non forzare una specifica implementazione Non forzare un tipo specifico
DettagliProgrammazione a Oggetti Lezione 11. Eccezioni e Packages
Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:
DettagliINFORMATICA AA Università degli Studi di Ferrara Facoltà di Scienze MM FF NN Corso di Laurea in «Scienze e Tecnologie per i Beni Culturali»
Università degli Studi di Ferrara Facoltà di Scienze MM FF NN Corso di Laurea in «Scienze e Tecnologie per i Beni Culturali» AA 2010-2011 INFORMATICA Prof. Giorgio Poletti giorgio.poletti@unife.it XML
DettagliCifratura simmetrica
Cifratura Cifratura simmetrica Alice canale insicuro Bob 2 Cifratura simmetrica m Algoritmo di decifratura m Alice canale insicuro Algoritmo di cifratura Bob 3 Cifrari simmetrici chiave privata k chiave
DettagliOperazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
Operazioni di input/output Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Input /Output introduzione Per ottenere delle informazioni un programma apre un flusso (Stream)
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione
DettagliRiconoscitori e analizzatori sintattici. Scanning e parsing. Funzionamento di un parser: la tecnica Shift/Reduce. Esempio
POLITECNICO I TORINO Laboratorio di Compilatori Corso di Linguaggi e Traduttori mail: stefano.scanzio@polito.it sito: Riconoscitori e analizzatori sintattici ata una grammatica non ambigua ed una sequenza
DettagliProgrammazione in Java
Programmazione in Java Settima lezione Cristian Del Fabbro Lezione di oggi Esercizio sull'utilizzo delle classi viste nella quarta lezione (Vector, StringTokenizer, file su disco, ecc.) Alcune classi per
DettagliEccezioni predefinite
Eccezioni predefinite Java mette a disposizione molte eccezioni già confezionate, che descrivono la maggioranza dei problemi che possono verificarsi a run-time. Ognuna di queste è una classe. Tutte queste
DettagliServer Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione
Esercitazione: Socket Java con connessione Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server (put) usando una connessione. In particolare nel servizio: il client
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliProgrammazione II. Lezione 23. Daniele Sgandurra 28/1/2011.
Programmazione II Lezione 23 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 28/1/2011 1/20 Programmazione II Lezione 23 28/1/2011 Sommario 1 2/20 Programmazione II Lezione 23 28/1/2011 Parte I 3/20 Programmazione
DettagliInterfaccia Comparable. Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array. Come sfrutto Comparable?
Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Interfaccia Comparable class Contatore implements Comparable
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Conclusioni versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliNote ed esercizi aggiuntivi
Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini ed esercizi aggiuntivi Gli esercizi proposti sono utili per rivedere gli esempi riportati, che sono stati sviluppati e discussi
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.
DettagliAlberi Binario in Java
Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un
DettagliGestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint
parseint parseint showinputdialog JOptionPanenull null throw BankAccount IllegalArgumentException amount public class BankAccount { public void withdraw(double amount) { if (balance < amount) { // Parametro
DettagliProgrammazione ad Oggetti
Programmazione ad Oggetti Java - IO Corso di Programmazione ad Oggetti Seconda Università di Napoli Ing. Antonio Coronato ICAR - CNR Agenda Operazioni di IO da tastiera Oggetti System per le operazioni
DettagliIII Appello - 4 giugno 2009
Corso di laurea in Comunicazione digitale Fondamenti di architettura e programmazione AA 2008/09 III Appello - 4 giugno 2009 Cognome Matricola Nome 1 (4 punti) Scrivete il programma Java, Esercizio, che
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Comando
DettagliProgrammazione Concorrente e Distribuita
Programmazione Concorrente e Distribuita Esame scritto del 19 Dicembre 2011 Versione A Esercizio 1 (5 punti) 1 class A{ 2 S t r i n g s ; 3 4 A( S t r i n g s ){ 5 this. s = s ; 6 System. out. p r i n
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 2 (svolta) Socket Java con connessione Luca Foschini Anno accademico 2009/2010 Esercitazione 2 1 Architettura
DettagliVariabili e Metodi di classe Interfacce e Package Gestione di File in Java
Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe
DettagliJava, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM
Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM ERRATA CORRIGE dei programmi della prima stampa (Aprile 2004) aggiornato al 20/05/2017 Nota: il codice corretto è ottenibile da quella errato
DettagliRETI DI CALCOLATORI Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione
DettagliCorso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010
Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori l Introduzione ai Thread in Java A.A. 2009/2010 1 Thread Un thread è un flusso sequenziale di esecuzione di istruzioni all interno
DettagliAlbero Binario GT 7.3. interfacce di Positio<E>, Tree<E>, e BinaryTree<E>; il file TestLinkedBinaryTree.java
Laboratorio Java Albero Binario GT 7.3 Esercitazione Sono dati : interfacce di Positio, Tree, e BinaryTree; il file TestLinkedBinaryTree.java e i file.class che implementano le interfacce www.dei.unipd.it/corsi/fi2ae
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
DettagliUniversità Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1
Università Ca Foscari DAIS Programmazione ad Oggetti Esame del modulo 1 Nome: Matricola: Samuel Rota Bulò, a.a. 2012/2013 Programmazione ad Oggetti a.a. 2012/2013 Esame del modulo 1 Nome: Samuel Rota Bulò
DettagliProgettazione del Software
Progettazione del Software Programmazione in Java (3) Le eccezioni Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di R o m a Anno
DettagliXML e Java Dario Bottazzi
XML e Java Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Outline! Parsing di documenti XML! Simple API for XML processing (SAX)! Document Object Model (DOM)!
Dettagli