Famiglia di linguaggi XML:

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Famiglia di linguaggi XML:"

Transcript

1 Famiglia di linguaggi XML: Xpath : ricerca nel documento 5 SLT : rappresentazione del contenuto 7 XSL-FO : semantica e rappresentazione del documento 11 Link : collegamento tra le risorse 14 Xpointer : indirizzare precisamente 17 XML Base : collegamento tra risorse URI e XML 21 Xquery : recupero delle informazioni 22 Canonical XML : strutturare informazione in forma testuale 25 Xforn : definire le form dentro un documento xml 29 RDF : semantica web 32 XML Encription : protezione dati 35 XML Signature : autentificazione documenti 38 introduzione All interno della categoria che prende il nome di famiglia di linguaggi XML rientrano una serie di tecnologie sviluppate negli ultimi anni che hanno a comune il fatto di essere basate su XML. In questa guida vedremo di effettuare una panoramica su queste tecnologie, analizzandone l ambito di utilizzo e cercando di descriverne i principi base ed il loro funzionamento, in modo da fare il punto della situazione sui molteplici aspetti del mondo XML. Molte di queste tecnologie ormai sono molto diffuse e vengono utilizzate normalmente su Internet (come ad esempio XML, XML Namespace, DOM, XHTML, XSL, etc.) altre invece sono attualmente meno diffuse (vedi ad esempio XLink, XQuery, RDF) ma andranno sicuramente a costituire le fondamenta del Web di domani. Descriviamo brevemente le componenti che sono alla base di tutte queste tecnologie. L Extensible Markup Language (XML) è un metalinguaggio, ovvero un insieme di regole base utilizzate per creare altri linguaggi. Dalla sua nascita avvenuta nel 1998, ha assunto un ruolo centrale per quanto riguarda lo sviluppo di nuove tecnologie in ambito Web e non solo. XML permette di creare nuovi linguaggi per rappresentare informazione strutturata in formato testuale. Il suo successo è dovuto a molti motivi e tra i principali possiamo sicuramente includere la sua semplicità, la sua espandibilità e la sua portabilità. La specifica di XML descrive un insieme di regole per definire linguaggi basati su tag (marcatori) all interno dei quali inserire in maniera strutturata il contenuto informativo da rappresentare. I tag devono essere inseriti correttamente l uno dentro l altro, ad ogni tag di apertura deve corrispondere un tag di chiusura e gli attributi dei tag devono essere racchiusi tra apici. Utilizzando queste semplici ed essenziali regole l utente ha la possibilità di creare un nuovo linguaggio definendo i tag e gli attributi più appropriati a memorizzare l informazione che si vuole trattare. 1

2 Inoltre XML favorisce l interoperabilità in quanto è un formato testuale, quindi facilmente trasferibile ed elaborabile su differenti piattaforme hardware e software. Una caratteristica fondamentale di XML è quella di occuparsi del contenuto dell informazione e non la sua rappresentazione. La modalità di rappresentazione dell informazione può essere scelta in un secondo momento e, partendo dallo stesso file XML, possiamo rappresentare l informazione contenuta al suo interno in differenti modi, come ad esempio in HTML, XHTML, SVG, etc. Come esempio vediamo adesso di memorizzare in formato xml le informazioni relative ad una rubrica. Tipicamente in una rubrica, sono conservati alcuni dati (quali ad esempio nome, cognome, indirizzo, numero di telefono) riguardanti una determinata persona e tutto questo in XML può essere espresso con: <rubrica> <persona> <nome>mario</nome> <cognome>rossi</cognome> <indirizzo> <via>via bianchi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso>123456</telefono_fisso> <cellulare> </cellulare> </telefono> </persona> </rubrica> In questo esempio abbiamo descritto in formato XML le informazioni relative ad una rubrica, andando a creare gli opportuni tag ed annidandoli in modo tale da rappresentare la struttura dati che avevamo in mente. Proprio a causa delle caratteristiche descritte, XML ha incontrato molto successo come formato per lo scambio di dati tra applicazioni differenti. Affinché due applicazioni possano scambiarsi dei dati in formato XML è necessario però che queste conoscano come viene strutturata l informazione all interno del file, ovvero quali sono e come sono chiamati i tag e gli attributi che costituiscono il file XML. Per questo scopo sono state sviluppate alcune tecnologie quali XML Namespace, Dtd e XML Schema. XML Namespace nasce con lo scopo di evitare possibili ambiguità tra i nomi degli elementi che fanno parte di un linguaggio basato su XML, visto che utilizzando i Namespace siamo in grado di identificare univocamente i nomi dei tag e degli attributi. Un XML Namespace è un insieme di nomi, utilizzato per definire gli elementi e gli attributi di un linguaggio XML, a cui viene associato un URI (Universal Resource Identifier) di riferimento tramite il quale identificare in maniera assoluta il namespace. Un URI (Universal Resource Identifier) è una stringa di caratteri che definisce il nome di una risorsa sul web ed è per definizione unica. A questo insieme di nomi viene associato un prefisso che utilizzato in abbinata con il nome dell elemento, permette di riferire univocamente tutti gli elementi. Come esempio vediamo di definire un namespace per l insieme di elementi utilizzati per descrivere 2

3 la rubrica. <mia_rubrica:rubrica xmlns:mia_rubrica= > <mia_rubrica:persona> <mia_rubrica:nome>mario</mia_rubrica:nome> <mia_rubrica:cognome>rossi</mia_rubrica:cognome> <mia_rubrica:indirizzo> <mia_rubrica:via>via bianchi 1</mia_rubrica:via> <mia_rubrica:cap>00000</mia_rubrica:cap> <mia_rubrica:citta>roma</mia_rubrica:citta> </mia_rubrica:indirizzo> <mia_rubrica:telefono> <mia_rubrica:telefono_fisso>123456</mia_rubrica:telefono_fisso> <mia_rubrica:cellulare> </mia_rubrica:cellulare> </mia_rubrica:telefono> </mia_rubrica:persona> </mia_rubrica:rubrica> Attraverso l attributo xmlns (inserito nel primo tag del nostro file) definiamo l URI di riferimento associato al nostro namespace e gli assegniamo un prefisso (mia_rubrica) che sarà utilizzato in abbinata con il nome dell elemento per identificare in maniera univoca gli elementi del nostro file. Per quanto riguarda la descrizione della struttura di un file XML, esistono due tecnologie: Dtd e XML Schema. Document Type Definition (Dtd) è un linguaggio utilizzato per definire la struttura di un file XML ed è storicamente il primo metodo utilizzato per tale scopo. È caratterizzato da una sintassi complessa, difficilmente estendibile e totalmente estranea al mondo XML. Per vedere un esempio di Dtd proviamo a definire la struttura del nostro file XML che descrive la rubrica. <!DOCTYPE rubrica [ <!ELEMENT rubrica (persona)> <!ELEMENT persona (nome, cognome, indirizzo, telefono)> <!ELEMENT nome (#PCDATA)> <!ELEMENT cognome (#PCDATA)> <!ELEMENT nome (#PCDATA)> <!ELEMENT indirizzo (via, cap, citta)> <!ELEMENT via (#PCDATA)> <!ELEMENT cap (#PCDATA)> <!ELEMENT citta (#PCDATA)> <!ELEMENT telefono (telefono_fisso, cellulare)> <!ELEMENT telefono_fisso (#PCDATA)> <!ELEMENT cellulare (#PCDATA)> ]> Per ovviare alle limitazioni della Dtd è nato XML Schema, ovvero un linguaggio, basato su XML, per definire la struttura di un documento XML. XML Schema è uno strumento molto più potente di Dtd per descrivere la struttura di un file XML in quanto è più espandibile, permette di ottenere una migliore caratterizzazione dei tipi di dati e ha una sintassi basata su XML, quindi possiamo utilizzare gli strumenti XML per lavorare con gli Schema. 3

4 La struttura del nostro esempio, espressa con un XML Schema, diventa: <xsd:schema xmlns:xsd= > <xsd:element name= rubrica type= tipo_rubrica /> <xsd:complextype name= tipo_rubrica > <xsd:sequence> <xsd:element name= persona type= tipo_persona /> </xsd:sequence> </xsd:complextype> <xsd:complextype name= tipo_persona > <xsd:sequence> <xsd:element name= nome type= xsd:string /> <xsd:element name= cognome type= xsd:string /> <xsd:element name= indirizzo type= tipo_indirizzo /> <xsd:element name= telefono type= tipo_telefono /> </xsd:sequence> </xsd:complextype> <xsd:complextype name= tipo_indirizzo > <xsd:sequence> <xsd:element name= via type= xsd:string /> <xsd:element name= cap type= xsd:decimal /> <xsd:element name= citta type= xsd:string /> </xsd:sequence> </xsd:complextype> <xsd:complextype name= tipo_telefono > <xsd:sequence> <xsd:element name= telefono_fisso type= xsd:decimal /> <xsd:element name= cellulare type= xsd:decimal /> </xsd:sequence> </xsd:complextype> </xsd:schema> Un altra componente che ha favorito il successo di XML è la definizione del DOM (Document Object Model). Il DOM è un API (Application Programmer Interface) standard per accedere e modificare la struttura di un documento XML. Il DOM lavora su di una rappresentazione ad albero associata al file XML, ovvero opera su di un albero gerarchico di oggetti rappresentanti il contenuto del file XML. tramite il DOM possiamo sviluppare applicazioni che accedono alle componenti di un file XML e che vanno ad analizzarne o a modificarne il contenuto. Ad esempio abbiamo dei metodi che ci permettono di inserire nuovi nodi nel documento (appendchild), di eliminarli (removechild), di leggere le proprietà di un nodo quali il suo nome (nodename), il suo valore (nodevalue) o accedere ai suoi nodi figli (childnodes). Queste tecnologie che abbiamo velocemente descritto costituiscono la base su cui sono state costruite le altre tecnologie XML operanti in differenti settori. Nel corso della guida analizzeremo le tecnologie della famiglia XML che si occupano dell elaborazione dell informazione, della sua trasformazione e del suo recupero; del collegamento tra risorse e dell autenticazione e della sicurezza dei documenti. 4

5 XPath Iniziamo con questo capitolo, la panoramica sulle tecnologie della famiglia XML andando a parlare di XPath. XPath è un linguaggio tramite il quale è possibile esprimere delle espressioni per indirizzare parti di un documento XML. È un linguaggio ideato per operare all interno di altre tecnologie XML (di cui parleremo nei capitolo successivi), quali XSL e XPointer, ed è caratterizzato dal fatto di avere una sintassi non XML. In questo modo può essere meglio utilizzato all interno di URI o come valore di attributi di documenti XML. XPath opera su una rappresentazione logica del documento XML, che viene modellato con una struttura ad albero ed XPath definisce una sintassi per accedere ai nodi di tale albero. Oltre a questo XPath mette a disposizione una serie di funzioni per la manipolazione di stringhe, numeri e booleani, da utilizzare per operare sui valori o sugli attributi dei nodi. Le espressioni definite da XPath per accedere ai nodi dell albero prendono il nome di Location Path (percorsi di localizzazione). La struttura un location path è la seguente: axis::node-test[predicate]. La componente axis esprime la relazione di parentela tra il nodo cercato ed il nodo corrente; la componente node-test specifica il tipo o il nome del nodo da cercare; mentre predicate contiene zero o più filtri (espressi tra parentesi quadre) per specificare delle condizioni più selettive da applicare alla ricerca. Le relazioni di parentela principali che possono essere contenute in axis sono: ancestor: indica tutti i nodi antenati del nodo corrente, ovvero tutti i nodi che lo precedono nell albero associato al documento XML; attribute: indica tutti gli attributi del nodo corrente; child: indica i nodi figli del nodo corrente; descendant: indica tutti i discendenti del nodo corrente, ovvero tutti i nodi che hanno seguono il nodo corrente nell albero XML; parent: indica il nodo genitore del nodo corrente, ovvero quello che lo precede nell albero; self: indica il nodo corrente. Vediamo qualche esempio per capire meglio come utilizzare i Location Path per accedere agli elementi di un documento XML, utilizzando l esempio della rubrica introdotto nel capitolo precedente, anche se con qualche piccola modifica. <rubrica> <persona> <nome>mario</nome> <cognome>rossi</cognome> <indirizzo> <via>via bianchi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso gestore= Abc >123456</telefono_fisso> <telefono_cellulare gestore= Def > </telefono_cellulare> </telefono> </persona> 5

6 </rubrica> child::nome Questa espressione seleziona tutti i nodo chiamati nome che sono figli del nodo corrente. child::* Seleziona tutti i nodi figli del nodo corrente. attribute::gestore Seleziona l attributo di nome gestore del nodo corrente. descendant::cognome[cognome='rossi'] Seleziona tutti i nodi chiamati cognome tra i nodi discendenti del nodo corrente, il cui valore è Rossi. In XPath è possibile accedere ai nodi dell albero utilizzando delle espressioni abbreviate dei Location Path. Le espressioni abbreviate, come suggerisce il nome stesso, sono una versione semplificata e compatta dei Location Path ed offrono un meccanismo più veloce, ma al tempo stesso meno potente per accedere ai nodi dell albero. Queste espressioni sono costituite da una lista di nomi di elementi del documento XML, separati da uno slash(/), e tale lista descrive il percorso per accedere all elemento desiderato. È un meccanismo molto simile a quello usato per identificare i file e le directory nel filesystem. Ad esempio per indicare il file (chiamato mio-file) memorizzato all interno di una directory (chiamata mia-directory) del vostro hard disk, utilizzate la seguente sintassi: c:directory1file1. Le espressioni abbreviate di XPath utilizzano un meccanismo concettualmente simile: vediamo come, utilizzando il solito file XML d esempio. /rubrica/persona/nome Questa espressione abbreviata permette di recuperare i nodi chiamati nome indicando il percorso assoluto per raggiungere il nodo desiderato, attraverso una lista di nodi separata da slash. //nome Con il doppio slash ricerchiamo i nodi chiamati nome, in tutto il documento, indipendentemente dalla loro posizione e dal loro livello sull albero associato al documento XML. /rubrica//via Ricerchiamo tutti i nodi chiamati via a qualsiasi livello dell albero purchè contenuti all interno del nodo chiamato rubrica. /rubrica/persona/* Ricerca qualsiasi elemento figlio del nodo chiamato persona. //nome/@valuta Ricerca l attributo valuta dell elemento nome. Anche all interno delle espressioni abbreviate possiamo inserire i predicati visti nel caso dei Location Path. Ad esempio: //persona[nome='mario'] questa espressione ricerca tutti i nodi persona che hanno il tag nome il cui valore è Mario. 6

7 Come detto all inizio del capitolo, XPath mette a disposizione anche delle funzioni per gestire i nodi, le stringhe, i numeri e i booleani. Vediamo adesso di elencare brevemente e schematicamente alcune funzioni principali: count(node-set): restituisce il numero di nodi contenuti nell insieme di nodi passato come argomento della funzione; name(nodo): restituisce il nome di un nodo; position(): determina la posizione di un elemento all interno di un insieme di nodi; last(): indica la posizione dell ultimo nodo di un insieme di nodi; id(valore): seleziona gli elementi in funzione del loro identificatore; concat(s1,,sn): restituisce una stringa risultato della concatenazione delle stringhe specificate tra gli argomenti di una funzione; string(valore): converte il valore dell argomento in una stringa; string-length(stringa): ritorna la lunghezza della stringa passata come parametro; substring(stringa,inizio,lunghezza): restituisce una sotto-stringa della stringa passata come argomento; ceiling(numero): arrotonda il numero per eccesso; floor(numero): arrotonda il numero per difetto; number(valore): converte il valore dell argomento in un numero; sum(node-set): esprime la somma di un insieme di valori numerici contenuti in un insieme di nodi. Come esempi di espressioni XPath che fanno uso di queste funzioni consideriamo: //persona[last()] Questa espressione restituisce l ultimo nodo persona contenuto all interno del file XML. //persona[position()= 3] Restituisce il terzo nodo persona contenuto all interno del file XML. count(/rubrica/persona) Indica il il numero di nodi chiamati persona contenuti all interno del documento XML. Nei prossimi capitoli vedremo come utilizzare XPath all interno di XSLT e XPointer, intanto per maggiori approfondimenti, vi consiglio la lettura della specifica di XPath, all indirizzo: XSLT Una caratteristica fondamentale di XML è quella di occuparsi esclusivamente della descrizione del contenuto dell informazione e non della sua rappresentazione. Infatti i tag XML non esprimono in alcun modo come verrà visualizzato il loro contenuto, cosa che invece accade in altri linguaggi basati su marcatori, come HTML. L informazione contenuta in un file XML può essere visualizzata definendo degli stili di 7

8 rappresentazione, che, applicati al file XML, saranno in grado di rappresentarne il contenuto nel modo desiderato. In XML questo può essere fatto utilizzando XSL (extensible Stylesheet Language). XSL è un linguaggio basato su XML per esprimere i fogli di stile, ossia un documento contenente le regole per rappresentare l informazione. XSL è composto da due componenti: XSLT (extensible Stylesheet Language transformation), che descriveremo in questo capitolo, e XSL-FO (extensible Stylesheet Language Formatting Objects), che analizzeremo nel prossimo capitolo. All interno di XSL viene utilizzato XPath per la ricerca ed il filtraggio dei contenuti del file XML. XSLT XSLT è un linguaggio basato su XML che permette di definire delle regole per trasformare un documento XML in un altro documento XML o in un documento HTML. Utilizzando XSL possiamo ad esempio visualizzare il contenuto di un documento XML in HTML, XHTML o SVG. La trasformazione viene realizzata da un XSLT Processor che riceve come input il file XML da trasformare, il file XSL con la definizione dello stylesheet da applicare e produce come output il file trasformato. Un file XSL è formato da una serie di template (modelli) che contengono le regole di trasformazione dei tag del documento XML. Questi template vengono applicati ai tag corrispondenti dal XSLT Processor in maniera ricorsiva nel corso della trasformazione. Come esempio vediamo di definire un file XSL per visualizzare un file XML di esempio in una pagina HTML. Il file XML di input è: <rubrica> <persona> <nome>mario</nome> <cognome>rossi</cognome> <indirizzo> <via>via bianchi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso>123456</telefono_fisso> <telefono_cellulare> </telefono_cellulare> </telefono> </persona> </rubrica> Il file XSL con la definizione dello stile per la creazione del file HTML è: <xsl:stylesheet xmlns:xsl= version= 1.0 > <xsl:template match= / > <html> <head> <title>rubrica in versione HTML</title> </head> <body> <h1>rubrica</h1> <xsl:apply-templates/> 8

9 </body> </html> </xsl:template> <xsl:template match= persona > <h2> <xsl:value-of select= cognome /> <xsl:value-of select= nome /> </h2> <ul> <li>via: <xsl:value-of select=./indirizzo/via /></li> <li>cap: <xsl:value-of select=./indirizzo/cap /></li> <li>citta : <xsl:value-of select=./indirizzo/citta /></li> <li>telefono (fisso): <xsl:value-of select=./telefono/telefono_fisso /></li> <li>telefono (cellulare): <xsl:value-of select=./telefono/telefono_cellulare /></li> </ul> </xsl:template> </xsl:stylesheet> I n un file XSL le regole di trasformazione sono contenute all interno degli elementi template e tramite l attributo match possiamo specificare, utilizzando la sintassi XPath, il tag a cui si riferiscono queste regole. Nel nostro esempio il primo elemento template contiene le regole di trasformazione dell elemento root del file di input (l elemento <rubrica>); mentre il secondo definisce le regole per la trasformazione degli elementi <persona>. Il processore XSLT effettua il parsing del documento XML da trasformare e, per ogni nodo incontrato, ricerca il template appropriato all interno del file XSL. Quando il processore incontra il nodo root del documento XML applica il primo template e quindi costruisce lo scheletro del file HTML. Con l elemento <xsl:apply-templates> si indica al processore XSLT di analizzare i nodi figli del nodo corrente alla ricerca di altri template da applicare. Il risultato (mostrato in figura) prodotto dalla trasformazione XSLT è il seguente: <html> 9

10 <head> <title>rubrica in versione HTML</title> </head> <body> <h1>rubrica</h1> <h2>rossi Mario</h2> <ul> <li>via: via bianchi 1</li> <li>cap: 00000</li> <li>citta : Roma</li> <li>telefono (fisso): </li> <li>telefono (cellulare): </li> </ul> </body> </html> Lo stesso file XML può essere trasformato in un immagine SVG utilizzando il seguente file XSL: <xsl:stylesheet xmlns:xsl= version= 1.0 > <xsl:template match= / > <svg width= 400 height= 200 > <title>rubrica in versione SVG</title> <xsl:apply-templates/> </svg> </xsl:template> <xsl:template match= persona > <rect x= 10 y= 10 width= 180 height= 30 fill= lightblue stroke= blue strokewidth= 2 /> <text x= 20 y= 30 font-family= times font-width= 20 fill= black > <xsl:value-of select= cognome /> <xsl:value-of select= nome /> </text> <rect x= 10 y= 40 width= 200 height= 150 fill= white stroke= blue stroke-width= 2 /> <text x= 20 y= 60 font-family= times font-width= 20 fill= blue > Via: <xsl:value-of select=./indirizzo/via /> </text> <text x= 20 y= 80 font-family= times font-width= 20 fill= blue > CAP: <xsl:value-of select=./indirizzo/cap /> </text> <text x= 20 y= 100 font-family= times font-width= 20 fill= blue > Citta : <xsl:value-of select=./indirizzo/citta /> </text> <text x= 20 y= 120 font-family= times font-width= 20 fill= blue > Telefono (fisso): <xsl:value-of select=./telefono/telefono_fisso /> </text> <text x= 20 y= 140 font-family= times font-width= 20 fill= blue > Telefono (cellulare): <xsl:value-of select=./telefono/telefono_cellulare /> </text> </xsl:template> </xsl:stylesheet> 10

11 Il risultato della trasformazione (mostrato in figura) è il seguente: <svg width= 400 height= 200 > <title>rubrica in versione SVG</title> <rect x= 10 y= 10 width= 180 height= 30 fill= lightblue stroke= blue stroke-width= 2 /> <text x= 20 y= 30 font-family= times font-width= 20 fill= black >Rossi Mario</text> <rect x= 10 y= 40 width= 200 height= 150 fill= white stroke= blue stroke-width= 2 /> <text x= 20 y= 60 font-family= times font-width= 20 fill= blue >Via: via bianchi 1</text> <text x= 20 y= 80 font-family= times font-width= 20 fill= blue >CAP: 00000</text> <text x= 20 y= 100 font-family= times font-width= 20 fill= blue >Citta : Roma</text> <text x= 20 y= 120 font-family= times font-width= 20 fill= blue >Telefono (fisso): </text> <text x= 20 y= 140 font-family= times font-width= 20 fill= blue >Telefono (cellulare): </text> </svg> XSLT è uno strumento grazie al quale possiamo decidere di visualizzare gli stessi dati contenuti in un file XML in differenti modi a seconda delle nostre esigenze ed il tutto in maniera assolutamente automatica. In questo capitolo abbiamo descritto le caratteristiche principali e l ambito di utilizzo di XSLT, per approfondire la conoscenza di questo linguaggio vi rimando alla lettura della sua specifica, che potete trovare a questo indirizzo: Il processore, utilizzato per realizzare gli esempi visti in questo capitolo, è Xalan, un processore XSLT scritto in Java, liberamente scaricabile all indirizzo: XSL-FO In questo capitolo andiamo ad analizzare la seconda componente di XSL, XSL-FO. XSL-Formatting Objects è un linguaggio, anch esso basato su XML, per la specifica di una semantica di formattazione dei contenuti di un documento XML. All interno di un documento XSL- FO possiamo definire le regole di impaginazione delle informazioni che vogliamo visualizzare, andando ad esprimere la posizione dei singoli contenuti nella pagina. Grazie a XSL-FO possiamo produrre, ad esempio dei documenti PDF, RTF o PS, rappresentanti il 11

12 contenuto di un documento XML. Il documento XSL-FO viene analizzato da un processore XSL- FO che si occupa di produrre il documento di output, in base alle regole specificate nel documento di input. La struttura di un file XSL-FO è la seguente: <fo:root xmlns:fo= > <fo:layout-master-set> <! modello pagina > </fo:layout-master-set> <fo:declarations> <! dichiarazioni globali > </fo:declarations> <fo:page-sequence> <! contenuti pagine > </fo:page-sequence> </fo:root> All interno dell elemento <layout-master-set> vanno inserite le regole di impaginazione per la pagina master, ovvero la pagina che costituisce il modello per tutte le altre pagine del documento. Il secondo elemento (<declarations>)contiene eventuali dichiarazioni globali al file XSL-FO; mentre l elemento <page-seguence> contiene la definizione delle informazioni contenute nelle pagine che costituiranno il documento finale. Per cercare di capire meglio il funzionamento di XSL-FO vediamo di analizzare il seguente documento di esempio: <fo:root xmlns:fo= > <fo:layout-master-set> <fo:simple-page-master master-name= PaginaA4 page-height= 29.7cm page-width= 21cm margin-top= 1.5cm margin-bottom= 1.5cm margin-left= 2.5cm margin-right= 2.5cm > <fo:region-body margin-top= 1.8cm /> <fo:region-before extent= 1.3cm /> <fo:region-after extent= 1.3cm /> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference= PaginaA4 > <fo:title>esempio XSL-FO</fo:title> <fo:static-content flow-name= xsl-region-before > <fo:block text-align= end font-size= 8pt font-family= times > Esempio XSL-FO </fo:block> </fo:static-content> <fo:static-content flow-name= xsl-region-after > <fo:block text-align= end font-size= 8pt font-family= times > Pagina <fo:page-number/> </fo:block> </fo:static-content> <fo:flow flow-name= xsl-region-body > 12

13 <fo:block text-align= center font-size= 14pt font-family= times color= blue > Testo della prima pagina dell esempio XSL-FO. </fo:block> <fo:block break-before= page text-align= center font-size= 14pt font-family= times color= green > Testo della seconda pagina dell esempio XSL-FO. </fo:block> </fo:flow> </fo:page-sequence> </fo:root> Come detto in precedenza, il modello della pagina master viene definito con l elemento <singlepage-master>. Nel nostro caso, al suo interno, abbiamo specificato le misure di un foglio in formato A4 utilizzando gli attributi dell elemento. Inoltre abbiamo indicato anche la dimensione dell intestazione (con l elemento <region-before>), la dimensione del piè di pagina (con l elemento <region-after>) e del contenuto della pagina (con l elemento <region-body>). Una volta stabilito il modello della pagina andiamo a specificare il contenuto delle pagine del nostro documento con l elemento <page-sequence>. Gli elementi che troviamo al suo interno sono: <title>: permette di specificare il titolo del documento; <static-content>: indica le informazioni che verranno ripetute in ogni pagina; <flow>: elemento che contiene il contenuto delle pagine. Nel nostro esempio abbiamo definito, in <static-content>, l intestazione delle pagine del documento contenente il titolo e il piè di pagina con il numero di pagina, che viene calcolato in maniera automatica grazie al tag <page-number>. Nell elemento <flow> abbiamo definito il contenuto delle due pagine che costituiscono il nostro esempio. Il risultato della trasformazione del documento di esempio da parte del processore XSL-FO è il documento PDF mostrato in figura. Se volessimo creare un documento XSL-FO in grado di visualizzare il contenuto di un documento 13

14 XML allora sarebbe necessario applicare una prima trasformazione XSLT al file XML, in modo da produrre il file XSL-FO con le regole di impaginazione. Una volta prodotto questo documento saremmo in grado di utilizzare il processore XSL-FO per creare, ad esempio, un documento PDF contenente i dati del documento XML di partenza. Per maggiori approfondimenti su XSL-FO vi rimando, anche in questo caso, alla lettura della specifica sul sito del W3C, all indirizzo: Il processore utilizzato per realizzare l esempio è FOP, un processore XSL-FO, sviluppato in Java e liberamente prelevabile all indirizzo: XLink In questo capitolo iniziamo a parlare delle tecnologie della famiglia dei linguaggi XML che si occupano della gestione del collegamento tra le risorse. Di questa categoria fanno parte XLink, che analizzeremo in questo capitolo, e XPointer, di cui parleremo nel prossimo capitolo. XLink XLink è un linguaggio basato su XML per definire dei link (collegamenti) tra risorse. Il concetto di link è già presente ed è ampiamente usato in HTML, grazie al tag <a> con il quale è possibile inserire all interno di una pagina HTML dei link a delle risorse (pagine html, immagini, file, etc.) esterne o interne alla nostra pagina. Il link utilizzato in HTML risente però di alcune limitazioni: è singolo: un link HTML può puntare ad una sola risorsa alla volta; è sematicamente povero: non è possibile caratterizzare in qualche modo il link HTML a seconda della risorsa puntata. Un link ad un immagine è semanticamente identico ad un link ad una pagina HTML. è unidirezionale: il link può essere percorso in un unica direzione, dalla sorgente al destinatario. Il documento che contiene il link, conosce la risorsa esterna a cui deve collegarsi, ma la risorsa esterna non conosce i documenti da cui è puntata; è difficilmente granulare: è possibile inserire un link che punti ad una parte precisa di un documento HTML e non solo al documento intero, ma questo processo è macchinoso. Infatti dobbiamo andare a modificare il documento di destinazione, inserendo degli appositi tag nelle parti del documento a cui vogliamo collegarci. XLink nasce con l intento di ovviare ai problemi appena visti che affliggono i link HTML e quindi con XLink siamo in grado di definire dei link multipli, multidirezionali e caratterizzarli anche dal punto di vista semantico. I link XML (XLink) possono essere di due tipi: i simple link (link semplici) e gli extended link (link estesi). I simple link, come suggerisce la parola stessa, sono una versione semplificata dei link XML e sono concetualmente molto simili al link HTML in quanto sono link singoli ed unidirezionali; gli extended link invece sono la versione completa dei link XML. Iniziamo a vedere un esempio di simple link. <immagine xmlns:xlink= xlink:type= simple xlink:href= img/immagine_esempio.png xlink:actuate= onrequest 14

15 xlink:show= replace xlink:title= Esempio XLink Semplice xlink:role= /> Secondo la sintassi XLink, non esiste un tag particolare per indicare un collegamento, ma qualsiasi elemento può diventare un link se al suo interno è presente l attributo xlink:type con valore simple o extended. Quindi con xlink:type= simple abbiamo trasformato l elemento <immagine> in un link XML. L attributo xlink:href permette di specificare l indirizzo della risorsa puntata dal link, mentre i restanti attributi servono a determinare il comportamento del link (xlink:show e xlink:activate) e a descrivere la risorsa linkata (xlink:title e xlink:role). Xlink:show indica come deve essere mostrato il contenuto della risorsa quando il link viene attivato, con replace ad esempio il documento destinatario viene sostituito al documento di origine all interno della finestra. Xlink:actuate indica quando il link deve essere attivato, ad esempio quando il documento viene caricato o in seguito al click dell utente (come nel nostro caso). L attributo xlink:title contiene una descrizione testuale della risorsa puntata, mentre xlink:role contiene un URI relativo ad un documento che descrive in maniera completa la risorsa linkata. Passiamo adesso a descrivere gli extended link, considerando il seguente esempio di un documento XML in cui compaiono le informazioni di alcuni libri. Se volessimo relativamente al nome dell autore dei libri inserire dei link a delle risorse relative all autore (ad esempio alla sua biografia, alla sua foto, alla lista delle sue opere) in HTML avremmo dovuto definire un link per ogni risorsa. Utilizzando gli extended link invece possiamo fare le stesse cose con un unico link. <autore xmlns:xlink= xlink:type= extended > <name xlink:type= resource xlink:label= nome-autore > Mario Rossi </name> <biografia xlink:type= locator xlink:href= nome-di-un-dominio/biog-rossi.xml xlink:title= Biografia di Mario Rossi xlink:role= nome-di-un-dominio/descrizione-biografia.xml xlink:label= biografia-autore /> <immagine xlink:type= locator xlink:href= nome-di-un-dominio/foto-rossi.png xlink:title= Foto di Mario Rossi xlink:role= nome-di-un-dominio/descrizione-fotografia.xml xlink:label= fotografia-autore /> <opere xlink:type= locator xlink:href= nome-di-un-dominio/opere-rossi.xml xlink:title= Opere di Mario Rossi xlink:role= nome-di-un-dominio/descrizione-opere.xml xlink:label= opere-autore /> <connessione xlink:type= arc xlink:from= nome-autore xlink:to= biografia-autore xlink:show= replace xlink:actuate= onrequest /> <connessione xlink:type= arc xlink:from= nome-autore 15

16 xlink:to= fotografia-autore xlink:show= replace xlink:actuate= onrequest /> <connessione xlink:type= arc xlink:from= nome-autore xlink:to= opere-autore xlink:show= replace xlink:actuate= onrequest /> </autore> Gli extended link sono link multipli e multidirezionali, sparisce quindi il concetto di sorgente e destinazione di un link. Le risorse si dividono in locali (quelle contenute all interno dell extended link) e remote (quelle esterne all extended link). Con l attributo xlink:type= locator (nel nostro esempio presenti negli elementi <biografia>, <immagine> e <opere>) si identifica una risorsa esterna, mentre con xlink:type= resource (presente nell elemento <nome>) si indica una risorsa locale. Una volta definite le risorse locali e remote che sono coinvolte nell extended link, dobbiamo indicare quali sono i collegamenti tra queste risorse, in quale direzione viene percorso il collegamento, il tipo di azione e il comportamento associato all attivazione del link. Un collegamento è costituito da un elemento XML (nel nostro esempio è l elemento <connessione>) con l attributo xlink:type= arc. Con xlink:show e xlink:activate definiamo il comportamento dell arco come nel caso del simple link. Con xlink:from e xlink:to indichiamo il verso di percorrenza del link, specificandone rispettivamente la sorgente e la destinazione. Gli extended link possono essere definiti anche esternamente al file XML, inserendoli in un documento separato che prende il nome di linkbase e che costituisce una sorta di archivio di link estesi. In questo modo è possibile modificare i link XML senza andare a modificare il documento XML. Possiamo utilizzare gli extended link andando ad inserire all interno del file XML, un link che punti al linkbase contenente tutte le definizioni dei link XML. Ad esempio: <archiviolink xlink:type= xlink:extended xmlns:xlink= > <sorgente xlink:type= locator xlink:label= source /> <links xlink:type= locator xlink:label= linkbase xlink:href= nome-di-un-dominio/linkbase-esempio.xml /> <collegamento xlink:type= arc xlink:arcrole= xlink:from= source xlink:to= linkbase xlink:actuate= onload /> </archiviolink> Il fatto che questo link si tratti di un collegamento ad un linkbase e non ad una risorsa qualsiasi è indicato dall attributo xlink:arcrole (presente all interno di <collegamento>) che indica il documento con la descrizione estesa del tipo di arco. Il link viene attivato al caricamento del documento XML e questo fa si che l applicazione analizzi il linkbase andando a recuperare i link estesi. 16

17 Al momento attuale non sono molte le implementazioni di xlink e la maggior parte di queste si limitano alla gestione dei simple link. Per maggiori informazioni vi consiglio, anche in questo caso, di andare a leggere la specifica ufficiale di XLink all indirizzo: XPointer Nello capitolo dedicato ad XLink abbiamo visto come è affrontato in XML il problema del collegamento tra risorse. Ora andiamo invece ad analizzare un linguaggio che ci permette di avere una maggiore granularità nel collegamento tra risorse. XML Pointer language (XPointer) è un linguaggio ideato per indirizzare parti di un documento XML. Con XPointer abbiamo uno strumento per indirizzare precisi punti o porzioni di un documento. Da notare che le parti di documento sono linkate senza che si debba andare a modificare il documento di destinazione, come avviene ad esempio in HTML. Infatti se volessimo linkare un elemento all interno di una pagina HTML, dovremmo marcarlo con un tag, come in questo esempio: <a name= mio-link >parte link</a> Fatto questo allora potremmo costruire un collegamento a quella scritta di esempio con il seguente link: <a href= nome-di-un-dominio/esempio.html#mio-link >Collegamento</a> Questo è un sistema poco pratico perchè impone di andare a modificare il documento di destinazione (cosa non sempre possibile), indicando tutti i punti verso i quali si vuole costruire un link. XPointer ci permette di ovviare a questo problema e di specificare dei link a porzioni di un documento senza doverlo modificare. XPointer usa la sintassi XPath, con qualche estensione, per identificare le parti di documento da indirizzare. Consideriamo il seguente file di esempio: <rubrica> <persona> <nome>mario</nome> <cognome ID= p1 >Rossi</cognome> <indirizzo> <via>via bianchi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso>123456</telefono_fisso> <telefono_cellulare> </telefono_cellulare> </telefono> </persona> <persona> <nome>carlo</nome> <cognome ID= p2 >Bianchi</cognome> <indirizzo> 17

18 <via>via rossi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso>123456</telefono_fisso> <telefono_cellulare> </telefono_cellulare> </telefono> <persona> <persona> <nome>giovanni</nome> <cognome ID= p3 >Verdi</cognome> <indirizzo> <via>via verdi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso> </telefono_fisso> <telefono_cellulare> </telefono_cellulare> </telefono> <persona> </rubrica> Basandoci su questo documento andiamo a considerare i seguenti esempi di espressioni XPointer: Questa espressione XPointer permette di stabilire un link all elemento <persona> (che contiene il tag <cognome> con valore pari a Rossi ) contenuto nel file di esempio identificato dall URI Stabilisce un link con l ultimo elemento <persona> del nostro file di esempio. Crea un link con tutti gli elementi <nome> contenuti all interno dei tag <persona> del nostro file di esempio. Le funzioni origin(), here() e id() Come emerge chiaramente dagli esempi appena visti, XPointer fa largo uso delle espressioni XPath (sia i location path che le loro espressioni abbreviate) per selezionare le parti di documento a cui collegarsi. In XPointer però sono presenti anche delle estensioni alle espressioni XPath che mettono a disposizione delle funzioni per accedere più velocemente a certe parti del documento. Queste estensioni sono: id(), here(), origin(). La funzione id() consente di selezionare l elemento all interno del documento XML, che ha l attributo ID con valore pari al quello specificato come paramentro della funzione. Ad esempio: 18

19 p1 )) Questa espressione crea un link con l elemento del file di esempio con attributo ID pari a p1 (che nel nostro caso corrisponde all elemento <cognome> con valore pari a Rossi ) ed è del tutto equivalente all uso della seguente espressione xpointer: Ovviamente la funzione id() può essere usata solamente se sono presenti degli elementi con attributo ID, nel documento a cui vogliamo collegarci. La funzione here() restituisce un riferimento al nodo che contiene l espressione XPointer. Questa funzione è molto utile nel caso di link all interno dello stesso documento perchè facilita la costruzione di link ad elementi successivi o precedenti rispetto al nodo in considerazione. Ad esempio: <rubrica> <persona> <nome>mario</nome> <cognome ID= p1 >Rossi</cognome> <indirizzo> <via>via bianchi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso>123456</telefono_fisso> <telefono_cellulare> </telefono_cellulare> </telefono> <precedente xlink:type= simple xlink:href= here()/../preceeding::persona[1] /> <successivo xlink:type= simple xlink:href= here()/../following::persona[1] /> </persona> <persona> <nome>carlo</nome> <cognome ID= p2 >Bianchi</cognome> <indirizzo> <via>via rossi 1</via> <cap>00000</cap> <citta>roma</citta> </indirizzo> <telefono> <telefono_fisso>123456</telefono_fisso> <telefono_cellulare> </telefono_cellulare> </telefono> <precedente xlink:type= simple xlink:href= here()/../preceeding::persona[1] /> <successivo xlink:type= simple xlink:href= here()/../following::persona[1] /> </persona> <persona> <nome>giovanni</nome> <cognome ID= p3 >Verdi</cognome> <indirizzo> <via>via verdi 1</via> <cap>00000</cap> <citta>roma</citta> 19

20 </indirizzo> <telefono> <telefono_fisso> </telefono_fisso> <telefono_cellulare> </telefono_cellulare> </telefono> <precedente xlink:type= simple xlink:href= here()/../preceeding::persona[1] /> <successivo xlink:type= simple xlink:href= here()/../following::persona[1] /> <persona> </rubrica> In questo caso abbiamo inserito all interno del nostro esempio due link XML, che utilizzando la funzione here(), costituiscono due collegamenti agli elementi <persona> precedenti e successivi rispetto all elemento contenente il link. La funzione origin() restituisce un riferimento alla sorgente del link. Questa, a differenza di here(), è molto utile nei casi di link tra risorse contenute in differenti file XML; infatti grazie a origin() possiamo ottenere un riferimento al documento XML dal quale è stato attivato il link. Collegamenti all interno dei singoli nodi Fino ad adesso abbiamo visto come creare dei collegamenti ai singoli nodi contenuti all interno di un documento XML.In XPointer però è possibile stabilire dei collegamenti anche alle informazioni contenute all interno dei singoli nodi. Questo può essere molto utile nel caso di nodi XML che contengono al loro interno informazioni testuale non formattate XML. Ad esempio considerando il nodo <nome>mario</nome>, in XPointer è possibile creare un link, ad esempio a qualsiasi carattere contenuto all inteno dell elemento <nome>. Per far questo XPointer mette a disposizione delle funzioni per analizzare le stringhe contenute nel nodo e determinare il punto preciso od intervalli di valori a cui vogliamo collegarci. La prima funzione che descriveremo è string-range e permette di identificare un intervallo all interno di un particolare nodo od insieme di nodi. La sua sintassi è: String-range(location-set, substring, index, length). Il paramentro location-set identifica i nodi da analizzare; substring permette di specificare la sottostringa da ricercare; index e length indicano rispettivamente quali caratteri e quanti caratteri considerare, dopo la sottostringa trovata. Ad esempio: xpointer(string-range(/, Bianchi,4,3)[position()=1]) Questa espressione stabilisce un link con la prima occorrenza della stringa Bianchi contenuta all interno del nostro file di esempio ed in particolare ricerca la sottostringa chi, identificata dagli ultimi due parametri della funzione string-range. Le altre funzioni, presenti in XPointer per identificare gli intervalli o i loro estremi, sono: start-point(): indica il primo carattere della stringa trovata; end-point(): indica il primo carattere dopo il carattere finale della stringa trovata; range(): indentifica l intero intervallo; range-inside(): indica l intervallo contenuto all interno di un elemento (escludendo però i 20

21 tag iniziali e finali); range-to(): inserito alla fine di un location path, identifica la parte finale dell intervallo. Ad esempio: Identifica il punto iniziale della stringa Rossi contenuta all interno dell elemento con ID= p1. p1 ), Rossi ))) Questa espressiona seleziona tutto ciò che è contenuto tra il primo tag <persona> e l ultimo tag </persona> contenuti nel nostro file d esempio. Conoscendo la struttura del documento verso il quale vogliamo costruire un link, XPointer ci permette di identificare una parte contando gli elementi figli, partendo dal nodo root fino ad arrivare all elemento desiderato. Ad esempio: I due esempi ci permettono di identificare il primo ed il secondo figlio del terzo figli del nodo root, che nel nostro esempio corrisponde agli elementi <nome>giovanni</nome> e <cognome>verdi</cognome>. Potete trovare maggiori dettagli ed informazioni su XPointer andando a leggere la specifica del linguaggio all indirizzo: XML Base In questo capitolo andiamo ad affrontare la descrizione di una tecnologia XML che rientra nell ambito del collegamento tra risorse e che costituisce una sorta di supporto alla scrittura di URI in XML. XML Base è un meccanismo che permette di definire l URI di base dei link contenuti all interno di un documento XML. Il funzionamento di XML Base è molto simile a quello del tag <base> presente in HTML, dove utilizzando questo tag siamo in grado di stabilire l URI base per tutti i collegamenti contenuti all interno del file HTML. Ad esempio: <html> <head> <title>esempio HTML Base</title> <base href= > </head> <body> <a href= link-di-esempio.html >Link di esempio</a> </body> </html> Grazie all uso di <base>, il link presente in questo esempio punterà al file identificato dall URI XML Base realizza lo stesso meccanismo in XML e permette quindi di semplificare la scrittura di URI all interno di un documento XML. 21

22 Tutto questo viene realizzato utilizzando l attributo xml:base che, inserito all interno di un elemento di un documento XML, permette di specificare l URI base per i link contenuti all interno dell elemento. Consideriamo il seguente esempio: <archivio_immagini xml:base= xmlns:xlink= > <immagine xlink:type= simple xlink:title= Immagine 1 xlink:actuate= onrequest xlink:href= immagine1.png /> <immagine xlink:type= simple xlink:title= Immagine 2 xlink:actuate= onrequest xlink:href= immagine2.png /> <immagine xlink:type= simple xlink:title= Immagine 3 xlink:actuate= onrequest xlink:href= immagine3.png /> </archivio_immagini> L attributo xml:base presente nell elemento <archivio_immagini> stabilisce l URI base per tutti i link XML di tipo semplice presenti al suo interno e quindi, ad esempio, il primo XML link costituisce un collegamento alla risorsa identificata dall URI: Per approfondire la conoscenza di XML Base, come al solito vi consiglio di andare a leggere la specifica ufficiale W3C all indirizzo XQuery In questo capitolo analizziamo una tecnologia ideata per il recupero delle informazioni memorizzate all interno di un file XML. È molto importante per la diffusione e l utilizzo di XML nell ambito di documenti contenenti grandi quantità di dati, avere a disposizione uno strumento relativamente facile e potente per poter recuperare l informazione presente in un file XML. Questo strumento deve permettere di realizzare delle query (interrogazioni) sul documento proprio come avviene ad esempio con il linguaggio SQL nel caso dei database relazionali. XML Query languge (XQuery) nasce proprio con l intento di realizzare un linguaggio per recuperare agevolmente le informazioni da un documento XML ed andare a costituire una sorta di SQL per XML. XQuery non è un linguaggio basato su XML ed è costituito da una sintassi semplice e facilmente leggibile per formulare, nel modo più agevole possibile, le query sui dati. Il working group del W3C ha sviluppato anche ua versione di XQuery con sintassi XML, chiamata XQueryX di cui parleremo in seguito. Prima di iniziare a parlare in dettaglio di XQuery, introduciamo il documento XML di esempio che utilizzeremo per realizzare le query nel corso degli esempi. Consideriamo l esempio di un documento XML (chiamato arch_libri.xml) nel quale sono memorizzate le informazioni relative ad un archivio formato da numerosi libri dove, per ogni libro, l informazione viene strutturata nel seguente modo (per semplicità ne riportiamo solamente la struttura base): <libro> <titolo>titolo_del_libro</titolo> <autore>autore_del_libro</autore> 22

23 <editore>editore_del_libro</editore> <prezzo>prezzo_del_libro</prezzo> </libro> Una query in XQuery è costituita da un espressione che legge una sequenza di nodi XML od un singolo valore e restituisce come risultato una sequenza di nodi od un singolo valore. Le espressioni XQuery sono composte da espressioni XPath per individuare i nodi da analizzare e da delle funzionalità aggiuntive specifiche di XQuery per il recupero delle informazioni. Esempio di query document( arch_libri.xml )//libro[prezzo > 50] SORTBY (autore) Questa query ricerca all interno del nostro documento d esempio tutti i nodi <libro> che hanno un prezzo maggiore di 50 e ordina il risultato in funzione del nome dell autore. L espressione principale utilizzata in XQuery, per formulare interrogazioni complesse, è quella che viene chiamata espressione FLWR (For-Let-Where-Return). Questa espressione costituisce una generalizzazione del costrutto SELECT-FROM-HAVING-WHERE del linguaggio SQL e se avete già dimestichezza con le query SQL sarete sicuramente avvantaggiati nella comprensione degli esempi di espressioni XQuery. Consideriamo il seguente esempio: FOR $e IN document( arch_libri.xml )//editore LET $l := document( arch_libri.xml )//libro[editore=$e] WHERE count($l) > 5 RETURN <risultato> {$e} </risultato> La prima istruzione crea una lista (associata alla variabile $e ) contenente tutti gli editori presenti nel nostro archivio. La seconda riga associa a ciascun editore, la lista dei libri da lui editi (variabile $l ), andando a creare una lista ordinata di tuple formate da ($e,$l). Tramite la terza riga, determiniamo un filtro sulla risposta andando a considerare solamente gli editori hanno pubblicato più di cinque libri. L ultima istruzione (RETURN) crea il risultato inserendo all interno di un elemento chiamato <risultato>, i nodi <editore> che soddisfano i criteri della nostra query. La funzione count() presente in questo esempio è una delle funzioni che XQuery matte a disposizione per operare sulle liste di elementi. Le funzioni principali che XQuery offre oltre a count() (che restituisce il numero di elementi presenti) sono: avg(), per calcolare il valor medio dei valori degli elementi union(), intersection(), difference() che realizzano operazioni insiemistiche sugli elementi. Costrutti particolari XQuery supporta anche il costrutto IF-THEN-ELSE all interno delle sue espressioni. Ad esempio: FOR $l IN document( arch_libri.xml )//libro RETURN <risultato> { IF ($l/editore = Editore1 ) 23

Linguaggi ed Applicazioni mul1mediali

Linguaggi ed Applicazioni mul1mediali Linguaggi ed Applicazioni mul1mediali 06.05 XLST Maurizio Maffi ISTI Informa1on Science and Technology Ins1tute Da XSL a XSLT XSL o extensible Stylesheet Language, è un linguaggio XML creato inizialmente

Dettagli

In un documento XML il markup è separato dal contenuto e può contenere conteno. Si veda il modulo su XML del corso di...

In un documento XML il markup è separato dal contenuto e può contenere conteno. Si veda il modulo su XML del corso di... Approfondimenti di XML Un utile editor per XML : http://pollo.sourceforge.net/ Ci sono varie ragioni per cui l XML ha acquisito una certa importanza. L XML crea documenti e dati indipendenti dall applicazione

Dettagli

La 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 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

Dettagli

XSL: extensible Stylesheet Language

XSL: extensible Stylesheet Language XSL: extensible Stylesheet Language XSL è un insieme di tre linguaggi che forniscono gli strumenti per l elaborazione e la presentazione di documenti XML in maniera molto flessibile. I tre linguaggi devono

Dettagli

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS CSS e XML Per formatare i documenti XML è possibile seguire due strade: Quando non c è bisogno della potenza elaborativa di XSL, l utilizzo

Dettagli

Corso 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. 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)

Dettagli

Linguaggi per il web oltre HTML: XML

Linguaggi 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

Dettagli

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server

Dettagli

extensible Markup Language

extensible 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

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit 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

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

MODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML

MODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML MODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML Thomas Imolesi imolesi@libero.it fti@bologna.enea.it XML un linguaggio

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 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

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al 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,

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso 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

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

Dettagli

DATABASE RELAZIONALI

DATABASE RELAZIONALI 1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 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,

Dettagli

MANUALE D USO DELLA PIATTAFORMA ITCMS

MANUALE D USO DELLA PIATTAFORMA ITCMS MANUALE D USO DELLA PIATTAFORMA ITCMS MANULE D USO INDICE 1. INTRODUZIONE... 2 2. ACCEDERE ALLA GESTIONE DEI CONTENUTI... 3 3. GESTIONE DEI CONTENUTI DI TIPO TESTUALE... 4 3.1 Editor... 4 3.2 Import di

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I 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

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Le Basi di Dati. Le Basi di Dati

Le 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

Dettagli

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Settimana I...1. Giorno 1 - Introduzione all XSLT...3

Settimana 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...

Dettagli

Guida all uso di Java Diagrammi ER

Guida 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

Dettagli

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

connessioni 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

Dettagli

Introduzione al linguaggio XSL (exensible Styles Language) XSLT(eXensible Styles Language Trasformations)

Introduzione al linguaggio XSL (exensible Styles Language) XSLT(eXensible Styles Language Trasformations) Introduzione al linguaggio XSL (exensible Styles Language) XSLT(eXensible Styles Language Trasformations) Lezione del Corso Interazione Uomo Macchina 1, Docente Francesco Mele Corso di Laurea in Informatica

Dettagli

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Introduzione ai Sistemi di Gestione di Basi di Dati XML Introduzione ai Sistemi di Gestione di Basi di Dati Introduzione ai Sistemi di Gestione di Basi di Dati Obiettivi Memorizzare ed estrarre documenti da RDBMS. Trasformare dati tabellari in dati e viceversa.

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Basi di Dati Multimediali. Fabio Strocco

Basi di Dati Multimediali. Fabio Strocco Basi di Dati Multimediali Fabio Strocco September 19, 2011 1 Contents 2 Introduzione Le basi di dati (o database) hanno applicazioni in molti campi, in cui è necessario memorizzare, analizzare e gestire

Dettagli

Il database management system Access

Il 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

Dettagli

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

ARCHIVI 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).

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

XML 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 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

Working Draft 0.5 (Telefonia)

Working 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

Dettagli

SQL Server 2005. Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

SQL Server 2005. Integration Services. SQL Server 2005: ETL - 1. Integration Services Project atabase and ata Mi ni ng Group of P ol itecnico di Torino atabase and ata Mi ni ng Group of P ol itecnico di Torino atabase and data mining group, SQL Server 2005 Integration Services SQL Server 2005:

Dettagli

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. 2ELHWWLYL GD UDJJLXQJHUH SHU JOL VWXGHQWL alla fine dell esercitazione gli studenti dovranno essere in grado di: 1. utilizzare

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Manuale scritto da Fuso Federico 4 A Anno scolastico 2011/2012 Parte 1

Manuale scritto da Fuso Federico 4 A Anno scolastico 2011/2012 Parte 1 Manuale scritto da Fuso Federico 4 A Anno scolastico 2011/2012 Parte 1 Chi può riuscire a creare pagine HTML? La realizzazione di pagine web non eccessivamente sofisticate è alla portata di tutti, basta

Dettagli

Indice. Introduzione. Capitolo 1

Indice. 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

Dettagli

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso 2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Organizzazione degli archivi

Organizzazione 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

Dettagli

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia Scuola Digitale Manuale utente Copyright 2014, Axios Italia 1 SOMMARIO SOMMARIO... 2 Accesso al pannello di controllo di Scuola Digitale... 3 Amministrazione trasparente... 4 Premessa... 4 Codice HTML

Dettagli

Dexma Newsletter System

Dexma Newsletter System Dexma Newsletter System Quick Reference Indice Indice... 2 1 Introduzione a Postletter... 3 2 Richiesta di un account Demo... 3 3 Liste di invio... 5 3.1 Creazione di una lista... 5 3.2 Andare alla lista

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

Progetto ittorario Anno scol. 2013-2014

Progetto ittorario Anno scol. 2013-2014 PROGETTO ittorario Scopo: Creazione di una pagina web che mostri l orario di un docente, della classe della materia o dell aula a discrezione dell utente. Sviluppatori: Progetto sviluppato dalla classe

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l. Progetto SITI Manuale Utente SITI-Reports ABACO S.r.l. ABACO S.r.l. C.so Umberto, 43 46100 Mantova (Italy) Tel +39 376 222181 Fax +39 376 222182 www.abacogroup.eu e-mail : info@abacogroup.eu 02/03/2010

Dettagli

Sistemi Informativi e Basi di Dati

Sistemi 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

Dettagli

Gestione del workflow

Gestione del workflow Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario

Dettagli

APPENDICE C extensible Markup Language

APPENDICE 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

Dettagli

Reti di Calcolatori. Il Livello delle Applicazioni

Reti di Calcolatori. Il Livello delle Applicazioni Reti di Calcolatori Il Livello delle Applicazioni Il DNS Gli indirizzi IP sono in formato numerico: sono difficili da ricordare; Ricordare delle stringhe di testo è sicuramente molto più semplice; Il Domain

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

URI. Introduzione. Pag. 1

URI. Introduzione. Pag. 1 URI Introduzione Gli URI (Universal Resource Indentifier) sono una sintassi usata in WWW per definire i nomi e gli indirizzi di oggetti (risorse) su Internet. Questi oggetti sono considerati accessibili

Dettagli

Dati relazionali e XML

Dati relazionali e XML Dati relazionali e Introduzione (1) Memorizzazione dei dati Utilizzo dei dati Applicazione DBMS relazionale Applicazione Applicazione 2 Introduzione (2) Memorizzazione dei dati Utilizzo dei dati Applicazione

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Basi di Dati Claudio Marrocco I report I Report sono lo strumento più adatto per ottenere una copia stampata dei dati e delle informazioni ricavate dalle

Dettagli

Corso 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. 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

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. 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

Dettagli

7. Microsoft Access. 1) Introduzione a Microsoft Access

7. Microsoft Access. 1) Introduzione a Microsoft Access 1) Introduzione a Microsoft Access Microsoft Access è un programma della suite Microsoft Office utilizzato per la creazione e gestione di database relazionali. Cosa è un database? Un database, o una base

Dettagli

Progettazione di una base di dati Ufficio della Motorizzazione

Progettazione di una base di dati Ufficio della Motorizzazione Corso di Gestione dell Informazione Studenti NON frequentanti A.A. 2008/2009 1 Scopo del progetto Progettazione di una base di dati Ufficio della Motorizzazione Si vuole realizzare un applicazione base

Dettagli

Le query di raggruppamento

Le query di raggruppamento Le query di raggruppamento Le "Query di raggruppamento" sono delle Query di selezione che fanno uso delle "Funzioni di aggregazione" come la Somma, il Conteggio, il Massimo, il Minimo o la Media, per visualizzare

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI 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

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

Organizzazione delle informazioni: Database

Organizzazione delle informazioni: Database Organizzazione delle informazioni: Database Laboratorio Informatico di base A.A. 2013/2014 Dipartimento di Scienze Aziendali e Giuridiche Università della Calabria Dott. Pierluigi Muoio (pierluigi.muoio@unical.it)

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

GESGOLF SMS ONLINE. Manuale per l utente

GESGOLF SMS ONLINE. Manuale per l utente GESGOLF SMS ONLINE Manuale per l utente Procedura di registrazione 1 Accesso al servizio 3 Personalizzazione della propria base dati 4 Gestione dei contatti 6 Ricerca dei contatti 6 Modifica di un nominativo

Dettagli

I file di dati. Unità didattica D1 1

I 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à

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. 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

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento 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

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Esercizio sui data base "Gestione conti correnti"

Esercizio sui data base Gestione conti correnti Database "Gestione conto correnti" Testo del quesito La banca XYZ vuole informatizzare le procedure di gestione dei conti correnti creando un archivio dei correntisti (Cognome, Nome, indirizzo, telefono,

Dettagli

(anno accademico 2008-09)

(anno accademico 2008-09) Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato

Dettagli

Fogli Elettronici: MS Excel utilizzo avanzato

Fogli Elettronici: MS Excel utilizzo avanzato Fogli Elettronici: MS Excel utilizzo avanzato 1 Ripasso 2 1 Selezionare celle e gruppi di celle Una cella in un foglio è individuata dall incrocio tra la riga e la colonna (coordinate della cella) Es:

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Introduzione 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 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,

Dettagli

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO 1 Installazione e requisiti per il corretto funzionamento del sito: L istallazione è possibile sui più diffusi sistemi operativi. Il pacchetto

Dettagli

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE Che cosa sono e a cosa servono le caratteristiche? Oltre a descrivere le qualità di un prodotto con un testo generico (descrizione) è possibile dettagliare

Dettagli

2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato.-3 -- Finestra attiva o nuovo documento

2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato.-3 -- Finestra attiva o nuovo documento 1 Fortino Lugi STAMPA UNIONE OFFICE 2000 Vi sarà capitato sicuramente di ricevere lettere pubblicitarie indirizzate personalmente a voi; ovviamente quelle missive non sono state scritte a mano, ma utilizzando

Dettagli

Creare un sito Multilingua con Joomla 1.6

Creare un sito Multilingua con Joomla 1.6 Creare un sito Multilingua con Joomla 1.6 Istruzioni Vai a: navigazione, ricerca Testo originale: http://docs.joomla.org/language_switcher_tutorial_for_joomla_1.6 Questa guida è valida sia per Joomla 1.6

Dettagli

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template. I TEMI PREDEFINITI (TEMPLATE) Scelta del tema I temi predefiniti di wordpress sono la base di un sito che usa un utente che per ragioni pratiche o per incapacità non può creare un sito usando solo codice

Dettagli

Uso dei modelli/template

Uso dei modelli/template Uso dei modelli/template Il modello (o template, in inglese) non è altro che un normale file di disegno, generalmente vuoto, cioè senza alcuna geometria disegnata al suo interno, salvato con l estensione.dwt.

Dettagli