XML extensible Markup Language

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "XML extensible Markup Language"

Transcript

1 XML extensible Markup Language Evoluzione dei modelli dei dati Extended/Object Relational Data Model Objects & Functions Predefined complex Types XML Data Model Self-defining Data Standard DDL NF2 Data Model Nested Relations Hierarchical Fields Predefined simple Types Relational Data Model Flat Relations Predefined, simple Types Web data Sommario Definizione e storia di extended Markup Language (XML) elementi attributi Schemi documentali: Document Type Definition (DTD) XML Schema Definition (XSD) XML Concezione originale: un meta-linguaggio per la specifica di linguaggi di markup Come in HTML (ma anche WML,...) I dati XML sono documenti Le proprietà dei dati sono espresse mediante marcatura del contenuto Come nelle basi di dati Esiste un modello dei dati (DTD, XSD) Esistono linguaggi di query e trasformazione (XQuery, XSL) I dati sono neutri rispetto alle modalità di rappresentazione XML extensible Markup Language Formato di file proposto dal W3C per distribuire documenti elettronici sul World Wide Web Esempi di documenti elettronici: libri, manuali, cataloghi di prodotti, moduli d ordine, giornali, formule matematiche, messaggi,... Evoluzione 1986: Standard Generalized Markup Language (SGML) ISO Novembre 1995: HTML 2.0 Gennaio 1997: HTML 3.2 Agosto 1997: XML W3C Working Draft Feb 10, 1998: XML 1.0 Recommendation Dec. 13, 2001: XML 1.1 W3C Working Draft Oct. 15, 2002 : XML 1.1 W3C Candidate Recommendation

2 XML HTML: insieme fisso di tag XML: standard per creare linguaggi di markup con tag personalizzati (erede di SGML); possono essere usati in qualunque dominio HTML vs XML <h1>the Idea Methodology</h1><br> <ul> <li>di S. Ceri, P. Fraternali </li> <li> Addison-Wesley</li> <li> US$ 49 </li> </ul> <book> <title>the Idea Methodology </title> <author> S. Ceri </author> <author> P. Fraternali </author> <ed> Addison-Wesley </ed> <price> US$ 49 </price> </book> Usi di XML Separare i dati dal modo con cui vengono visualizzati Scambiare i dati tra sistemi eterogenei Scambiare informazioni in sistemi B2B Condividere dati Memorizzare dati Supportare nei moderni browser visualizzazione, validazione, embedding in documenti HTML, trasformazioni con XSL, visualizzazioni con CSS E un documento di testo il software che tratta documenti testuali tratta anche XML Esempio di documento XML <elenco> <prodotto codice= 123kl14 > <descrizione> Forno </descrizione> <prezzo> </prezzo> </prodotto> <prodotto codice= 432sd35 > <descrizione> Frigo </descrizione> </prodotto> </elenco> Sintassi XML ( Un documento XML ben formato deve: Cominciare con una direttiva standard che specifica la versione di XML, ad esempio: <?xml version= 1.0?> Il documento può contenere elementi. Ogni elemento può contenere sia testo che altri elementi. Un elemento dotato di contenuto è delimitato da due tag: uno di apertura e uno di chiusura. Il tag di chiusura deve avere lo stesso nome del tag di apertura, con in più il prefisso /. I nomi di tag sono case sensitive. XML vs HTML XML non rimpiazza HTML! XML e HTML sono nati con scopi diversi: XML progettato per descrivere DATI cosa sono i dati HTML progettato per visualizzare i dati come appaiono i dati Sintassi XML ( Un documento XML ben formato deve: Se un elemento è privo di contenuto, ha un solo tag, che deve terminare con il simbolo />. Il documento deve avere un elemento radice che racchiude l intero contenuto. Se un elemento contiene sotto-elementi, il tag di chiusura di ciascun sottoelemento deve precedere il tag di chiusura del sopra-elemento. I valori degli attributi degli elementi devono essere contenuti tra virgolette (singole o doppie).

3 Elementi <prodotto codice= 123kl14 > <descrizione> Forno a ventilazione forzata </descrizione> <prezzo valuta= USD > 624 </prezzo> <immagine src= foto1.jpg /> </prodotto> Possono avere un contenuto (testo o altri elementi) Sono in relazione gerarchica (padre-figlio) Possono avere attributi Document Type Definition (DTD) Detta il tipo di un documento, cioè: i tag ammessi le regole di annidamento dei tag Scopi: Accordarsi su formato/struttura dei documenti Validare documenti XML secondo certe regole Esempio di dichiarazione di un elemento: <!ELEMENT PRODOTTO (DESCRIZIONE, PREZZO)> L elemento prodotto contiene al suo interno un elemento descrizione seguito da un elemento prezzo Attributi <prodotto codice= 123 > <descrizione> Forno </descrizione> <prezzo> 104 </prezzo> </prodotto> Proprieta con valori di tipo stringa I valori vanno racchiusi tra Differiscono dagli elementi perché non possono contenere elementi figli In genere sono usati per memorizzare metadati, ad esempio l identificatore di un elemento, la data di creazione o modifica di un dato, ecc.. Validazione di un documento XML Un documento XML la cui sintassi è corretta (cioè soddisfa le regole di scrittura di documenti XML) è detto well-formed (ben formato) Un documento che rispetta i vincoli dettati da un DTD è detto valid (valido) Metodo per evitare conflitti di nome <table> <tr>...</tr> </table> <table> <product>..</product> </table> Namespace Si introduce un prefisso <h:table xmlns:h=" <h:tr>...</h:tr> </h:table> <my:table xmlns:my=" <my:product>... </my:product> </my:table> Un XML namespace è una collezione di nomi (attributi, elementi, ), identificata da un URI (Uniform Resource Identifier) URI = nozione estesa di URL (Uniform Resource Locator) Un documento XML può far riferimento ad oggetti diversi (DTD, documenti XML, etc.). È più importante identificare un oggetto che localizzarlo Modello di contenuto Elementi con un elemento figlio <!ELEMENT PRODOTTO (DESCRIZIONE)> <PRODOTTO> <DESCRIZIONE> </DESCRIZIONE> </PRODOTTO> Elementi con una sequenza di elementi figli <!ELEMENT MAIL (TO, FROM, TITLE, BODY)> <MAIL> <TO> </TO> <FROM> </FROM> <TITLE> </TITLE> <BODY> </BODY> </MAIL> Elementi con contenuto di tipo PCDATA (parsed character data = brano di testo qualunque) <!ELEMENT DESCRIZIONE (#PCDATA)> <DESCRIZIONE> Un testo qualsiasi </DESCRIZIONE>

4 Modello di contenuto Contenuto alternativo <!ELEMENT ARTICOLO (TESTO FOTO)> <ARTICOLO><TESTO>.. </TESTO></ARTICOLO> <ARTICOLO><FOTO>.. </FOTO><ARTICOLO> Contenuto misto <!ELEMENT ARTICOLO (#PCDATA FOTO)*> <ARTICOLO> testo </ARTICOLO> <ARTICOLO><FOTO>.. </FOTO><ARTICOLO> Elementi vuoti <!ELEMENT ARTICOLO EMPTY)> <ARTICOLO/> Contenuto arbitrario <!ELEMENT NOTA ANY)> <NOTA> del testo libero</nota> <NOTA> <AUTORE>Luca</AUTORE> del testo libero</nota> Dichiarazioni di attributi Per ogni elemento dice: quali attributi può avere che valori può assumere ciascun attributo se esiste e qual è il valore di default Esempio di dichiarazione di attributo: <!ATTLIST PRODOTTO codice ID #REQUIRED label CDATA #IMPLIED status (disponibile terminato) disponibile > Occorrenze di un sottoelemento 1 volta <!ELEMENT PRODOTTO (DESCRIZIONE)> 1 o più volte <!ELEMENT LISTA (PRODOTTO+)> 0 o più volte <!ELEMENT LISTA (PRODOTTO*)> 0 o 1 volta <!ELEMENT PRODOTTO (DESCRIZIONE?)> Tipi di attributi CDATA: dati di tipo carattere (val1 val2 val3): un valore della lista ID: identificatore IDREF, IDREFS: valore di un attributo di tipo ID nel documento (o insieme di valori) ENTITY, ENTITIES: nome (nomi) di entità NMTOKEN, NMTOKENS: caso ristretto di CDATA (una sola parola o insieme di parole) codice ID #REQUIRED label CDATA #IMPLIED Status (disponibile terminato) disponibile Esempio di DTD <!ELEMENT ELENCO (PRODOTTO+)> <!ELEMENT PRODOTTO (DESCRIZIONE, PREZZO?)> <!ELEMENT DESCRIZIONE (#PCDATA)> <!ELEMENT PREZZO (#PCDATA)> <elenco> <prodotto codice= 123 > <descrizione> Forno </descrizione> <prezzo> </prezzo> </prodotto> <prodotto codice= 432 > <descrizione> Frigo </descrizione> </prodotto> </elenco> NOTA: un DTD NON è un documento XML Vincoli sugli attributi #REQUIRED: il valore deve essere specificato #IMPLIED: il valore può mancare #FIXED valore : se presente deve coincidere con valore <!ELEMENT FAX (..)> <!ATTLIST FAX Mittente CDATA #FIXED Politecnico di Milano"> Default : si può specificare un valore come default, usato quando l attributo è mancante <!ELEMENT SCONTO EMPTY> <!ATTLIST SCONTO Valore CDATA 10"> <SCONTO/> vale 10 <SCONTO valore= 15 /> vale 15

5 Un esempio completo <!DOCTYPE NEWSPAPER [ <!ELEMENT NEWSPAPER (ARTICLE+)> <!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)> <!ELEMENT HEADLINE (#PCDATA)> <!ELEMENT BYLINE (#PCDATA)> <!ELEMENT LEAD (#PCDATA)> <!ELEMENT BODY (#PCDATA)> <!ELEMENT NOTES (#PCDATA)> <!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED> <!ATTLIST ARTICLE EDITOR CDATA #IMPLIED> <!ATTLIST ARTICLE DATE CDATA #IMPLIED> <!ATTLIST ARTICLE EDITION CDATA #IMPLIED> ]> XSD vs DTD XML Schema = insieme di elementi XML standard per definire schemi di documenti detti XSD = XML Schema Definition: schema di un tipo di documenti Gli XSD sono: Estendibili (ammettono tipi riusabili definiti dall utente) In formato XML Più ricchi e completi dei DTD Capaci di supportare tipi di dati diversi da PCDATA Capaci di gestire namespace multipli Relazione tra documento e DTD DTD esterno <?XML version="1.0" standalone="no"?> <!DOCTYPE NEWSPAPER SYSTEM newspaper.dtd"> <NEWSPAPER>.. </NEWSPAPER> DTD interno <?XML version="1.0" standalone="no"?> <!DOCTYPE NEWSPAPER [ <!ELEMENT NEWSPAPER( )>... ]> <NEWSPAPER>.. </NEWSPAPER> Documento XML con riferimento a XSD <note xmlns=" xmlns:xsi=" xsi:schemalocation= > <to> Tove </to> <from> Jani </from> <head> Reminder </head> <body> Don t forget me this weekend! </body> </note> Note: xmlns: namespace di default xmlns:xsi: URI (Universal Resource Identifier) che introduce l uso dei tag di XML Schema xsi:schemalocation: dichiara dove reperire il file XSD (sempre attraverso URI) XML Schema Storia: - inizialmente proposto da Microsoft - divenuto W3C recommendation (maggio 01) Scopo: definire gli elementi e la composizione di un documento XML in modo più preciso del DTD Un XML Schema definisce regole riguardanti: Elementi Attributi Gerarchia degli elementi Sequenza di elementi figli Cardinalità di elementi figli Tipi di dati per elementi e attributi Valori di default per elementi e attributi Esempio di XML Schema <xs:schema xmlns:xs=" <xs:element name="note"> <xs:complextype> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="head" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> xs: namespace per XSchema (contiene tutti i tag XSD)

6 Elementi semplici (Simple elements) Possono contenere solo testo (no elem. o attributi) Forme di dichiarazione: <xs:element name="nome" type="tipo"/> <xs:element name="nome" type= tipo default= xyz /> <xs:element name="nome" type= tipo fixed= xyz /> Tipi: stringhe, numerici, date, time, Boolean, ecc.. Esempi di definizione di elementi semplici in XSD <xs:element name= età type= xs:integer /> <xs:element name= cognome type= xs:string /> Esempi di elementi semplici XML <età> 65 </età> <cognome> Rossi </cognome> Enumerazione Particolare tipo di restrizione che consente di enumerare i valori di un elemento o attributo <xs:element name="car"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:enumeration value="audi"/> <xs:enumeration value="golf"/> <xs:enumeration value="bmw"/> </xs:restriction> </xs:simpletype></xs:element> Attributi Definizione di attributi <xs:attribute name="name" type="type"/> <xs:attribute default fixed= xyz use= required optional /> Esempio di definizione di attribute <xs:attribute name= lang type= xs:string /> Esempio di uso di un attributo <lastname lang= it > qwerty </lastname> Valore di default o fisso Obbligatorio o opzionale Elementi complessi (Complex elements) Esistono quattro tipi di elementi complessi: Vuoti (empty) Contenenti solo altri elementi Contenenti solo testo Contenenti testo e/o altri elementi Sintassi per definire elementi complessi: <xs:element name="name"> <xs:complextype>.. element content.. </xs:complextype> </xs:element> Restrizioni Consentono di dichiarare vincoli sui valori di un tipo elementare (detti tipi base) <xs:element name="age"> <xs:simpletype> <xs:restriction base="xs:integer"> <xs:mininclusive value="0"/> <xs:maxinclusive value="100"/> </xs:restriction> </xs:simpletype> </xs:element> Costrutto sequence Sequenza (= record): gli elementi devono apparire nell ordine indicato <xs:element name="libro"> <xs:complextype> <xs:sequence> <xs:element name="titolo type="xs:string"/> <xs:element name="autore" type="xs:string" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> La sequenza può contenere sia sottoelementi che attributi

7 Costrutto sequence con attributi <xs:element name="libro"> <xs:complextype> <xs:sequence> <xs:element name="titolo type="xs:string"/> <xs:element name="autore" type="xs:string" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="editore" type="xs:string" use="required"/> <xs:attribute name="pubblicazione" type="xs:date"/> </xs:complextype> </xs:element> Elementi EMPTY Gli elementi senza sottoelementi interni si dichiarano come complex type privi di sottoelementi <xs:element name="product"> <xs:complextype> <xs:attribute name="prodid type="xs:integer"/> </xs:complextype> </xs:element> Specifica del contenuto: costrutto all Come la sequenza ma gli elementi possono apparire nel documento in qualsiasi ordine <xs:element name="libro"> <xs:complextype> <xs:all> <xs:element name="titolo type="xs:string"/> <xs:element name="autore" type="xs:string" maxoccurs="unbounded"/> </xs:all> </xs:complextype> </xs:element> Elementi MIXED <xs:element name="letter"> <xs:complextype mixed="true"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="orderid" type="xs:integer"/> <xs:element name="shipdate" type="xs:date"/> </xs:sequence> </xs:complextype> </xs:element> Esempio <letter> Dear Mr.<name>John Smith</name>. Your order <orderid>1032</orderid> will be shipped on <shipdate> </shipdate>. </letter> Costrutto choice Sequenza (= OR) <xs:element name="parte"> <xs:complextype> <xs:choice> <xs:element name="capitolo" type="xs:string" maxoccurs="unbounded"/> <xs:element name="appendice" type="xs:string" maxoccurs="unbounded"/> </xs:choice> </xs:complextype> </xs:element> Gli elementi interni appaiono in alternativa nel documento Specifica della cardinalità Indica la cardinalità dei sotto-elementi La sintassi prevede l uso di due attributi: maxoccurs: max numero di occorrenze minoccurs: min numero di occorrenze Se non specificati: default = 1 <xs:element name="person"> <xs:complextype> <xs:sequence> <xs:element name="full_name" type="xs:string"/> <xs:element name="child_name" type="xs:string" maxoccurs="10" minoccurs="0"/> </xs:sequence> </xs:complextype> </xs:element>

8 Definizioni di tipi riusabili Consente di definire tipi e riusarli per: Tipare attributi Definire altri tipi ATTENZIONE: Definizione di tipo, non di elemento <xs:complextype name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complextype> Riuso del tipo, per definire elementi/attributi <xs:element name="employee" type="personinfo"/> <xs:element name="student" type="personinfo"/> <xs:attribute name="member" type="personinfo"/> Riferimenti Definizione di gruppi di elementi Consente di definire blocchi di elementi e riusarli per definire altri tipi o elementi (si può fare anche con attributi, usando attributegroup) <xs:group name="custgroup"> Definizione di gruppo riusablie <xs:sequence> <xs:element name="customer" type="xs:string"/> <xs:element name="orderdetails" type="xs:string"/> <xs:element name="billto" type="xs:string"/> </xs:sequence> </xs:group> <xs:element name="order" type="ordertype"/> <xs:complextype name="ordertype"> Riuso di custgroup <xs:group ref="custgroup"/> <xs:attribute name="status" type="xs:string"/> </xs:complextype> Linguaggi di interrogazione per XML Altre caratteristiche di XML Schema Estensioni di tipi Costrutti ANY/ANYATTRIBUTE Elementi contenenti solo testo, testo e attributi Interrogazione di dati XML XML è un formato di rappresentazione di dati semi-strutturati Un insieme di documenti o anche un singolo documento (ad es: la Divina Commedia) possono essere considerati come depositi interrogabili di informazione Nasce l esigenza di tecnologie di memorizzazione persistente e di interrogazione di dati in formato XML

9 Basi di dati XML Due principali famiglie di sistemi Basi di dati XML native Sfruttano tecnologie specifiche per XML per memorizzare e indicizzare collezioni di documenti Adottano linguaggi di interrogazione specifici per XML (es: XQuery) Basi di dati relazionali con supporto XML Usano il modello relazionale, esteso in modo opportuno per supportare dati XML Sfruttano estensioni di SQL per l interrogazione (es: SQL/XML) Mapping XML-relazionale Custom Il progettista definisce volta per volta a mano lo schema del database in cui riversare documenti XML Canonico Insieme di tabelle fisso indipendente dal tipo di documento. Può porre vincoli sullo schema dei documenti XML memorizzabili che devono contenere elementi predefiniti Basato sullo schema del documento: Detta regole generali per mappare strutture XML in tabelle, per esempio per mappare un generico elemento e i suoi attributi in una tabella equivalente. Non pone vincoli sui documenti memorizzabili, ma lo schema relazionale risultante varia per diversi tipi di documento Basi di dati XML native Adottano un modello logico dei dati non-relazionale, standard o proprietario ES: DOM, Xpath Data Model, XML Information Set Utilizzano schemi fisici di memorizzazione proprietari: ES: metodi basati su testo (CLOB), metodi mutuati dalle basi ad oggetti Sono in grado di gestire tutte le caratteristiche sintattiche dei documenti (si parla di document-centric XML data) ES: entity, ordine dei sottoelementi, commenti ecc.. Organizzano i dati in collezioni di documenti, con un ruolo simile alle istanze di database dei sistemi relazionali Esempi di DBMS: Tamino, Xyleme, ecc.. Architettura Il DBA può caricare documenti nel sistema ed effettuare query da console Le applicazioni passano attraverso una interfaccia programmativa (API) per memorizzare o interrogare documenti Le conversioni di formato sono a carico del processore XML, oppure dell applicazione (con l aiuto della API a disposizione) Basi di dati relazionali con supporto XML Memorizzano internamente i documenti XML in tabelle Implicano una conversione di ingresso XML relazionale e in uscita relazionale XML Differiscono per lo schema relazionale usato per mappare i dati XML Fisso, indipendente dal DTD Variabile, dipendente dal DTD Normalmente non preservano tutte le caratteristiche sintattiche di XML Esempio: supporto per dati XML in Oracle 9i -- query Uso di colonne CLOB OracleText (un tipo proprietario) e di operatori che estendono il predicato SQL CONTAINS per il reperimento di elementi in documenti XML Es: INPATH(XPath) restringe una ricerca di stringhe all interno del frammento XML denotato dall espressione XPath Uso del tipo SQL 99 XMLType, con metodi per la creazione e manipolazione di dati XML Es: existnode(varchar XPath): conta le occorrenze di sotto-elementi denotati dall espressione in ingresso; extract(varchar XPath) estrae un frammento di XML

10 Esempio: supporto per dati XML in Oracle 9i -- API XML SQL Utility (XSU) fornisce una API per programmi PL/SQL e Java Trasforma tabelle o view relazionali in documenti XML Divide in frammenti documenti XML e li inserisce in tabelle relazionali Usa un mapping canonico a tre elementi <ROWSET>, <ROW>, <COLUMN_NAME> Supporta tabelle con colonne di tipo complesso Si appoggia su JDBC e facilita la trasformazione del risultato di una query in un albero DOM, la modifica e creazione di dati XML Path expression in XPath Idea: usare una sintassi simile a quella dei pathname dei file per navigare la struttura ad albero di un documento Una espressione XPath è una stringa contenente nomi di elementi e operatori di navigazione e selezione:. Nodo corrente.. Nodo padre del nodo corrente / nodo radice, o figlio del nodo corrente // discendente del nodo attributo del nodo corrente * qualsiasi nodo [p] predicato (se l espressione p, valutata, ha valore booleano) [n] posizione (se l espressione n, valutata, ha valore numerico) XQuery Linguaggio alla SQL per l interrogazione di dati XML, definito da W3C Inizio lavori 1998 Proposta W3C: 15 Febbraio 2001 Lo standard era atteso nel Si basa su XPath per identificare frammenti XML Esempi base di path expressions Una path expression può iniziare con doc(posizione_documento) Restituisce l elemento radice del documento specificato e tutto il suo contenuto: doc ( libri.xml ) A partire dalla radice del documento si possono specificare delle espressioni per estrarre il contenuto desiderato Esempio: doc ( libri.xml )/Elenco/Libro Restituisce la sequenza di tutti gli elementi di tipo Libro contenuti nel documento libri.xml Esempio di documento <Elenco> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN> </ISBN> <Libro disponibilità= N > <Titolo>Il nome della rosa</titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> <ISBN> </ISBN> <Titolo>Il sospetto</titolo> <Autore>F. Dürrenmatt</Autore> <Data>1990</Data> <ISBN> </ISBN> <Editore>Feltrinelli</Editore> </Elenco> File: libri.xml Esempi di path expressions <Elenco> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN> </ISBN> <Libro disponibilità= N > <Titolo>Il nome della rosa</titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> <ISBN> </ISBN> <Titolo>Il sospetto</titolo> <Autore>F. Dürrenmatt</Autore> <Data>1990</Data> <ISBN> </ISBN> <Editore>Feltrinelli</Editore> </Elenco> doc ( libri.xml )/Elenco/Libro <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN> </ISBN> <Libro disponibilità= N > <Titolo>Il nome della rosa</titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> c <ISBN> </ISBN> <Titolo>Il sospetto</titolo> <Autore>F. Dürrenmatt</Autore> <Data>1990</Data> <ISBN> </ISBN> <Editore>Feltrinelli</Editore>

11 Condizioni su elementi/attributi Esempio: doc ( libri.xml )/Elenco/Libro[Editore= Bompiani ]/Titolo Restituisce la sequenza di tutti i titoli dei libri dell editore Bompiani che si trovano nel documento Risultato: <Titolo>Il Signore degli Anelli</Titolo> <Titolo>Il nome della rosa</titolo> XQuery Linguaggio alla SQL per l interrogazione di dati XML, definito da W3C Si basa su XPath per identificare frammenti XML È BASATO SULLA ELABORAZIONE DI SEQUENZE DI NODI Ricerca di sotto-elementi a qualsiasi livello Esempio: doc( libri.xml )//Autore Restituisce la sequenza di tutti gli autori che si trovano nel documento libri.xml, annidati a qualunque livello <Autore>J.R.R. Tolkien</Autore> <Autore>Umberto Eco</Autore> <Autore>F. Dürrenmatt</Autore> Espressioni FLWOR Una interrogazione XQuery è un espressione complessa che consente di estrarre parti di un documento e costruire un altro documento Si basa (tipicamente) su 5 clausole (cfr SQL): FOR iterare i valori di variabili su sequenze di nodi LET legare variabili a intere sequenze di nodi WHERE esprimere condizioni sui legami effettuati ORDER BY imporre un ordinamento alla sequenza risultante RETURN costruire il risultato (strutturato - cfr select in OQL) Condizione sulla posizione dei sottoelementi e uso di wildcard Esempio: doc ( libri.xml )/Elenco/Libro[2]/* Restituisce tutti i sottoelementi (*) contenuti nel secondo libro del documento libri.xml <Titolo>Il nome della rosa</titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> <ISBN> </ISBN> Espressioni FOR Esempio: for $libro in doc( libri.xml )//Libro return $libro La clausola for valuta la path expression, che restituisce una sequenza di elementi, e la variabile $1ibro itera all interno della sequenza, assumendo ad ogni iterazione il valore di un nodo (libro) diverso La clausola return costruisce il risultato, in questo caso l interrogazione restituisce semplicemente ogni valore legato a $1ibro - cioè di tutti i libri del documento

12 Espressioni FOR annidate Le espressioni FOR possono essere annidate: for $libro in doc( libri.xml )//Libro for $autore in $libro/autore return $autore Semantica: per ogni valore di $1ibro (libro), per ogni valore di $autore (un autore del libro corrente), inserisci nel risultato l autore legato a $autore Clausola WHERE La clausola WHERE esprime una condizione: solamente le tuple che soddisfano tale condizione vengono utilizzate per invocare la clausola RETURN Le condizioni nella clausola WHERE possono contenere diversi predicati connessi da AND e OR. Il not() è realizzato tramite una funzione che inverte il valore di verità Esempio: for $libro in doc ( libri.xml )//Libro where $libro/editore= Bompiani and $libro/@disponibilità= S return $libro Restituisce tutti i libri pubblicati da Bompiani che sono disponibili Espressioni LET Consentono di introdurre nuove variabili: let $libri := doc( libri.xml )//Libro return $libri La clausola let valuta l espressione (//Libro) e assegna alla variabile $libri l intera sequenza restituita La valutazione di una clausola let assegna alla variabile un singolo valore: l intera sequenza dei nodi che soddisfano l espressione La query dell esempio precedente è esprimibile come: for $libro IN doc( libri.xml )//Libro let $a := $libro/autore (: $a vale l intera sequenza degli autori del libro :) return $a Clausola WHERE Spesso le clausole where possono essere omesse usando opportune Path Expression Esempio: for $libro in doc( libri.xml )//Libro[Editore= Bompiani S ] return $libro Restituisce tutti i libri pubblicati da Bompiani che sono disponibili FLWR expressions: interpretazione FOR : iterazione ogni valore nella sequenza partecipa a una diversa tupla di legami LET : assegnamento di una sequenza a una variabile (non aumenta il numero di tuple di legami) WHERE : filtraggio viene valutata su ogni tupla separatamente, filtrandole in base alle condizioni espresse RETURN : ricostruzione è eseguita una volta per ciascuna tupla di legami Clausola RETURN Genera l output di un espressione FLWR che può essere: Un nodo Un foresta ordinata di nodi Un valore testuale (PCDATA) <Autore>F. Dürrenmatt</Autore> <Autore>J.R.R. Tolkien</Autore> <Autore>Umberto Eco</Autore> <Autore>F. Dürrenmatt</Autore> F. Dürrenmatt Può contenere dei costruttori di nodi, dei valori costanti, riferimenti a variabili definite nelle parti FOR e LET, ulteriori espressioni annidate

13 Clausola RETURN Un costruttore di elemento consta di un tag iniziale e di un tag finale che racchiudono una lista (opzionale) di espressioni annidate che ne definiscono il contenuto Esempio: nuovo elemento for $libro in doc( libri.xml )//Libro where $libro/editore= Bompiani return <LibroBompiani> { $libro/titolo } </LibroBompiani> espressione annidata <LibroBompiani><Titolo>Il Signore degli Anelli</Titolo></LibroBompiani> <LibroBompiani><Titolo>Il nome della rosa</titolo></librobompiani> Ordinare il risultato Esempio: for $libro in doc( libri.xml )//Libro order by $libro/titolo return <Libro> { $libro/titolo, $libro/editore } I libri vengono ordinati rispetto al titolo I matching della variabile, inizialmente generati in document order, sono riordinati prima di essere passati alla clausola return per generare il risultato Esempio (variante): Clausola RETURN for $libro in doc( libri.xml )//Libro where $libro/editore= Bompiani return <Libro-Bompiani> { $libro/titolo/text() } </Libro-Bompiani> estrae il solo contenuto PCDATA di un elemento <Libro-Bompiani>Il Signore degli Anelli</Libro-Bompiani> <Libro-Bompiani>Il nome della rosa</libro-bompiani> Funzioni aggregate Esempio: for $e in doc( libri.xml )//Editore let $libro := doc( libri.xml )//Libro[Editore = $e] where count($libro) > 100 return $e Restituisce gli editori con oltre 100 libri in elenco ATTENZIONE: la cardinalità del risultato, cioè il numeo di editori, dipende da quante volte è eseguita la return, e questo a sua volta dipende dalle clausole for (la clausola let non influenza tale cardinalità) Ogni editore promosso viene restituito oltre cento volte!!! Cardinalità delle sequenze costruite nel risultato La clausola return è eseguita tante volte quanti sono i distinti assegnamenti delle tuples of bound variables Nel seguente esempio, in base alla semantica della clausola let, la return è eseguita una sola volta (si nota che il nuovo tag <Libro-Bompiani> è creato una sola volta): let $libri := doc( libri.xml )//Libro[Editore= Bompiani ] return <Libro-Bompiani> { $libri/titolo } </Libro-Bompiani> <LibroBompiani> <Titolo> Il Signore degli Anelli </Titolo> <Titolo> Il nome della rosa </Titolo> </LibroBompiani> Path expression che inizia da una sequenza distinct-values() Iteriamo $e solo sui distinti valori di Editore: for $e in distinct-values( doc( libri.xml )//Editore ) let $libro := doc( libri.xml )//Libro[Editore = $e] where count($libro) > 100 return $e Restituisce gli editori con oltre 100 libri in elenco Ogni editore promosso è considerato una sola volta (si candida una sola volta ad essere filtrato da parte della clausola where)

14 SQL/XML Un estensione di SQL per sfruttare caratteristiche di XML Studiato dal consorzio SQLX Proposto a ISO come estensione di SQL In corso di valutazione da parte di ISO (standard atteso a fine 2003) Contiene varie parti: XMLType, funzioni XSL su colonne di tipo XML, funzioni di generazione di XML da dati relazionali Costruzione di elementi con attributi SELECT XMLELEMENT( NAME movietitle, XMLATTRIBUTES(B.year_released as movieyear ) B.Title ) AS xmldata FROM movie AS B WHERE B.Title like %Rose% Risultato <movietitle movieyear= 1979 > The Rose </movietitle> <movietitle movieyear= 1986 > The name of the Rose </movietitle> <movietitle movieyear= 1989 > The war of the Roses </movietitle> Generazione di XML da dati relazionali Esprimibile mediante funzioni nella clausola SELECT XMLELEMENT: crea una lista di elementi XMLATTRIBUTES: crea attributi all interno di elementi XMLFOREST: crea una lista di elementi contenenti altri elementi Riferimenti DOM: XPath Data Model: XML Infoset: XQuery: XQuery Use Cases: SQL/XML: J. Melton, Advanced SQL:99, Morgan Kaufmann, 2003 exist, Saxon, Galax... IPSI-XQ: Minimale, ma eccellente per esercitarsi Esempio CREATE TABLE movie ( movie_id INTEGER, title CHAR VARYING (100), year_released SMALLINT, genre CHAR VARYING (20) ARRAY [ 10 ], description CHAR VARYING (300), long_description CHAR LARGE OBJECT (2500), run_time INTEGER, MPAA_rating CHAR (4) ) XSL

15 XSL Standard W3C: 16 novembre 1999 (1.0) XSL = extensible Stylesheet Language Un foglio di stile è un file in cui sono condensate le specifiche modalità di presentazione si può quindi separare (più o meno nettamente) la definizione dei contenuti dalla loro resa grafica XSLT XSL = XSLT + XSL FO XSLT (XSL Transformation) Trasforma un documento XML in un altro documento XML o altro tipo di documento (HTML, ecc.) Può: aggiungere nuovi elementi; rimuovere elementi presenti; riorganizzare gli elementi; decidere quali visualizzare, ecc. XSL FO (Formatting Object) contiene le istruzioni per formattare l output di un documento XML Fogli di stile XSLT 1996: DSSSL - standard che definisce fogli di stile per SGML (ISO/IEC 10179:1996) : CSS - fogli di stile per HTML - sono attualmente disponibili due specifiche: CSS1 e CSS2 (approvati dal W3C rispettivamente nel Dicembre 1996 e nel Maggio 1998) Agosto 1997: Microsoft, Arbortext e Inso Corp. sottopongono la specifica XSL al W3C (sottoinsieme di DSSSL) per dati XML altamente strutturati - è diventato standard nel 1999 XML XSL XSLT XML HTML XSL XSLT Linguaggio per rappresentare l output di XML formattato e per convertire un documento XML in un altro documento (XML, HTML, o qualunque formato) Utilizza XPath per definire le parti del documento sul quale effettuare le trasformazioni Per gli elementi sui quali devono essere applicate le trasformazioni vengono definiti dei template Usa la notazione XML

16 Template Per assegnare uno stile ad un particolare elemento XML oppure per applicare delle trasformazioni si usa un template nel foglio di stile Il foglio di stile può essere eseguito da un processore XSLT che scandisce il documento XML sorgente, identifica gli elementi per i quali è stato definito un template nel foglio di stile, ed effettua le azioni specificate nel template. Match Si possono specificare gli elementi figli da processare utilizzando i seguenti simboli: operatore or. Elemento corrente // discendenti / figli.. identifica un attributo first-of-any(), first-of-type() last-of-any(), last-of-type() Esempio di template (1) Struttura di un documento XSL <xsl:template match=paragrafo> <xsl:template> La clausola match definisce su quali elementi si applica il template Per ogni elemento si possono specificare più template (si applica il più specifico oppure si assegna una priorità per l applicazione) Un template può specificare lo stile per più elementi template per il documento azione sul documento xsl:stylesheet (template per un elemento figlio)* azione sull elemento figlio <?xml version= 1.0?> <xsl:stylesheet> <xsl:template match= / > [azione] <xsl:template match= Elenco > [azione] <xsl:template match= Libro > [azione]... </xsl:stylesheet> Esempio di template (2) <xsl:template match=paragrafo> <fo:blocco font-size="10pt" space-before="12pt"> </fo:block> All interno del template si specifica come si devono processare gli elementi figli (xsl:apply-templates) Nell esempio: gli elementi paragrafo diventano oggetti di formattazione blocco che vengono visualizzati con 10 punti e 12 punti di spazio dopo ogni blocco Intestazione Il foglio di stile è interamente contenuto in un tag di tipo xsl:stylesheet, e inizia con una intestazione come segue: <xsl:stylesheet xmlns:xsl=" version="1.0"> </xsl:stylesheet> Possiamo riconoscere due dichiarazioni: spazio dei nomi e numero di versione. Lo spazio dei nomi è obbligatorio, e deve utilizzare l'url mostrato. Serve a distinguere il particolare formato XSLT utilizzato. Il numero di versione serve a distinguere un foglio di stile che usa un certo standard da eventuali future revisioni. Tutte le regole di trasformazione sono contenute nel corpo di questo tag.

17 match specifica il nodo da sostituire L'attributo match usa una espressione XPath per specificare a quali nodi si deve applicare. Nella maggior parte dei casi seleziona solo uno specifico tipo di nodo. C'è da tenere presente che le espressioni XPath sono relative al nodo corrente. Quindi indicare solamente un tipo di nodo permette di selezionare uno dei figli del nodo corrente. In ogni caso è abbastanza frequente specificare nodi che non sono figli del nodo corrente, come pure è possibile selezionare attributi o altri elementi del documento XML. name nome di un template Un template può avere un nome e può venire chiamato esplicitamente utilizzando xsl:calltemplate, per di più specificando dei parametri. Definizione <xsl:template name="row"> <tr><td> <xsl:value-of select="."/> </td></tr> Uso <xsl:call-template name="row"/> Esempio <xsl:template match="/"> <html> <body bgcolor="#ffffff"> <table border="0" cellspacing="0"> <xsl:apply-templates select="*" /> </table> </body> </html> Questa regola serve a iniziare la trasformazione di documento. Il nodo radice viene trasformato in un documento HTML con lo sfondo bianco che contiene una tabella. xsl:apply-templates A xsl:apply-templates si ricorre all'interno di un template. Serve a selezionare i nuovi nodi che devono essere aggiunti alla lista corrente. Se non viene specificato alcun attributo vengono selezionati tutti i nodi figli del nodo corrente. Si specifica con l'attributo select, usando XPath, quali nodi devono essere ulteriormente elaborati. Non necessariamente sono figli ma posso essere i nipoti oppure degli antenati, o ancora possono esserere trattati in maniera particolare gli attributi. mode modalità di processing L'attributo mode permette di applicare un template in casi diversi. La modalità viene specificato da apply-templates. Così possono avere due template con la stessa espressione di match (si riferiscono agli stessi nodi) ma usati in casi distinti. Per esempio, un template per costruire l'indice e un altro per il corpo del documento, ma che si applicano agli stessi in momenti diversi. xsl:for-each <xsl:template match="chap"> <xsl:for-each select="p"> <xsl:value-of select="."> </xsl:for-each> equivale a (senza una regola) <xsl:template match="chap"> <xsl:apply-templates select="p"/> </xsl:templates> <xsl:template match="p"> <xsl:value-of select="."/> </xsl:templates>

18 xsl:value-of È infatti possibile utilizzare delle espressioni che calcolano l'output. <xsl:template match="ragione_sociale"> <td><xsl:value-of select="."/></td> Il corpo della regola non contiene altri tag ma semplicemente xsl:value-of. Questo comando serve a produrre un output calcolato. Output Fin qui abbiamo costruito l'output semplicemente copiando i tag che non fanno parte dell'xslt. Ma in generale possiamo creare tag arbitrari, con nomi derivati dall'input. Per fare questo usiamo una serie di comandi che permettono di comporre a volontà l'output. xsl:value-of Nell'esempio si seleziona il nodo corrente (.). Le regole per il calcolo del valore di un nodo (valore che viene inviato nell'output) sono abbastanza intuitive: Il valore di un nodo testo è uguale al testo stesso. Il valore di un nodo tag è uguale alla concatenazione dei valori dei nodi contenuti. xsl:element Il seguente costrutto consente di creare tag arbitrari. <xsl:element name="{@type}" use-attribute-set="base-style"/> Notare come possa servire per costruire tag il cui nome è calcolato. Per esempio h1, h2 o h3 a seconda del livello di annidamento di un documento. Consente di usare creare tag con nomi calcolati value template Gli attributi in output hanno una prerogativa: possono essere calcolati senza utilizzare xsl:value-of (attribute value template) Negli attributi si possono inserire espressioni tra graffe. value="{/document/@title}" Il valore dell'attributo non è scritto esplicitamente ma calcolato in base all'espressione tra graffe. Ciò che è fuori dalle graffe è considerato testo normale (copiato così com'è) mentre l'espressione tra graffe viene calcolata, come la select di xsl:value-of. L'espressione dell'esempio imposta l'attributo value uguale all'attributo title del document. xsl:attribute Consente di inserire un attributo arbitrario. Viene assegnato al nodo corrente. Crea un attributo: <a> <xsl:attribute name="href"> <xsl:value-of select="dest"/> </xsl:attribute> </a> Deve comparire prima di altro contenuto

19 Gruppi di attributi Definizione <xsl:attribute-set name="base-style"> <xsl:attribute name="font-size"> 12pt </xsl:attribute> </xsl:attribute-set> Uso <xsl:element name="td" use-attribute-set="base-style">... </xsl:element> Variabili La sintassi per definire le variabili è la seguente: <xsl:variable name="id" select="."/> È possibile definire delle variabili sia all'esterno dei template, che all'interno. Nel primo caso sono accessibili e utilizzabili da tutte le regole del foglio di stile, nel secondo solo all'interno del template che le definisce. Alle variabili può essere assegnato un valore specificando l'espressione con l'attributo select, altrimenti il loro valore è il contenuto del tag stesso. xsl:text Inserire testo arbitrario in un documento. Il processore XSLT trasforma elementi come i simbolo di maggiore in sequenze che iniziano con la & (nell'output legale di HTML e XML quei caratteri possono comparire solamente per delimitare i tag). Ci sono casi in cui si vuole ottenere testo arbitrario compresi quei caratteri speciali e impostare disableoutput-escaping serve allo scopo. <xsl:text disable-output-escaping="yes"> corpo&#a;</xsl:text> Parametri Esiste anche un altro costrutto che permette di definire variabili, ed è xsl:param. A differenza delle variabili, i parametri fanno riferimenento a informazioni che possono essere passati dall'esterno. Assumono il valore specificato (da select o nel contenuto) solo se non è stato specificato esternamente il valore. <xsl:param name="a">0</xsl:param> Avremo che la variabile a vale 1 se è stata specificata sulla riga di comando, altrimenti 0. xsl:copy-of <xsl:copy-of select="."> Copia il nodo corrente. Occorre applicare ricorsione. Spesso si vuole utilizzare una parte del documento che si sta esaminando così come è. In questo caso torna utile xsl:copy, che copia il nodo corrente. Uso di variabili Le variabili possono essere utilizzare all'interno di espressioni xsl:value-of e di attribute value template con la sintassi $var.

20 Condizioni Un altro aspetto importante è la possibilità di inserire nell'output delle parti in maniera condizionata. Esempio: generare link per andare avanti e indietro in una seriea di pagine. Nel caso della prima pagina non si deve produrre il link di indietro, e nel caso dell'ultima non si deve produrre il link di avanti. xsl:sort Usato dentro apply-templates e for-each <xsl:apply-templates select="p ls"> <xsl:sort select="p"/> <xsl:sort select="q"/> </xsl:apply-templates> Default: alfabetico, ascendente Attributi order="descending" data-type="number" xsl:if Per gestire quest'ultimo caso possiamo utilizzare xsl:if come segue: <xsl:if test="not(position()=last())">... </xsl:if> La condizione di un test è una espressione. Viene considerata falsa se l'espressione produce un albero vuoto, un numero pari a zero o una stringa nulla, altrimenti il risultato è vero. In gerale il booleano è falso se ho numero=zero, una stringa nulla o un sotto albero vuoto <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="/"> Document / azione <xsl:template match= Elenco"> Element Elenco <xsl:template match= Libro"> <xsl:template match="titolo"> Element Element Libro Libro... <xsl:template match="autore"> Element Element Element Titolo Autore Data <xsl:template match="data"> <xsl:template match="isbn"> Text Text Text Il signore.. Tolkien 2002 <xsl:template match= Editore"> <xsl:template match="text()"> <xsl:value-of select="."/> azione </xsl:stylesheet> Estrarre il testo Element ISBN Text Element... Libro Element Editore Text Bompiani xsl:choose A volte è comodo poter scegliere una tra molte condizioni. <xsl:choose> <xsl:when test="...">...</xsl:when> <xsl:otherwise>...</xsl:otherwise> </xsl:choose> Viene prodotto l'output corrispondente alla condizione xsl:when vera, oppure l'output specificato in xsl:otherwise se nessuna di queste è soddisfatta. <Elenco> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN> </ISBN> <Libro disponibilità= N > <Titolo>Il nome della rosa</titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> <ISBN> </ISBN> <Titolo>Il sospetto</titolo> <Autore>F. Dürrenmatt</Autore> <Data>1990</Data> <ISBN> </ISBN> <Editore>Feltrinelli</Editore> </Elenco> Trasformazione Il Signore degli Anelli J.R.R. Tolkien Bompiani Il nome della rosa Umberto Eco Bompiani Il sospetto F. Dürrenmatt Feltrinelli

21 Creare un documento HTML <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="/"> <HTML> <HEAD> <TITLE>Elenco libri</title> </HEAD> <BODY> </BODY> </HTML> <xsl:template match= Elenco"> <xsl:template match= Libro"> </xsl:stylesheet> Esempio: creare una tabella <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match= Elenco > <HTML> <HEAD> <TITLE>Elenco libri</title> </HEAD> <BODY> <TABLE BORDER="1" WIDTH="100%"> </TABLE> </BODY> </HTML> <xsl:template match= Libro"> <TR> </TR> <xsl:template match="titolo Autore Data ISBN Editore"> <TD> </TD> </xsl:stylesheet> Trasformazione Trasformazione XML-XML <Elenco> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN> </ISBN> <Libro disponibilità= N > <Titolo>Il nome della rosa</titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> <ISBN> </ISBN> <Titolo>Il sospetto</titolo> <Autore>F. Dürrenmatt</Autore> <Data>1990</Data> <ISBN> </ISBN> <Editore>Feltrinelli</Editore> </Elenco> <HTML> <HEAD> <TITLE>Book Catalogue</TITLE> </HEAD> <BODY> Il Signore degli Anelli J.R.R. Tolkien Bompiani Il nome della rosa Umberto Eco Bompiani Il sospetto F. Dürrenmatt Feltrinelli </BODY> </HTML> <Elenco> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN> </ISBN> <Libro disponibilità= N > <Titolo>Il nome della rosa</titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> <ISBN> </ISBN> <Titolo>Il sospetto</titolo> <Autore>F. Dürrenmatt</Autore> <Data>1990</Data> <ISBN> </ISBN> <Editore>Feltrinelli</Editore> </Elenco> <NuovoElenco> <Libro> <Titolo>Il Signore degli Anelli</Titolo> <Libro> <Titolo>Il nome della rosa</titolo> <Libro> <Titolo>Il sospetto</titolo> <Editore>Feltrinelli</Editore> </NuovoElenco> Il nuovo elenco per ogni libro contiene solo il loro titolo e, se questo è disponibile, anche la sua casa editrice. Esempio: creare una tabella <HTML> <HEAD><TITLE>Elenco libri</title></head> <BODY> <TABLE BORDER="1" WIDTH="100%"> <TR> <TD> Il Signore degli Anelli </TD> <TD> J.R.R. Tolkien </TD> <TD> 2002 </TD> <TD> </TD> <TD> Bompiani </TD> </TR> <TR> <TD> Il nome della rosa </TD> <TD> Umberto Eco </TD> <TD> 1987 </TD> <TD> </TD> <TD> Bompiani </TD> </TR> <TR> <TD> Il sospetto </TD> <TD> F. Dürrenmatt </TD> <TD> 1990 </TD> <TD> </TD> <TD> Feltrinelli </TD> </TR> </TABLE> </BODY> </HTML> Trasformazione XML-XML <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="/"> <NuovoElenco> <xsl:for-each select= Elenco/Libri"> <Libro> <Titolo><xsl:value-of select= Titolo"/> </Titolo> <xsl:if = S "> <Editore><xsl:value-of select= Editore"/></Editore> </xsl:if> </xsl:for-each> </NuovoElenco>

22 Associare un foglio di stile ad un documento XML <?xml-stylesheet type= text/xsl href= file://localhost/esempixml-xsl/libri.xsl?> <!DOCTYPE Elenco SYSTEM "file://localhost/esempixml-xsl/libri.dtd"> <Elenco> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN> </ISBN> </Elenco> Esempio: regola di trasformazione <xsl:stylesheet xmlns:xsl=" <xsl:template match="/"> <TABLE STYLE="border:1px solid black"> <TR STYLE="font-size:12pt; font-family:verdana; font-weight:bold; text-decoration:underline"> <TD>Price</TD> <TD STYLE="background-color:lightgrey">Time</TD> <TD>Bidder</TD> </TR> <xsl:for-each select="auctionblock/item/bids/bid"> <TR STYLE="font-family:Verdana; font-size:12pt"> <TD>$<xsl:value-of select="price"/></td> <TD STYLE="background-color:lightgrey"> <xsl:value-of select="time"/></td> <TD><xsl:value-of select="bidder"/></td> </TR> </xsl:for-each> </TABLE> </xsl:stylesheet> Foglio di stile nel documento XML <?xml-stylesheet type="text/xsl" href="#stilelibri"?> <Elenco> <xsl:stylesheet id= stilelibri" xmlns:xsl=" version="1.0"> <xsl:template match="xsl:stylesheet"> <xsl:template match="/"> <HTML> <HEAD> <TITLE>Book Catalogue</TITLE> </HEAD> <BODY> <TABLE BORDER="1" WIDTH="100%"> </TABLE> </BODY> </HTML>... </xsl:stylesheet> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN> </ISBN> </Elenco> si aggiunge l istruzione per inserire il foglio di stile, che si riferisce ad un elemento interno. Il foglio di stile viene racchiuso all interno di questo elemento. Esempio: output Esempio: documento <AUCTIONBLOCK> <ITEM> <TITLE>Vase and Stones</TITLE> <ARTIST>Linda Mann</ARTIST> <DIMENSIONS>20x30 inches</dimensions> <MATERIALS>Oil</MATERIALS> <YEAR>1996</YEAR> <DESCRIPTION>Still Life</DESCRIPTION> <BIDS> <BID> <PRICE>6000</PRICE> <TIME>3:02:22 PM</TIME> <BIDDER>Chris</BIDDER> </BID> <BID> <PRICE>5700</PRICE> <TIME>2:58:42 PM</TIME> <BIDDER>John</BIDDER> </BID> </BIDS> </ITEM> </AUCTIONBLOCK> <?XML > <prodotto> <descrizione>... </descrizione> </prodotto> Trasformazione a lato server Processore XSL sull application server <HTML> <BODY>. </BODY> </HTML> Si può usare la negoziazione dinamica di HTTP1.1 per scegliere il giusto style sheet di trasformazione in base al dispositivo dell utente

23 Trasformazione a lato client Processore XSL nel browser <?XML > <prodotto> <descrizione>... </descrizione> </prodotto> + <XSL:template>... </ XSL:template > IE5.5, Netscape 6, Opera 4 supportano trasformazioni XSL Risorse su Web Extensible Markup Language (XML) 1.0: Extensible Style Language (XSL):

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

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

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

12. Xml e basi di dati internet

12. Xml e basi di dati internet 12. Xml e basi di dati internet Nonostante l'html (HyperText Markup Language) è ampiamente usato per la formattazione e la strutturazione dei documenti Web, non è idoneo per specificare dati strutturati

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

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il 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

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

La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:

La 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

Dettagli

XML e Sistemi per la Gestione di Basi di Dati Relazionali

XML e Sistemi per la Gestione di Basi di Dati Relazionali Basi di Dati Distribuite a.a. 2004/2005 XML e Sistemi per la Gestione di Basi di Dati Relazionali Luca Noce - luxnox2000@yahoo.it Elisa Marino - marino_elisa@hotmail.com Obiettivi Necessità di conciliare

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione 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)

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

XML. XML è contemporaneamente: XML non è:

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

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

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

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

Rappresentare i file XML - XSL

Rappresentare i file XML - XSL Rappresentare i file XML - XSL Laura Papaleo papaleo@disi.unige.it CSS2, XSL, XSLT, XPath 1 XSL - exstensible Stylesheet Language XSL Raccomandazione del W3C (2001) Per aumentare la flessibilità dello

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

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

/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML

/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

Dettagli

Sommario. Settimana - Gli elementi fondamentali... 1. Introduzione...xv. Giorno 1 - I linguaggi di markup...3

Sommario. Settimana - Gli elementi fondamentali... 1. Introduzione...xv. Giorno 1 - I linguaggi di markup...3 000B-XML-Somm.fm Page iii Wednesday, June 12, 2002 9:25 AM Sommario Introduzione...xv A chi si rivolge questo libro...xvi Convenzioni usate in questo libro...xvi Settimana - Gli elementi fondamentali...

Dettagli

Progettazione di Basi di Dati

Progettazione 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

Dettagli

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

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

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

XQuery. è lo standard adottato dal W3C per la XML. - Consente di iterare sugli elementi di un documento - Consente di ristrutturare i contenuti XML

XQuery. è lo standard adottato dal W3C per la XML. - Consente di iterare sugli elementi di un documento - Consente di ristrutturare i contenuti XML ;4XHU\ XQuery Il linguaggio XQuery è lo standard adottato dal W3C per la manipolazione e ristrutturazione di documentid XML. - Consente di iterare sugli elementi di un documento - Consente di ristrutturare

Dettagli

Linguaggi per il Web: XML

Linguaggi per il Web: XML Linguaggi per il Web: XML Piero Fraternali Sara Comai Politecnico di Milano XML http://w3c.org/xml/ -- http://www.microsoft.com/xml/ extended Markup Language Formato di file proposto dal W3C per distribuire

Dettagli

XML (extensible Markup Language)

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

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

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

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

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio

Dettagli

Manuale di realizzazione dei modelli di documento

Manuale di realizzazione dei modelli di documento MystiqueXML Manuale di realizzazione dei modelli di documento Indice 1 Le tabelle...5 1.1 Tabelle condizionali...5 1.2 Tabelle Multiple - un solo livello...5 1.3 Tabelle Multiple - a più livelli...5 2

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

Linguaggi ed Applicazioni mul1mediali

Linguaggi ed Applicazioni mul1mediali Università degli Studi di Urbino "Carlo Bo" Linguaggi ed Applicazioni mul1mediali 06.01- Introduction to mark-up. 06.02- classification 06.03- SGML 06.04- XML Hypertext Maurizio Maffi ISTI Informa1on Science

Dettagli

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Regione 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

Dettagli

XML: extensible Markup Language

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

Dettagli

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

HTML 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

Dettagli

Il Modello Relazionale

Il Modello Relazionale Il Modello Relazionale Il modello relazionale 1 Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981

Dettagli

HTML il linguaggio per creare le pagine per il web

HTML il linguaggio per creare le pagine per il web HTML il linguaggio per creare le pagine per il web Parte I: elementi di base World Wide Web Si basa sul protocollo HTTP ed è la vera novità degli anni 90 Sviluppato presso il CERN di Ginevra è il più potente

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

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

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

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

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

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

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

2 Reti di Calcolatori XML

2 Reti di Calcolatori XML 2 3 4 5 6 7 8 root element Risultati Basi di dati 10 Dicembre 2003 Mario Rossi Corso Data List a_st

Dettagli

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12 SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2011/12 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.

Dettagli

Modellazione e Gestione di Informazioni non Strutturate

Modellazione e Gestione di Informazioni non Strutturate Università della Calabria, Corso di Laurea Specialistica in Ingegneria Gestionale Progettazione di Sistemi Informativi Docente: Alfredo Cuzzocrea Modellazione e Gestione di Informazioni non Strutturate

Dettagli

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei

Dettagli

Ricorsione in SQL-99. Introduzione. Idea di base

Ricorsione in SQL-99. Introduzione. Idea di base Ricorsione in SQL-99 Introduzione In SQL2 non è possibile definire interrogazioni che facciano uso della ricorsione Esempio Voli(lineaAerea, da, a, parte, arriva) non è possibile esprimere l interrogazione

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

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

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

Infrastrutture INFormatiche Ospedaliere 2 Corso di laurea di Ingegneria Medica. Indice

Infrastrutture INFormatiche Ospedaliere 2 Corso di laurea di Ingegneria Medica. Indice Indice 4. XML Extensible Markup Language...2 4.1 Usi di XML...3 4.2 Caratteristiche di XML...3 4.3 Elementi...5 4.4 Attributi...5 4.4.1 Documento XML ben formato...6 4.5 Informazioni di controllo...6 4.5.1

Dettagli

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013

Dettagli

Modellazione dei dati in UML

Modellazione 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):

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

1. Concetti generali

1. Concetti generali XML, DTD, XSD A cura del team WebML Politecnico di Milano 1. Concetti generali XML: extensible Markup Language Formato di file proposto dal W3C per distribuire documenti elettronici sul World Wide Web

Dettagli

Laboratorio Matematico Informatico 2

Laboratorio 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

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

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

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

Informatica per le discipline umanistiche 2 lezione 10

Informatica per le discipline umanistiche 2 lezione 10 Informatica per le discipline umanistiche 2 lezione 10 Parte III: il computer come strumento per l interazione e la comunicazione Si è parlato di identità Parte III: il computer come strumento per l interazione

Dettagli

Introduzione a XML. Language

Introduzione 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

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

Creare un Ipertesto. www.vincenzocalabro.it 1

Creare 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

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

Cosa è un foglio elettronico

Cosa è 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

Dettagli

Informatica per la comunicazione" - lezione 10 -

Informatica per la comunicazione - lezione 10 - Informatica per la comunicazione" - lezione 10 - Evoluzione del Web" Nell evoluzione del Web si distinguono oggi diverse fasi:" Web 1.0: la fase iniziale, dal 1991 ai primi anni del 2000" Web 2.0: dai

Dettagli

Document Type Definition (DTD)

Document 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

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

Sistemi per la gestione di database: MySQL ( )

Sistemi per la gestione di database: MySQL ( ) Sistemi per la gestione di database: MySQL ( ) Relational Database e Relational Database Management System Un database è una raccolta di dati organizzata in modo da consentire l accesso, il reperimento

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

Siti web centrati sui dati (Data-centric web applications)

Siti 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

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

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Maschere e Query Le Maschere (1/2) Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Le maschere sono simili a moduli cartacei: ad ogni campo corrisponde un etichetta

Dettagli

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati Basi di dati Il Modello Relazionale dei Dati Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

ma l XML va ben al di là dell HTML: serve per descrivere

ma l XML va ben al di là dell HTML: serve per descrivere Il metalinguaggio XML 1 Introduzione all'xml Il futuro dei linguaggi di markup: XML = EXtensible Markup Language è una versione semplificata dell SGML Nasce con l'intento di superare alcune limitazioni

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

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>... HTML HyperText Markup Language Struttura di un documento HTML Gli elementi essenziali di un documento HTML sono i seguenti TAG: ... ... ... Struttura di un documento

Dettagli

Tecnologie Web T Introduzione a XML

Tecnologie 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:

Dettagli

a cura di Maria Finazzi

a 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

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

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura 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

Dettagli

Archivi e Basi di Dati

Archivi e Basi di Dati Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati

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

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Database Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Cos'è un database? È una struttura di dati composta da tabelle a loro volta composte da campi. Caratteristiche

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

MiFID - TREM v2.0 per interfaccia locale. 1. Invio di transazioni su strumenti finanziari identificati dal codice alternativo di identificazione (AII)

MiFID - TREM v2.0 per interfaccia locale. 1. Invio di transazioni su strumenti finanziari identificati dal codice alternativo di identificazione (AII) Allegato 1 MiFID - TREM v2.0 per interfaccia locale 1. Invio di transazioni su strumenti finanziari identificati dal codice alternativo di identificazione (AII) Gli strumenti finanziari possono essere

Dettagli

4 - XML e basi di dati

4 - XML e basi di dati Sommario 4 - XML e basi di dati 1. Introduzione. 2. Dati strutturati, semistrutturati e non strutturati. 3. Modello dei dati gerarchico (Albero) di XML. 4. Documenti XML, DTD, e schema XML. 5. Documenti

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

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

XML e Basi di Dati Corso di Basi di Dati 1. XML e basi di dati. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine

XML e Basi di Dati Corso di Basi di Dati 1. XML e basi di dati. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine XML e Basi di Dati Corso di Basi di Dati 1 XML e basi di dati Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine XML e Basi di Dati Corso di Basi di Dati 2 Cos è XML XML è l

Dettagli

Programmazione in Ambienti Distribuiti A.A. 2004-05. Il web è costituito da:

Programmazione in Ambienti Distribuiti A.A. 2004-05. Il web è costituito da: XML Programmazione in Ambienti Distribuiti A.A. 2004-05 Motivazioni Il web è costituito da: Un insieme di protocolli per lo scambio di informazioni e documenti (HTTP/TCP/IP ) Un insieme enorme di calcolatori

Dettagli

Rappresentazione grafica di entità e attributi

Rappresentazione 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

Dettagli

Basi di dati 9 febbraio 2010 Compito A

Basi di dati 9 febbraio 2010 Compito A Basi di dati 9 febbraio 2010 Compito A Domanda 0 (5%) Leggere e rispettare le seguenti regole: Scrivere nome, cognome, matricola (se nota), corso di studio e lettera del compito (ad esempio, A) sui fogli

Dettagli