Laboratorio di Ingegneria Informatica
|
|
- Paola Ventura
- 8 anni fa
- Visualizzazioni
Transcript
1 extensible Markup Language (XML) Laboratorio di Ingegneria Informatica XML Parser per XML Corso di laurea specialistica in Ingegneria Informatica XML: cosa è XML: Extensible Markup Language: è un linguaggio che consente la rappresentazione di documenti e dati strutturati su supporto digitale è uno dei più potenti e versatili sistemi per la creazione, archiviazione, preservazione e disseminazione di documenti digitali ma la sua sintassi rigorosa e al contempo flessibile ne rende possibile l applicazione anche nella rappresentazione di dati strutturati, fornendo una soluzione alternativa ai tradizionali sistemi DBMS relazionali XML: le origini XML è stato sviluppato dal World Wide Web Consortium ( Le specifiche sono state rilasciate come W3C Recommendation nel 1998 e aggiornate nel 2004 XML deriva da SGML, un linguaggio di mark-up dichiarativo sviluppato dalla International Standardization Organization (ISO), e pubblicato ufficialmente nel 1986 con la sigla ISO 8879 XML nasce come un sottoinsieme semplificato di SGML orientato alla utilizzazione su World Wide Web ma ha assunto ormai un ruolo autonomo e una diffusione ben maggiore del suo progenitore La Famiglia di XML XML: principi fondamentali HTML XHTML WML SGML XML MathML SOAP XML adotta un paradigma di codifica dichiarativo e descrittivo XML descrive un documento come una struttura ad albero XML introduce il concetto di tipo di documento e di sintassi del documento
2 XML: caratteristiche XML: caratteristiche XML è un metalinguaggio, che permette di definire sintatticamente linguaggi di markup (nuovi linguaggi) Un linguaggio XML permette di esplicitare la (le) struttura(e) di un documento in modo formale mediante marcatori (markup) che vanno inclusi all interno del testo (character data) XML adotta un formato di file di tipo testuale: sia il mark-up sia il testo sono stringhe di caratteri XML si basa sul sistema di codifica dei caratteri ISO 10646/UNICODE Un documento XML è leggibile da un utente umano senza la mediazione di software specifico XML: caratteristiche XML: caratteristiche XML è indipendente dal tipo di piattaforma hardware e software su cui viene utilizzato XML permette la rappresentazione di qualsiasi tipo di documento (e di struttura testuale) indipendentemente dalle finalità applicative XML è indipendente dai dispositivi di archiviazione e visualizzazione un documento XML può essere archiviato su qualsiasi tipo di supporto digitale (attuale e futuro!) un documento XML può essere visualizzato su qualsiasi dispositivo di output File XML <Title> Titolo </title> <p>paragarafo.. <p>paragrafo On-line WWW Carta CD-ROM DBMS NATIVI O RELAZIONALI DOCUMENT MANAGEMENT SYSTEMS XML: caratteristiche XML può essere usato per la rappresentazione di dati strutturati (archivi, tabelle, matrici) in alternativa ai formati di database tradizionali XML può essere usato come formato di scambio dati in applicazioni middleware XML: caratteristiche XML è uno standard di pubblico dominio ogni software conforme XML è in grado di gestire dati in formato XML sono disponibili numerose applicazioni e librerie open source per la manipolazione di dati in formato XML basate su diversi linguaggi di programmazione (Java, C, Python, Perl ) una applicazione in grado di elaborare dati in formato XML viene definita elaboratore XML
3 XML: Vantaggi XML permette agli sviluppatori di creare facilmente strutture ad-hoc per contenere informazione strutturata. I parser XML sono diffusi su tutte le piattaforme e free. Gli sviluppatori possono appoggiarsi a questi per decodificare e validare le strutture XML, limitandosi poi a gestire solo l'informazione contenuta usando API specifiche (DOM, SAX). XML è completamente text-based, quindi leggibile anche dagli esseri umani e facilmente editabile anche a mano. Supporta UNICODE, quindi è adatto a ogni tipo di scrittura. Essendo dati testuali strutturati esattamente come HTML, i dati XML possono essere trasportati usando il protocollo HTTP anche attraverso firewall (SOAP). XML: Svantaggi I documenti XML, a causa delle struttura testuale e dei tag, tendono ad essere molto più ingombranti di quelli in formato binario, quindi la loro trasmissione sulla rete non è ottimale. I parser XML non sono veloci come quelli scritti ad-hoc per formati specifici, soprattutto se binari. Il concetto di metalinguaggio XML è un metalinguaggio XML definisce un insieme regole (meta)sintattiche, attraverso le quali è possibile descrivere formalmente un linguaggio di markup, detto applicazione XML ogni applicazione XML eredita un insieme di caratteristiche sintattiche comuni ogni applicazione XML a sua volta definisce una sintassi formale particolare ogni applicazione XML è dotata di una semantica specificata in modo non formale Il concetto di metalinguaggio metasintassi XML metalinguaggio linguaggi TEI XHTML DocBook sintassi documenti Il concetto di tipo di documento Il concetto di tipo di documento La definizione di una applicazione XML si basa su un determinato tipo di documento Un tipo di documento descrive le caratteristiche di una classe di documenti strutturalmente omogenei Il tipo di documento è il fondamento della sintassi e della semantica di una applicazione XML Un tipo di documento descrive la struttura della classe di documenti cui si riferisce come un albero ordinato di componenti testuali o elementi Un tipo di documento è caratterizzato da un insieme di elementi strutturali le relazioni di dipendenza tra gli elementi le relazioni di ricorrenza degli elementi
4 La struttura gerarchica ordinata testo corpo??? frontespizio introduzione + capitolo appendice + titolo +? + titolo + paragrafo titolo paragrafo paragrafo titolo autore * * PCDATA enfasi citazione PCDATA enfasi citazione Il concetto di tipo di documento La struttura ad albero del tipo di documento determina la sintassi del linguaggio di markup XML La sintassi di un tipo di documento deve essere espressa implicitamente (mediante il mark-up) in ogni documento XML La definizione formale della sintassi di un tipo di documento XML può essere espressa esplicitamente in una Document Type Definition (DTD) o un XML Schema La Document Type Definition Una DTD è costituita da un elenco di dichiarazioni (markup declaration) che descrivono la struttura del documento Le dichiarazioni di una DTD definiscono: gli elementi strutturali (element) di un documento mediante un identificatore generico il modello di contenuto di ogni elemento (content model) ovvero gli elementi che contiene ed i loro rapporti (un elemento può essere vuoto) la lista degli attributi associati a ciascun elemento e il loro tipo La Document Type Definition XML non fornisce alcun modo per definire la semantica di una DTD ogni elemento è definito esclusivamente interamente dal suo nome e dal suo contenuto ogni altra specificazione semantica va fornita mediante documentazione in lingua naturale o in altre notazioni logiche Strutture XML: gli elementi I componenti strutturali di un documento sono denominati elementi (element) Ogni nodo dell albero del tipo di documento è un (tipo di) elemento Ogni (tipo di) elemento è dotato di un nome (detto identificatore generico) che lo identifica Strutture XML: gli elementi Esiste uno e uno solo elemento, detto elemento radice (corrispondente al nodo radice dell albero), che non è contenuto da nessun altro e che contiene direttamente o indirettamente tutti gli altri Ogni elemento, escluso l elemento radice, deve essere contenuto da un solo elemento (elemento padre) e può contenere altri sotto-elementi (elementi figli) e/o stringhe di caratteri Esiste un sottoinsieme di elementi che non contengono altri elementi e che possono essere vuoti contenere esclusivamente stringhe di caratteri
5 Strutture XML: gli attributi Strutture XML: gli attributi A ogni elemento possono essere associati uno o più attributi (attribute) che ne specificano ulteriori caratteristiche o proprietà non strutturali. Ad esempio: il tipo rispetto a una data tassonomia la lingua del suo contenuto testuale un identificatore univoco un numero di ordine etc. Gli attributi XML hanno sono caratterizzati da un nome che li identifica un valore Il valore di un attributo può avere un tipo esplicitato nella DTD Se un documento XML è solo ben formato, tutti i valori degli attributi sono di tipo CDATA Strutture XML: le entità Un documento XML (in quanto oggetto digitale) ha una struttura fisica Dal punto di vista fisico un documento è composto da unità di archiviazione che sono denominate entità (entity) Esiste almeno una entità in ogni documento XML: la document entity, che contiene il documento stesso Strutture XML: le entità In generale una entità è qualsiasi sequenza di byte considerata indipendentemente dalla sua funzione strutturale un singolo carattere UNICODE una stringa di testo XML (caratteri e mark-up) un intero file XML esterno un intero file non XML (es. immagini digitali, etc.) È possibile ad esempio rappresentare nel contenuto di un documento caratteri non presenti sulla tastiera mediante entità Strutture XML: le entità Un Documento XML <?xml version="1.0" encoding="utf-8"?> Le entità vanno definite con apposite dichiarazioni nella DTD Una entità ha un nome e un contenuto In un documento l inserimento di una entità avviene mediante un riferimento a entità che ne specifica il nome Un processore XML sostituirà automaticamente il contenuto dell entità al posto del riferimento <?xml-stylesheet type="text/xsl" href="c:\documenti\collection.xsl"?> <!DOCTYPE collection SYSTEM "C:\DocumentiCollection.dtd"> <collection xmlns=" <CD number="1"> <song album="santana1" track ="11"> <title>african Bamba</title> <length>4:42</length > </song> <song album="santana1" track ="9"> <artist>santana & Mana</artist> <title>corazon Espinado</title> <comment> <!CDATA[First Hit from the Album]]> </comment> <length>4:36</length > </song> <album ID="santana1"> <artist>santana</artist> <title>supernatural</title> <year>1999</year> </album> </CD></collection>
6 Elementi Gli elementi sono alla base della strutturazione dei documenti XML. Un elemento è un frammento di dati, limitato ed indentificato (tramite un nome) da un tag. Tag di apertura Elemento artist Elemento title Tag di chiusura <album> <artist> Santana </artist> <title> </album > Supernatural </title > Elemento album Elementi: Regole I nomi degli elementi sono case-sensitive. Ogni elemento aperto deve essere chiuso entro la fine del documento. Gli elementi possono essere nidificati, e in tal caso vanno chiusi esattamente nell ordine inverso a quello di apertura. Un documento XML deve avere un unico elemento radice, in cui tutti gli altri sono nidificati Elementi: Sintassi Il tag di apertura di un elemento ha la forma seguente: <nome attributi> nome è il nome dell elemento. attributi è una lista opzionale di attributi per l elemento. Il tag di chiusura corrispondente ha la forma seguente: </nome> nome è lo stesso identificatore usato nell apertura. Alcuni elementi possono essere privi di contenuto; in questo caso è possibile omettere il tag di chiusura scrivendo quello di apertura come segue (empty tag): <nome attributi /> Elementi: Gerarchia Gli elementi, nidificandosi, creano la struttura ad albero tipica dei documenti XML. All interno di questa struttura si definiscono alcuni rapporti di parentela utili per individuare gli elementi: <a> <b> Testo </b> <c> <d/> </c> </a> a è il nodo radice b e c sono figli di a, il testo è figlio di b, d è figlio di c c è il padre di d, b è il padre del testo, a è il padre di b e c b e c sono fratelli b, c, d e il testosono discendenti di a, d è un discendente di c, il testo è un discendente di b a è un predecessore di b, c, d e del testo, b è un predecessore del testo, c è un predecessore di d. Attributi Gli attributi permettono di specificare proprietà degli elementi come coppie nome-valore. Sono usati per definire proprietà che non possono o non si vogliono inserire nel contenuto dell elemento. Vengono specificati all interno dei tag di apertura degli elementi. Al contrario degli elementi, per gli attributi l ordine di presentazione non è significativo. Namespaces I namespaces servono a dichiarare l appartenenza degli elementi a particolari linguaggi XML. Sono particolarmente utili se più linguaggi vengono mescolati nello stesso documento, con possibili di collisioni tra nomi. Ogni elemento può contenere dichiarazioni di namespaces, la cui validità è estesa a tutto il contenuto dell elemento stesso. La dichiarazione del namespace viene inserita nei tag di apertura, in modo simile a un attributo.
7 Entità I documenti XML sono costituiti da una serie di entità. Il documento stesso è una entità. Tutte le entità, tranne il documento e il DTD esterno, hanno un nome. Le entità parsed sono quelle più comuni, e il parser XML le sostituisce sempre col loro testo di definizione. Le entità unparsed possono contenere qualsiasi tipo di dato, anche non testuale. Il parser XML non le analizza, e sono accessibili solo usando le notazioni. XML: documenti ben formati e validi Ogni documento XML deve essere ben formato Un documento è ben formato se la sua struttura è implicita nel markup e se rispetta i vincoli di buona formazione indicati nelle specifiche Un documento XML ben formato non richiede la presenza di una DTD XML: documenti ben formati e validi Un documento XML può essere valido Un documento è valido se si riferisce a una DTD esplicita mediante una Doctype declaration ne soddisfa i vincoli sintattici (nome, sequenza occorrenze ed attributi degli elementi) Il controllo di validità viene effettuato da un apposito programma detto parser Esistono parser validanti e non validanti. Questi ultimi possono ignorare tutto l eventuale DTD, tranne le dichiarazioni di entità generali. La parte del documento XML all interno del nodo radice viene definita document instance Le Document Type Definition (DTD) Sono utilizzate per validare i documenti XML. E possibile infatti definire una speciale grammatica che dichiara: tutti gli elementi utilizzabili; quali elementi possono essere nidificati in altri, in che ordine e con quante occorrenze; quali attributi sono applicabili a ciascun elemento, se sono obbligatori e quali sono i loro valori predefiniti. Si possono inoltre definire entità e notazioni poi utilizzabili all interno del documento XML o del DTD stesso. Un DTD Un DTD <?xml version= "1.0" encoding="utf-8"?> <!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" " %HTMLlat1; <!ELEMENT artist (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ELEMENT comment (#PCDATA)> <!ELEMENT length (#PCDATA)> <!ELEMENT album (artist, title, year?, copyright?)> <!ATTLIST album ID ID #REQUIRED media CDATA #IMPLIED "CompactDisc > <!ELEMENT song (artist?, title, year?, comment?, length)> <!ATTLIST song genre (Rock Pop Classical Jazz Dance Tecno) #IMPLIED ID ID #IMPLIED album IDREF #IMPLIED track CDATA #IMPLIED > <!ELEMENT CD (album song)+> <!ATTLIST CD number CDATA #REQUIRED owner CDATA #FIXED Giuseppe Della Penna" > <!ELEMENT collection (CD+)> Continua... Continua...
8 Come si crea un documento XML Un documento XML contiene il mark-up (sottoforma di coppie di tag) che rappresenta linearmente la struttura gerarchica degli elementi, i loro eventuali attributi, e i caratteri del testo L inserimento di mark-up e caratteri deve rispettare i vincoli di buona formazione indicati nelle specifiche XML Un documento valido deve rispettare anche i vincoli sintattici definiti nella DTD Aspetti di sintassi generale Un documento XML è una stringa di caratteri UNICODE in codifica UTF -8 o UTF-16 I nomi di elementi, attributi e entità sono sensibili alla differenza tra maiuscolo e minuscolo Il mark-up è separato dal contenuto testuale mediante caratteri speciali: < > & I caratteri speciali non possono comparire come contenuto testuale e devono essere eventualmente sostituiti mediante i riferimenti a entità < > & Vincoli di buona formazione La forma di un documento XML Esiste un solo elemento radice Tutti gli elementi non vuoti devono presentare sia il tag iniziale sia il tag finale Tutti gli elementi devono essere correttamente annidati Tutti i valori di attributo devono essere racchiusi tra apici doppi o singoli Ogni documento XML inizia con un prologo che contiene: una XML declaration eventualmente una Doctype declaration (la dichiarazione della DTD a cui il documento si riferisce) eventualmente una serie di processing instruction XML declaration Doctype declaration Forme di XML declaration: <?xml version="1.0"?> <?xml version="1.0 encoding= UTF-8?> Se se le dichiarazioni della DTD sono inserite all interno della entità documento è obbligatoria una dichiarazione di documento autonomo: <?xml version="1.0" standalone="yes"?> Se la definizione della DTD si trova in una entità esterna <!DOCTYPE nome_dtd SYSTEM sys-id > <!DOCTYPE Antologia SYSTEM c:\sgml\dtd\antologia.dtd > Se la DTD è dotata di un identificatore pubblico <!DOCTYPE nome_dtd PUBLIC pub-id sys-id > <!DOCTYPE TEI.2 PUBLIC -//TEI P4//DTD Main Document Type//EN tei2.dtd > n. b. il nome della DTD corrisponde al nome del suo elemento radice
9 Doctype declaration Se la definizione della DTD si trova nella stessa entità del document instance essa va direttamente della Doctype declaration in una sezione denominata internal DTD subset <!DOCTYPE nome_dtd [ dichiarazione 1 dichiarazione 2 dichiarazione 3...] > Internal DTD subset La codifica degli elementi Nel documento ogni elemento non vuoto (contenente cioè altri elementi o caratteri) deve essere marcato da un tag iniziale e da un tag finale Ogni tag è costituito da caratteri delimitatori e dal nome dell'elemento La codifica degli elementi La codifica degli elementi Sintassi di un elemento Del. Finale Start tag Del. Iniziale End tag <nome>contenuto dell elemento</nome> Del. Iniziale Start tag Del. Finale End tag <text> <div1> <p>subito, con le prime parole che le rivolse, volle avvisarla che non intendeva compromettersi in una relazione troppo seria </p> <p>la sua famiglia? Una sola sorella non ingombrante né fisicamente né moralmente, piccola e pallida, di qualche anno più giovane di lui </p> </div1> </text> La codifica degli elementi La codifica degli elementi La relazione lineare tra i tag rappresenta la relazione gerarchica tra gli elementi Per ogni elemento, se il suo tag iniziale è nel contenuto di un elemento P allora il suo tag finale deve essere nel contenuto del medesimo elemento P Detto altrimenti le coppie di tag devono annidarsi correttamene e mai sovrapporsi SBAGLIATO!!! <p>subito, con le prime parole che le rivolse, volle avvisarla che non intendeva compromettersi in <emph>una relazione troppo seria </p> <p>la sua famiglia?</emph>una sola sorella non ingombrante né fisicamente né moralmente, piccola e pallida, di qualche anno più giovane di lui </p>
10 La codifica degli elementi La codifica degli elementi CORRETTO!!! <p>subito, con le prime parole che le rivolse, volle avvisarla che non intendeva compromettersi in <emph>una relazione troppo seria </emph> </p> <p> <emph>la sua famiglia?</emph> Una sola sorella non ingombrante né fisicamente né moralmente, piccola e pallida, di qualche anno più giovane di lui </p> Gli elementi vuoti o sono rappresentati da entrambi i tag <nome_elemento> </nome_elemento> o assumono la seguente forma <nome_elemento/> Esempio: <img src= foo.gif /> La codifica degli attributi La codifica degli attributi Ogni elemento XML può avere uno o più attributi Un attributo ha un nome e un valore, che può assumere diverse tipologie Gli attributi devono essere associati agli elementi all'interno del tag iniziale dopo l identificatore <nome_elemento nome_attributo = "valore"> contenuto </nome_elemento> Altri eventuali attributi vanno collocati dopo il primo separati da uno o più spazi Non possono esservi più istanze dello stesso attributo per un elemento La codifica degli attributi <text resp= Italo Svevo n= Senilità > <div n= 1 > <p id= C1P1 >Subito, con le prime parole che le rivolse, volle avvisarla che non intendeva compromettersi in una relazione troppo seria </p> <p id= C1P2 >La sua famiglia? Una sola sorella non ingombrante né fisicamente né moralmente, piccola e pallida, di qualche anno più giovane di lui </p> <pb n= 5 /> Il riferimento alle entità L inclusione di una entità all interno di un documento SGML si effettua mediante un riferimento a entità (entity reference) La sintassi di un riferimento, valida sia per entità esterne sia interne, è la seguente: Delimitatore di apertura &nome_entità; Delimitatore di chiusura
11 Il riferimento alle entità Validazione In questo esempio i caratteri accentati sono stati sostituiti da riferimenti a entità carattere <p>la sua famiglia? Una sola sorella non ingombrante né fisicamente né moralmente, piccola e pallida, di qualche anno più giovane di lui </p> Quando un documento XML viene controllato sintatticamente da un parser. Questo processo viene chiamato validazione. Documento XML Valido Schemi e DTD Un documento XML si dice valido se conforme alle specifiche del DTD associato o dello schema. Un documento non valido non cessa di essere un documento XML. Gli Schemi XML sono nati con lo stesso scopo dei DTD: Specificare la struttura dei documenti. Modelli di contenuto, elementi radice, Specificare il tipo dei dati utilizzabili all interno di elementi e attributi. Nei DTD, il tipo di dato per gli elementi poteva essere solo testo e/o un particolare modello di contenuto. Perché gli Schemi? I DTD usano una sintassi non XML. Perché costringere gli sviluppatori ad imparare le regole di un nuovo linguaggio? Perché scrivere parser XML che debbano leggere anche formati non XML per la validazione? I DTD hanno pochi tipi di dato. Il controllo sui domini dei dati è parte integrante del controllo di un documento ben formato. Esistono tipi di dato molto noti che si vorrebbero poter sfruttare (interi, reali, data/ora, ecc.). Novità negli Schemi Sono supportati più tipi di dato (44 contro 10) e la possibilità di definirne di nuovi o derivarne altri da tipi già esistenti applicando regole e restrizioni. Sono presenti nuovi modelli di contenuto, tra cui l insieme ( tutti questi elementi, in qualsiasi ordine ). Si possono definire più campi chiave diversi. Si possono dichiarare classi di equivalenza tra elementi.
12 Vantaggi degli Schemi Generalmente, le applicazioni che devono basarsi su documenti o dati provenienti dall esterno sprecano una grossa quantità di codice per controllarne la validità. Più complessi sono i dati, più il codice sarà laborioso da scrivere. Se i dati sono strutturati secondo un preciso Schema XML, l applicazione potrà avvalersi delle funzionalità di un qualsiasi validatore di schemi in commercio! Cosa Forniscono gli Schemi Un modello per i dati. Descrivono cioè l organizzazione e i tipi dell informazione. Un contratto. Cioè un protocollo molto specifico per lo scambio di informazioni. Un insieme di Metadati. Lo schema contiene molte informazioni valide per l interpretazione dei dati strutturati sulla sua base. Cosa Forniscono gli Schemi Oltre che per validare i documenti istanza, si possono immaginare molti altri impieghi per gli schemi: Creazione automatica di interfacce per la compilazione dei documenti XML associati. Creazione di interfacce grafiche per la rappresentazione dei dati. Uso degli schemi per definire strutture dati e protocolli per la loro manipolazione e trasmissione. Un DTD di esempio <!ELEMENT artist (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ELEMENT comment (#PCDATA)> <!ELEMENT length(#pcdata)> <!ELEMENT song (artist?, title, year?, comment?, length)> <!ELEMENT CDsong+> Gli elementi blu fanno parte della sintassi DTD. Gli elementi neri fanno parte della nuova sintassi che stiamo definendo. Poiché i DTD sono stati creati prima dei namespaces, non esiste questo concetto nei DTD e gli elementi delle due sintassi sono mescolati. e lo Schema Corrispondente <xs:element name="artist" type="xs:string"/> <xs:element name="comment" type="xs:string"/> <xs:element name="length" type="xs:string "/> <xs:element name="title" type="xs:string"/> <xs:element name="year" type="xs:string"/> <xs:element name="song"> <xs:complextype> <xs:sequence> <xs:element ref="artist" minoccurs ="0"/> <xs:element ref="title"/> <xs:element ref="year" minoccurs ="0"/> <xs:element ref="comment" minoccurs ="0"/> <xs:element ref="length "/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="cd"> <xs:complextype> <xs:sequence> <xs:element ref="song" maxoccurs ="unbounded "/> </xs:sequence> </xs:complextype> </xs:element> <!ELEMENT artist (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ELEMENT comment (#PCDATA)> <!ELEMENT length(#pcdata)> <!ELEMENT song (artist?, title, year?, comment?, length) > <!ELEMENT CDsong+> Questo Schema definisce lo stesso linguaggio del DTD visto in precedenza. I frammenti del DTD sono affiancati alla parte di schema che li sostituisce. Validare un documento XML: La validazione è un processo, il controllo sintattico è un altro (ben formato e NON ben formato) Un documento XML può essere non valido, ma rimanere ugualmente well-formatted. N.B.:tutti i documenti XML (in quanto documenti XML) sono per forza ben formati ma niente ci dice se sono conformi al proprio DTD (se lo possiedono).
13 Well-formatted Riprendendo l esempio: Un file XML è anche normalmente well-formatted, cioè ben formattato e quindi rispetta le regole di XML Tutti i tag di apertura e di chiusura corrispondono. I tag vuoti utilizzano una sintassi XML speciale. Tutti i valori degli attributi sono racchiusi tra virgolette. Tutte le entità sono dichiarate. FILE DTD libro.dtd: <?xml encoding="utf-8"?> <!ELEMENT libro (prefazione?,indice,capitolo+)> <!ATTLIST libro titolo CDATA #REQUIRED> <!ATTLIST libro autore CDATA #REQUIRED> <!ATTLIST libro editore CDATA #REQUIRED> <!ELEMENT prefazione (#PCDATA)> <!ATTLIST prefazione autore CDATA #IMPLIED> <!ELEMENT indice (titolo+ )> <!ELEMENT capitolo (#PCDATA)> <!ELEMENT titolo (#PCDATA)> FILE XML libro.xml: <?xml version="1.0" encoding= "UTF- 8"?> <!DOCTYPE libro SYSTEM "libro.dtd"> <libro titolo="1984" autore="g.orwell" editore= "Mondadori"> <prefazione autore="bill Gates">Questo libro non dice il vero. Orwell ha sbagliato...</prefazione> <indice> <titolo>parte prima</titolo> <titolo>parte seconda</titolo> </indice> <capitolo>1. Era una notte buia e tempestosa...</capitolo> <capitolo>2. Testo del secondo capitolo...</capitolo> <capitolo>3. Testo del terzo capitolo...</capitolo> </libro> XML non è sempre corretto Gli errori dei parser: Le specifiche del W3C indicano che i parser di XML possono fermarsi al primo errore di analisi del documento(non tollerano errori); Motivi: Rendere i parser più facili da scrivere; I documenti XML sono compatibili e indipendenti dal tipo di parser. Fatal Error: grave violazione di una regola della specifica; il processore notifica all applicazione l errore rilevato e può o meno continuare l analisi del documento per cercare altri errori; Non deve però continuare a fornire il contenuto del documento dell applicazione. Esempio di FATAL ERROR: Impossibile visualizzare la pagina XML Impossibile visualizzare l'input XML tramite il foglio di stile XSL. Correggere l'errore, quindi fare clic su Aggiorna, oppure riprovare in un momento successivo. Il tag finale "item2" non corrisponde al tag iniziale "item1". Errore durante l'elaborazione della risorsa <indice> <capitolo>1. Era una notte buia e tempestosa... </indice> </capitolo> Error: violazione di una regola della specifica; Il processore notifica all applicazione l errore rilevato e continua sia ad analizzare il documento, sia a fornire il contenuto all applicazione, che deciderà il comportamento rispetto all errore( ignorarlo, cercare di correggerlo, etc..)
14 Esempio di ERROR: <capitolo>1. Era una notte buia e tempestosa...</capitolo> <bibliografia> libro1 </bibliografia> I parser L errore è dato da <bibliografia> perché non è definito come elemento di libro nel DTD; Ma se ci saranno altre righe di comando con altri errori, verranno riportati di seguito, senza fermarsi. Che cosa vuol dire parsing e cosa sono i parser? Per poter usare un file XML occorre farne il "parsing", ovvero prendere un documento Xml e scandirlo, estraendone tutte le parti che lo compongono. Un parser XML è un modulo software che si colloca tra l'applicazione e il documento XML. Esso permette all'applicazione di accedere al contenuto e alla struttura del documento XML. Esistono due tipi di parser: validanti e non validanti. Parsing XML Goal: tradurre un file XML nelle strutture dati utilizzabili nei linguaggi di programmazione Strategie possibili Fare il parsing a mano con alcune librerie riutilizzabili Fare il parsing mettendo I dati in una struttura generica ad albero Fare il parsing come una sequenza di eventi Fare il parsing a mano Rimangono Vantaggi Controllo completo Buono per semplici cose non ha bisogno di pacchetti software ausiliari Svantaggi Deve essere scritto tutto sempre Noioso e facile all errore Diventa difficile quando si usa uno schema o una DTD per validare I parser XML si dividono in due categorie per quel che riguarda i modelli di elaborazione Parser DOM (Documento Object Model): è un modello gerarchico, che fornisce accesso all'intero documento DOPO il completamento del parsing. DOM è una serie di raccomandazioni W3C implementate in varia maniera su tutte le architetture Parser SAX (Simple API for XML): è un modello ad eventi, attraverso il quale è possibile associare funzioni callback ai vari elementi significativi del documento XML. SAX 2.0 non è uno standard, ma una proposta originariamente per JAVA poi adottata su molte architetture (
15 Fare il parsing in una generica struttura ad albero (parser DOM) Vantaggi Esiste un linguaggio standard neutro: DOM (Document Object Model) Imparare a fare il DOM per un linguaggio rende facile impararlo per un altro Si deve scrivere meno codice per avere XML in qualcosa che si vuole utilizzare nei programmi Svantaggi Non-intuitive API Non e a costo di lavoro /tempo o Fare il parsing come una sequenza di eventi (parser SAX) Vantaggi SAX richiede pochissima memoria d'uso: il documento non è mai tutto in memoria contemporaneamente. E' ideale per documenti MOLTO grandi. SAX è velocissimo: non ha praticamente overhead di parsing. SAX è ideale per cercare velocemente un'informazione specifica all'interno di un documento XML, poiché lo si può fermare appena l'ha trovata. Svantaggi SAX non può essere usato per cercare e ricercare informazioni su un documento XML (navigare sulla struttura del documento) SAX non può essere usato per modificare o aggiornare la struttura del documento XML (aggiungere o togliere nodi). SAX non è implementato dai browser, ma solo come libreria di linguaggi server-side (o in Java anche come applet) Elaborazione DOM Il Document Object Model è un interfaccia di programmazione (API) per documenti sia HTML sia XML. Definisce la struttura logica dei documenti ed il modo in cui si accede e si manipola un documento. Utilizzando DOM i programmatori possono costruire documenti, navigare attraverso la loro struttura, e aggiungere, modificare o cancellare elementi. Ogni componente di un documento HTML o XML può essere letto, modificato, cancellato o aggiunto utilizzando il Document Object Model. Definizione di DOM Document Object Model (DOM) Il DOM è un Application Programming Interface (API) per documenti XML (e HTML). Il DOM definisce una modalità di rappresentazione dei documenti XML sotto forma di strutture dati accessibili da un linguaggio di programmazione, e le operazioni per la loro manipolazione. Standard W3C Strumenti del DOM Usando le API del DOM un programmatore può creare documenti XML, navigarne la struttura, aggiungere, eliminare o modificare tutte le componenti (elementi, commenti, testo ) Ovviamente il DOM fornisce un interfaccia generica implementabile in vari linguaggi di programmazione. Tuttavia, la specifica è esposta usando l IDL definito nella Corba 2.2 specification. La vista del DOM su XML <song track="9"> <artist> <name>santana</name> </artist> <title>corazon Espinado</title> <comment>first Hit from the Album</comment> <length> <minutes>4</minutes> <seconds>36</seconds> </length> </song> <song> <artist> <title> <comment> <length> <name> Santana Corazon Espinado First Hit from the Album track=9 <minutes> <seconds> 4 36
16 La vista del DOM su XML Il DOM vede i documenti come una struttura ad albero. In realtà, la struttura è una foresta perché può anche contenere più alberi distinti. Il DOM definisce solo la sua vista logica sui dati: non specifica come debbano essere effettivamente strutturati in memoria. Tuttavia, l utente che accede al documento tramite l interfaccia DOM, lo vedrà effettivamente come un albero. I Modelli a Oggetti Il DOM, come modello ad oggetti, definisce: Gli oggetti usati per rappresentare e manipolare un documento XML. Le interfacce usate per interagire con gli oggetti definiti. La semantica richiesta dagli oggetti e dalle interfacce definite. Le relazioni e interazioni tra le interfacce e gli oggetti definiti. Oggetti del DOM L oggetto principale di DOM è DOMNode, che però è una interfaccia (cioè viene solo usata per crearne classi) Il core del DOM definisce alcune classi fondamentali per i documenti HTML e XML, e ne specifica proprietà e metodi. Glli oggetti principali definiti nel DOM sono: DOMDocument : il documento di cui si sta parlando DOMElement: ogni singolo elemento del documento DOMAttr: ogni singolo attributo del documento DOMText: ogni singolo nodo di testo del documento DOMComment, DOMProcessingInstruction, DOMCDATASection, DOMDocumentType, ecc. Gli oggetti Node: la base del DOM Il DOM presenta i documenti come una struttura gerarchica di oggetti di tipo Node. Ciascun oggetto nel documento in realtà implementa una interfaccia più specifica per il suo tipo, che è sempre derivata da Node. I Node possono avere zero o più nodi figli. L interfaccia di Node include le operazioni di base eseguibili su ogni tipo di oggetto (indipendentemente dal suo tipo specifico) in un documento XML. Tipi di Nodi Ci sono molti tipi di nodi e sottoclassi di nodi Attr, CDATASection, Comment, Document, DocumentFragment, DocumentType, Element, Entity, EntityReference, Notation, ProcessingInstruction, Text EntityReference Name entitry referenced Ognuna di queste ha associato uno tipo, valore o Notation Notation name 1 nome. ProcessingInstruction target Entire string 7 Nella slide seguente vediamo gli standard Text #text Actual text 3 Attr Comment Document Element Entity Node CDATASection DocumentFragment DocumentType nodename () nodevalue Attributes nodetype Attr name () Value of attribute () 2 #cdata-section #comment #document #document - fragment Doc type name Tag name Entity name CDATA cotnent Comment content Null NamedNodeMap
17 Fare il parsing come una sequenza di eventi: SAX Nasce nel Dicembre 1997 Peter Murray-Rust. (XML browser JUMBO) Tim Bray (Lark XML parser) David Megginson (Microstar's Ælfred XML parser) XML-DEV mailing list SAX 1.0 rilasciato nel 1998 (attuale SAX 2.0) Lo sviluppo continua ospitato da SourceForge Licenza GPL Introduzione a SAX Simple API for XML SAX, o Simple API for XML, in origine è stata sviluppata come API alternativa per accedere ad XML in Java. A partire dalla versione 2, esistono versioni di SAX utilizzabili anche in altri ambienti di programmazione (ad esempio nella libreria msxml di Microsoft). La homepage del progetto SAX (SourceForge) è Eventi SAX SAX basa il suo sistema di parsing sugli eventi. Mentre il parser SAX legge (e valida) il documento XML, il codice viene avvisato di una serie di eventi fondamentali, quali L inizio e la fine del documento; L apertura e la chiusura di un elemento; L apertura e la chiusura di una sezione CDATA; L inizio e la fine dello scope di ogni namespace; La lettura di caratteri, Processing Instructions, spazi non significativi. Utilità e Limiti di SAX Il parser Sax non costruisce documenti XML, né conserva alcuna struttura in memoria alla fine del parsing. Se il programmatore vuole operare sul documento letto, dovrà scrivere manualmente tutto il codice, basandosi sui dati passati con gli eventi SAX. In generale SAX necessita di molto più codice di DOM, ma è molto più leggero. Il programmatore può implementare solo quello che è strettamente utile, e non è necessario allocare il documento in memoria. SAX e DOM Anche se si ritenesse il DOM come la scelta migliore per la propria applicazione Java, capire SAX è importante per vari motivi: Il sistema di gestione degli errori del DOM è ereditato da SAX. Essendo SAX la prima API XML per Java, resta alla base anche dell implementazione DOM. Le librerie Java usano SAX per leggere un file XML e creare il DOM corrispondente! Events (SAX) Vengono notificati dal parser al client i singoli eventi che contraddistinguono il documento XML Events vs. Trees Concetti base Tree (DOM) Carica in memoria la struttura ad albero del documento XML. Tale struttura è accessibile da parte del client.
18 Tree-based API Event-based API Favorevoli Navigazione del documento XML Visione d insieme del documento Facilità di gestione della struttura dei documenti: aggiunta, eliminazione, spostamento dei nodi Sfavorevoli Notevole occupazione di memoria Prestazioni dipendenti dalla dimensione del documento Prima di iniziare ad utilizzare le informazione del documento il parser deve completare il caricamento in memoria Favorevoli Poche risorse utilizzate Uniformità di prestazioni Veloce ricerca di un elemento in un ampio documento Sfavorevoli Più difficile gestione della struttura del documento; l eventuale creazione di un albero è a carico del client. Rappresentazione grafica delle due tipologie DOM e SAX: differenze DOM & di SAX approccio DOM Approccio del Modello Struttura ad albero API per navigare l albero SAX Approccio ad Eventi Scansione dell intero file Ogni elemento informa l applicazione con un Callback PRO fornisce all applicazione un modello ricco del documento mantiene una rappresentazione completa e durevole in memoria Molto leggero Implementazione delle sole funzionalità necessarie CONTRO Richiede un occupazione di memoria per tutto il documento Interfaccia troppo semplice quindi più codice Nessun supporto per operare sul documento Esempio eventi Gestione dei NameSpace Documento XML <?xml version="1.0"?> <doc> <para>hello, world!</para> </doc> Eventi Notificati start document start element: doc start element: para characters: Hello, world! end element: para end element: doc end document Il nome di elementi e attributi e composto da due parti : URI e LocalName Puo essere gestito un Namespace, un Namespaceprefixes oppure entrambi
19 Vediamo un esempio (Caso Default per SAX2) <?xml version="1.0"?> <h:hello xmlns:h=" id="a1" h:person="david"/> Se namespaces è vero e namespace-prefixes è falso (the default), allora a SAX2 XML reader interpreterà come segue un elemento con Namespace URI " e il localname "hello"; un attributo senza Namespace URI (empty string) and the qname (and usually localname) "id"; and Un attributo con il Namespace URI " and e il localname "person". Riferimenti Specifica di XML dal W3C Apache XML Project (xalan, xerces) Java JAXP Tutorial index.html SAX Specifica DOM level 1 dal W3C Esempi di parser implementati in Java IL PARSER XERCES XML4J: La tecnologia alla base del parser XML di IBM è stata donata all'apache Group per lo sviluppo del parser Xerces. L'ultima versione di XML4J attualmente disponibile, la 3.0.1, è derivata dalla release di Xerces. ( Xerces: è un parser sviluppato dal team di Apache all'interno dell'apache XML Project. E' basato sui sorgenti di XML4J, implementa DOM (livello 1 e 2) e SAX (versione 2) e ha un supporto preliminare per gli schema XML. E' disponibile inoltre una versione in C++ con i wrapper Perl e COM. XP: XP è un parser non validante sviluppato da James Clark ( alle specifiche 1.0 di XML. Oltre a una normale API ad alto livello fornisce anche una API a basso livello per sviluppare nuovi parser. XP è sviluppato principalmente per ottenere alte prestazioni. Java Standard Extension for XML: Poiché XML e Java di Sun Microsystem sono un binomio molto collaudato, Sun ha prodotto un proprio package Java per XML (java.sun.com/products/xml/) Si tratta di un prodotto free sofware (GPL) scritto in Java E prodotto dal team di Apache all'interno dell'apache XML Project. E un parser validande tra i più robusti ed affidabili. Come funziona XERCES Modalità DOM (Document Object Model) Modalità SAX (Simple API for XML)
20 Installazione Scaricate il file xerces-j-bin.x.y.z.zip (dove X_Y_Z rappresenta l'ultima versione disponibile) a partire dalla pagina di download e decomprimetelo. La struttura delle directory creata contiene tutte le classi necessarie e la documentazione. Impostate la variabile CLASSPATH del vostro sistema in modo da includere i files xercesimpl.jar, xercessamples.jar,xmlais.jar,xmlparserapis.jar,resolver.jar posti nella directory di xerces.
Creare documenti XML. La natura epistemologica della codifica. Perché comprare XML? La struttura gerarchica ordinata. Riassumendo le componenti
Lez. 7 Creare documenti XML La codifica deve raggiungere 2 traguardi: Accessibilità tecnica Permanenza a lungo termine 05/03/12 Perché comprare XML La natura epistemologica della codifica HTML Descrive
DettagliXML. Parte VI - Introduzione e nozioni fondamentali di sintassi. XML: Extensible Markup Language:
XML Parte VI - Introduzione e nozioni fondamentali di sintassi XML: cosa è XML: Extensible Markup Language: è un linguaggio che consente la rappresentazione di documenti e dati strutturati su supporto
DettagliLa sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:
XML: DTD Da un punto di vista cronologico, il primo approccio per la definizione di grammatiche per documenti XML è rappresentato dai Document Type Definition (DTD). Un DTD è un documento che descrive
DettagliG I O R D A N I A L E S S A N D R A I T T S E R A L E G. M A R C O N I
Introduzione ad XML G I O R D A N I A L E S S A N D R A I T T S E R A L E G. M A R C O N I XML XML (Extensible Markup Language) è un insieme standard di regole sintattiche per modellare la struttura di
DettagliAPPENDICE C extensible Markup Language
APPENDICE C extensible Markup Language C.1 extensible Markup Language, concetti di base XML è un dialetto di SGML progettato per essere facilmente implementabile ed interoperabile con i suoi due predecessori
Dettagliextensible Markup Language
XML a.s. 2010-2011 extensible Markup Language XML è un meta-linguaggio per definire la struttura di documenti e dati non è un linguaggio di programmazione un documento XML è un file di testo che contiene
DettagliXML: sintassi. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 1
XML: sintassi Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 1 Cosa è XML 1 XML (Extensible Markup Language ) è un linguaggio di markup È stato progettato per lo scambio e la interusabilità di documenti
DettagliIntroduzione alla codifica XML per i testi umanistici
Introduzione alla codifica XML per i testi umanistici Daniele Silvi, Domenico Fiormonte, Fabio Ciotti fiormont@uniroma3.it - silvi@lettere.uniroma2.it - ciotti@lettere.uniroma2.it 1 La digitalizzazione
DettagliTecnologie Web T Introduzione a XML
Tecnologie Web T Introduzione a Home Page del corso: http://www-db.deis.unibo.it/courses/tw/ Versione elettronica: 2.01..pdf Versione elettronica: 2.01.-2p.pdf 1 Che cos è? : Extensible Markup Language:
DettagliLa struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it
La struttura: DTD Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino laura.farinetti@polito.it L. Farinetti - Politecnico di Torino 1 Modello di struttura I tag annidati danno origine
DettagliIntroduzione a XML. Language
Introduzione a XML 1 Che cos è XML? XML: Extensible Markup Language anguage: è un linguaggio che consente la rappresentazione di documenti e dati strutturati su supporto digitale è uno strumento potente
DettagliIl database management system Access
Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio
DettagliXML: extensible Markup Language
XML: extensible Markup Language Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino laura.farinetti@polito.it L. Farinetti - Politecnico di Torino 1 Introduzione XML: extensible Markup
DettagliDocument Type Definition (DTD)
Laboratorio di Programmazione Distribuita Document Type Definition () Dott. Marco Bianchi Università degli Studi di L'Aquila bianchi@di.univaq.it http://di.univaq.it/~bianchi Relazione tra classi e oggetti
DettagliXML e PHP. Gestire XML con PHP. Appendice
Appendice XML e PHP Tra tutti i linguaggi di programmazione esistenti PHP è tra quelli che meglio si adattano all elaborazione di documenti XML. PHP è un linguaggio di programmazione che consente di arricchire
DettagliXML: La nascita del linguaggio
XML: introduzione alla codifica dei testi Con la codifica dei testi si intende la rappresentazione dei testi stessi su un supporto digitale in un formato utilizzabile dall'elaboratore (Machine Readable
Dettagliconnessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI
Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti
DettagliXML. Concetti principali. Risultato possibile. Differenze tra XML e HTML
Concetti principali Un documento XML contiente delle istruzioni particolari chiamate tag scritte in forma di coppia di parentesi (metalinguaggio con parentesi) Daniele Marini XML questa
DettagliXML. XML è contemporaneamente: XML non è:
XML XML è contemporaneamente: Linguaggio di annotazione (Markup) che permette di creare gruppi di marcatori (tag set) personalizzati (MathML, XHTML, chemicalml, ecc..) Formato standard per lo scambio dei
Dettaglia cura di Maria Finazzi
Esercitazioni di XML a cura di Maria Finazzi (11-19 gennaio 2007) e-mail: maria.finazzi@unipv.it pagine web: Il trattamento dell'informazione Testo a stampa: Come
DettagliCapitolo 4 Pianificazione e Sviluppo di Web Part
Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,
DettagliDirezione Centrale Accertamento. Indagini finanziarie. Le modalità di trasmissione telematica delle richieste di dati e delle relative risposte
Direzione Centrale Accertamento Indagini finanziarie Le modalità di trasmissione telematica delle richieste di dati e delle relative risposte I poteri degli uffici Ambito soggettivo E stato ampliato il
DettagliWorking Draft 0.5 (Telefonia)
Working Draft 0.5 (Telefonia) Abstract Lo scopo del progetto è lo sviluppo di un SCP (Semantic Collaborative Portal), cioè un sistema di visualizzazione di una banca dati documentaria di grandi dimensioni
DettagliLaboratorio Matematico Informatico 2
Laboratorio Matematico Informatico 2 (Matematica specialistica) A.A. 2006/07 Pierluigi Amodio Dipartimento di Matematica Università di Bari Laboratorio Matematico Informatico 2 p. 1/1 Informazioni Orario
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliModellazione dei dati in UML
Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):
DettagliEXPLOit Content Management Data Base per documenti SGML/XML
EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per
DettagliHTML+XML= XHTML. Che cos è l XHTML
HTML+XML= XHTML Il ritorno al futuro del WEB A cura di Barbara Lotti Che cos è l XHTML Nel gennaio del 2000 il W3C ha rilasciato, anziché una nuova versione, una riformulazione dell HTML come applicazione
DettagliLezione V. Aula Multimediale - sabato 29/03/2008
Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)
DettagliSettimana I...1. Giorno 1 - Introduzione all XSLT...3
Settimana I...1 Giorno 1 - Introduzione all XSLT...3 Generalità su XSLT...3 Introduzione a XML e XSLT... 4 Cos è XSLT?... 5 Che cosa fa XSLT?... 6 Come si presenta XSLT?... 6 XSLT e la famiglia di XML...
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
DettagliArchitetture Applicative
Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture
DettagliArchitettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)
Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione
DettagliLe Basi di Dati. Le Basi di Dati
Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per
DettagliIntroduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico
Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle
DettagliTelerilevamento e GIS Prof. Ing. Giuseppe Mussumeci
Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme
DettagliPIATTAFORMA DOCUMENTALE CRG
SISTEMA DI GESTIONE DOCUMENTALE DMS24 PIATTAFORMA DOCUMENTALE CRG APPLICAZIONE PER LE PROCEDURE DI GARE D AMBITO 1 AGENDA 1. Introduzione 2. I Livelli di accesso 3. Architettura di configurazione 4. Accesso
DettagliInformatica. Prof. M. Colajanni Università di Modena Reggio Emilia
Informatica Prof. M. Colajanni Università di Modena Reggio Emilia PARTE 4 - World Wide Web WORLD WIDE WEB La killer application di Internet I motivi alla base del successo del Web ( perché è risultata
DettagliProgettazione di Basi di Dati
Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello
DettagliIntroduzione alla codifica XML per i testi umanistici
Introduzione alla codifica XML per i testi umanistici Daniele Silvi, Domenico Fiormonte, Fabio Ciotti fiormont@uniroma3.it - silvi@lettere.uniroma2.it - ciotti@lettere.uniroma2.it La digitalizzazione dei
DettagliI casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.
UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d
DettagliXML (extensible Markup Language)
Supporto On Line Allegato FAQ FAQ n.ro MAN-8HVCNU5634 Data ultima modifica 16/06/2011 Prodotto Dichiarazioni fiscali 2011 Modulo Generica DF Oggetto: Modello IRAP 2011 XML - XMLNotepad: Guida all uso e
DettagliCapitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
DettagliApplicazioni e Architetture Internet. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma
Applicazioni e Architetture Internet 1 Introduzione Introduzione alle architetture a tre livelli Formati di dati per il Web HTML, XML, DTD 2 Componenti dei sistemi dataintensive Tre tipi separati di funzionalità:
DettagliGuida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
DettagliI database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:
Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare
DettagliI Sistemi Informativi
I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e
DettagliLaboratorio di Programmazione Distribuita. Introduzione a XML. Dott. Marco Bianchi Università degli Studi di L'Aquila
Laboratorio di Programmazione Distribuita Dott. Marco Bianchi Università degli Studi di L'Aquila bianchi@di.univaq.it http://di.univaq.it/~bianchi Cos'è XML? XML = extensible Markup Language E' un meta-linguaggio
Dettagli1. BASI DI DATI: GENERALITÀ
1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente
DettagliSiti web centrati sui dati (Data-centric web applications)
Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliIntroduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language. a.a. 2004/05 Tecnologie Web 1
Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language a.a. 2004/05 Tecnologie Web 1 XML - I XML (exstensible Markup Language): XML è un formato standard,
DettagliConcetti di base di ingegneria del software
Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza
DettagliIntroduzione a Dev-C++
Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP
DettagliSimple & Efficient. www.quick-software-line.com
Cosa è XML? extensible Markup Language Linguaggio è una definizione limitativa XML serve a descrivere con precisione qualsiasi informazione XML è estensibile. Ovvero non ha tag predefiniti come HTML XML
DettagliRappresentazione grafica di entità e attributi
PROGETTAZIONE CONCETTUALE La progettazione concettuale, ha il compito di costruire e definire una rappresentazione corretta e completa della realtà di interesse, e il prodotto di tale attività, è lo schema
DettagliCompilatore risorse display grafico LCD serie IEC-line
Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente
DettagliTecniche Multimediali
Chiedersi se un computer possa pensare non è più interessante del chiedersi se un sottomarino possa nuotare Edsger Dijkstra (The threats to computing science) Tecniche Multimediali Corso di Laurea in «Informatica»
DettagliApplicazioni web centrati sui dati (Data-centric web applications)
Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento
DettagliLinguaggi per il web oltre HTML: XML
Linguaggi per il web oltre HTML: XML Luca Console Con XML si arriva alla separazione completa tra il contenuto e gli aspetti concernenti la presentazione (visualizzazione). XML è in realtà un meta-formalismo
DettagliEsercitazione di Basi di Dati
Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
DettagliCorso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A. 2011-2012. Language) Stylesheet.
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011-2012 XSL (extensible( Stylesheet Language) Eufemia TINELLI Contenuti XSL = XSLT + XSL-FO (+ XPath)
DettagliSISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione
SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi
Dettagli/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML
XML 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML XML è un linguaggio di marcatura proposto dal W3C XML definisce una sintassi generica per contrassegnare i dati di un documento elettronico con marcatori
DettagliCorso di PHP. Prerequisiti. 1 - Introduzione
Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere
DettagliARCHIVI E DATABASE (prof. Ivaldi Giuliano)
ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).
DettagliAl giorno d oggi, i sistemi per la gestione di database
Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,
DettagliIndice. Introduzione. Capitolo 1
Indice Introduzione XI Capitolo 1 Pagine dei fornitori: applicazione dei fogli di stile CSS in XML 1 1.1 Introduzione a HTML e XHTML 1 1.2 Controllo della presentazione: fogli di stile CSS 8 1.3 Approfondimento
DettagliCosa è un foglio elettronico
Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti
DettagliCorso di Informatica
Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo
DettagliISTITUTO TECNICO ECONOMICO MOSSOTTI
CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche
DettagliIl linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
DettagliCreare un Ipertesto. www.vincenzocalabro.it 1
Creare un Ipertesto www.vincenzocalabro.it 1 Obiettivi Il corso si prefigge di fornire: Le nozioni tecniche di base per creare un Ipertesto I consigli utili per predisporre il layout dei documenti L illustrazione
DettagliBASI DI DATI - : I modelli di database
BASI DI DATI - : I modelli di database DAL 1960 ci si e' orientati verso 3 direzioni: 1 MODELLO GERARCHICO Se i dati si presentano naturalmente in una struttura ad albero (ES. File System) Limiti: rigidità
DettagliCorso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati
Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente
DettagliSommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
DettagliAPPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)
ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) Un insieme è una collezione di oggetti. Il concetto di insieme è un concetto primitivo. Deve esistere un criterio chiaro, preciso, non ambiguo, inequivocabile,
DettagliControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi
ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)
DettagliPiano di gestione della qualità
Piano di gestione della qualità Pianificazione della qualità Politica ed obiettivi della qualità Riferimento ad un eventuale modello di qualità adottato Controllo della qualità Procedure di controllo.
DettagliUNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria
ESAME DI STATO DI ABILITAZIONE ALL'ESERCIZIO DELLA PROFESSIONE DI INGEGNERE PRIMA PROVA SCRITTA DEL 22 giugno 2011 SETTORE DELL INFORMAZIONE Tema n. 1 Il candidato sviluppi un analisi critica e discuta
DettagliHTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione
HTML e Linguaggi Politecnico di Facoltà del Design Bovisa Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://home.dei.polimi.it/cugola Indice Il linguaggio del
DettagliStrumenti di modellazione. Gabriella Trucco
Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell
DettagliProgettazione di un Database
Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di
DettagliIntroduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni
Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono
DettagliDispensa 3. 1.1 YACC: generalità
Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un
DettagliRegione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
DettagliIl Web Server e il protocollo HTTP
Corso PHP Parte 2 Il Web Server e il protocollo HTTP E un programma sempre attivo che ascolta su una porta le richieste HTTP. All arrivo di una richiesta la esegue e restituisce il risultato al browser,
DettagliReti di Telecomunicazione Lezione 6
Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server
DettagliSiti interattivi e dinamici. in poche pagine
Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata
DettagliManuale per i redattori del sito web OttoInforma
Manuale per i redattori del sito web OttoInforma Contenuti 1. Login 2. Creare un nuovo articolo 3. Pubblicare l articolo 4. Salvare l articolo in bozza 5. Le categorie 6. Modificare un articolo 7. Modificare
DettagliCome archiviare i dati per le scienze sociali
Come archiviare i dati per le scienze sociali ADPSS-SOCIODATA Archivio Dati e Programmi per le Scienze Sociali www.sociologiadip.unimib.it/sociodata E-mail: adpss.sociologia@unimib.it Tel.: 02 64487513
DettagliBreve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida
Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare
DettagliCorso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013
Corso di HTML Modulo L3 1-Concetti generali 1 Prerequisiti Browser Rete Internet Client e server 2 1 Introduzione In questa Unità introduciamo alcuni semplici elementi del linguaggio HTML, con il quale
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
DettagliSistemi Informativi e Basi di Dati
Sistemi Informativi e Basi di Dati Laurea Specialistica in Tecnologie di Analisi degli Impatti Ecotossicologici Docente: Francesco Geri Dipartimento di Scienze Ambientali G. Sarfatti Via P.A. Mattioli
DettagliPresidenza del Consiglio dei Ministri
Manuale utente (front office) Aggiornato al 14 luglio 2011 Sommario 1. INTRODUZIONE... 3 2. MODALITÀ OPERATIVA... 4 2.1 Utenti ammessi alla trasmissione del file XML... 4 2.2 Controllo effettuato dal sistema
DettagliXML Master di II livello "Sistemi informativi geografici per il monitoraggio e la gestione del territorio"
XML Master di II livello "Sistemi informativi geografici per il monitoraggio e la gestione del territorio" Claudio Rocchini claudio@rockini.name Istituto Geografico Militare 2013 Introduzione a XML extensible
Dettagli