Presentazione del corso

Download Report

Transcript Presentazione del corso

Presentazione 1.5

Extensible Markup Language (XML)

Architettura dell'informazione | Prof. Luca A. Ludovico

Introduzione a XML

• XML (acronimo di eXtensible Markup Language ) è un metalinguaggio di markup, ovvero un linguaggio marcatore che definisce un meccanismo sintattico che consente di estendere o controllare il significato di altri linguaggi marcatori • Il nome indica quindi che si tratta di un linguaggio marcatore (markup language) estensibile (eXtensible) in quanto permette di creare tag personalizzati Architettura dell'informazione Prof. Luca A. Ludovico

Cos’è XML (e cosa non è)

• XML è contemporaneamente: – Linguaggio di personalizzati annotazione o etichettatura o marcatura (markup) che permette di creare gruppi di marcatori o etichette (tag set) – Formato standard per lo scambio dei dati – Metalinguaggio per creare documenti arricchiti da informazioni addizionali – Un supporto per la costruzione di formati specifici per gli usi più disparati (esempi: MathML, XHTML, ChemicalML, ecc..) • XML non è: – Un sostituto di HTML: le pagine web continueranno ad essere scritte in HTML. XML è un metalinguaggio, HTML è un linguaggio – Un linguaggio di programmazione: ogni documento XML contiene dati ed informazioni sui dati. Questi vengono poi estratti ed elaborati dalle varie applicazioni.

Architettura dell'informazione Prof. Luca A. Ludovico

Il background di XML

• Sottoinsieme di Standard Generalized Markup Language (SGML), nato negli anni ‘60 SGML XHTML MathML MusicXML … XML HTML • La sua adozione estensiva deriva dal successo dell’HMTL come linguaggio per descrivere pagine Web • Standard approvato dal World Wide Web Consortium (W3C, http://www.w3.org) Architettura dell'informazione Prof. Luca A. Ludovico

Pervasività di XML: alcuni esempi

• Dalla versione 2007 in avanti i software della suite Microsoft Office adottano principalmente i formati XML – .docx per Word, .pptx per PowerPoint, .xlsx per Excel – .odt e .odf di OpenOffice, principale competitor • Molti siti (tra cui ludovico.net) sono scritti in XHTML, un linguaggio basato su XML per creare pagine Web • Gran parte dei software per l’editing digitale della partitura supportano il formato MusicXML • Il formato EPUB (electronic publication) per gli e-book è XML Piè di pagina: spazio libero per eventuale nome struttura o altro

Benefici di XML

• Interscambiabilità su Internet (è plain text e supportato dal W3C) • Struttura gerarchica • Intelligibilità (è plain text e i marcatori sono evocativi) • Estensibilità • Enorme disponibilità di tool per la lettura, la creazione e la manipolazione dei documenti Architettura dell'informazione Prof. Luca A. Ludovico

I tag in XML

• In un documento XML possiamo “inventare” i tag Carlo Luca Appuntamento Ricordati la riunione del 9/1/2008 • La scelta dei tag (nomi, annidamento,…) può essere effettuata a seconda delle informazioni che interessa rappresentare Architettura dell'informazione Prof. Luca A. Ludovico

Lettura intuitiva dell’XML

• La prima linea del documento (opzionale) identifica lo stesso come un XML ed indica anche la versione • Il primo tag identifica la radice del documento. In linguaggio naturale: “questo documento è una nota”.

• I restanti tag specificano il contenuto della nota in termini di titolo, mittente, destinatario e messaggio • L’ultimo tag conclude la descrizione della nota • I tag si dividono in: – Tag di apertura – Tag di chiusura (start tag): es: (end tag): es: – Tag vuoti (empty tag): es: Architettura dell'informazione Prof. Luca A. Ludovico

Un esempio in XML

Luca Ruggero Milano Max Rossi Roma • Si può notare somiglianza con le informazioni contenute nella tabella di un database (maggiore leggibilità ma verbosità) Architettura dell'informazione Prof. Luca A. Ludovico

Elementi

• Un elemento XML è tutto ciò che è compreso tra un tag di apertura (incluso) ed il corrispettivo tag di chiusura (incluso) contenuto • Tra i due tag si trova il contenuto dell’elemento, che può essere: – simple content : se il contenuto è un semplice testo. Esempio: l’elemento – element content : se il contenuto è costituito da altri elementi.</p> <p>Esempio: l’elemento <note> – mixed content : se contiene testo inframezzato da altri elementi.</p> <p>Esempio: l’elemento <message> – empty content : se il contenuto dell’elemento è vuoto • Per un elemento vuoto la coppia apertura/chiusura può essere sostituita da un tag vuoto Architettura dell'informazione Prof. Luca A. Ludovico</p> <a id="p11"></a> <h3><b>Esempio di etichettatura</b></h3> <p>Start tag Elemento <address> <street>33, Terry Dr.</street> Content <city>Morristown</city> </address> End tag Architettura dell'informazione Prof. Luca A. Ludovico</p> <a id="p12"></a> <h3><b>Esempio</b></h3> <p>• Un elemento può contenere: – Altri elementi <address> <street>33, Terry Dr.</street> <city>Morristown</city> </address> – Testo semplice <street>33, Terry Dr.</street> Architettura dell'informazione Prof. Luca A. Ludovico</p> <a id="p13"></a> <h3><b>Estensibilità degli elementi</b></h3> <p>• Gli elementi in XML sono estensibili • In questo modo è possibile mantenere compatibilità delle nuove versioni del formato con versioni precedenti del software (retrocompatibilità, o <i>backward compatibility</i>) • Es: Versione 1.0</p> <p>Versione 2.0</p> <p><?xml version="1.0"?> <note> <from>Carlo</from> <to>Luca</to> <title>Appuntamento Ricordati la riunione di oggi Carlo Luca Appuntamento Ricordati la riunione di oggi Architettura dell'informazione Prof. Luca A. Ludovico

Modello ad albero

• Gli elementi in XML sono in relazione (di contenimento, di paternità, …) tra di loro e queste relazioni determinano il modello del documento • Il documento è organizzato come un albero, in cui la relazione di contenimento tra elementi è equivalente alla relazione nodo sottonodo • Es: , , e <message> sono sottoelementi di <note> <?xml version="1.0"?> <note> <to>Luca</to> <from>Carlo</from> <title>Appuntamento Ricordati la riunione di oggi • L’entità che non è sottoentità di nessuno (es: ) è l’elemento radice (root element) Architettura dell'informazione Prof. Luca A. Ludovico

Modello ad albero

Carlo Bianchi Luca Rossi Appuntamento Ricordati la riunione di oggi note from to title message name surname name surname Architettura dell'informazione Prof. Luca A. Ludovico

Attributi

• Gli attributi sono informazioni aggiuntive che possono essere inserite negli elementi XML per completarne o arricchirne l’informazione ... • Vengono inseriti solo nei tag di apertura (o nei tag vuoti) • Sintassi: coppie nome_attributo="valore" • Il valore degli attributi è racchiuso o tra apici singoli o tra apici doppi • nome_attributo deve essere univoco per ogni elemento Ricordati la riunione di oggi Architettura dell'informazione Prof. Luca A. Ludovico

Attributi o elementi?

• Spesso le stesse informazioni possono essere rappresentate sia tramite attributi che tramite (sotto)elementi. Queste sono alcune tra le molte varianti ammissibili: Sottoelementi Appuntamento Carlo Luca ABC123 Attributi Carlo Luca ABC123 ABC123 Architettura dell'informazione Prof. Luca A. Ludovico

Attributi o elementi?

• La scelta tra attributi o elementi ( quando si progetta il linguaggio ) è soggettiva, tuttavia le due soluzioni non sono in genere equivalenti – Quando invece di progettare il formato si aderisce a un sottolinguaggio XML specifico, le regole sulla codifica dell’informazione sono prefissate • Problemi con gli attributi: – Non possono contenere valori multipli Marco Mario – Sono difficilmente espansibili (aggiunta di sottoelementi) – Non possono descrivere strutture .... • E’ opportuno usare gli attributi per informazioni essenziali per l’elemento, come ad esempio gli identificativi (ID) Architettura dell'informazione Prof. Luca A. Ludovico

Esempi

OK NO, perché non posso avere 3 attributi con identico nome nello stesso elemento.

Sintatticamente OK, però è difficile effettuare il parsing dei singoli valori.

Architettura dell'informazione Prof. Luca A. Ludovico

Regole sintattiche

• Tutti i tag aperti devono essere chiusi Corretto Non corretto

paragrafo1

paragrafo2

paragrafo1

paragrafo2 • I tag devono essere correttamente annidati, o innestati (nested) quindi l’ordine di chiusura deve essere inverso rispetto a quello di apertura Corretto corsivo e grassetto Non corretto corsivo e grassetto Architettura dell'informazione Prof. Luca A. Ludovico

Regole sintattiche

• Ogni documento XML deve avere uno ed un solo elemento radice. Corretto Luca Carlo Appuntamento Non corretto Luca Carlo Appuntamento • Quando una data rappresentazione dei dati implicherebbe l’uso di più nodi radice, è necessario sostituire il nodo radice scelto con uno di significato più generale.

– Ad esempio, se è necessario rappresentare tanti elementi , l’elemento radice sarà più propriamente contenitore di sottoelementi Architettura dell'informazione Prof. Luca A. Ludovico

Regole sintattiche

• I valori degli attributi devono sempre essere inclusi tra apici Corretto Non corretto • XML è “case sensitive”, cioè distingue maiuscole da minuscole Corretto Luca Non corretto Luca Luca • In XML gli spazi vengono preservati • I commenti possono essere inseriti tra i segni Architettura dell'informazione Prof. Luca A. Ludovico

Well-formedness vs Validity

• Un documento è detto XML.

well-formed (ben formato) regole grammaticali fornite dal W3C, di cui sono esempio le regole sintattiche elencate.

se segue le Quindi, un documento è ben formato rispetto all’XML in generale, non rispetto a un particolare formato basato su • Un documento è detto valid (valido) se è conforme ad un DTD che ne specifica la struttura.

Per essere valido, il documento deve essere innanzi tutto ben formato > well-formedness è condizione necessaria, ma non sufficiente per la validity.

La validità si verifica rispetto a un particolare linguaggio basato su XML, ad esempio rispetto a MathML o XHTML.

Architettura dell'informazione Prof. Luca A. Ludovico

Well-formedness vs Validity

• In altri termini: – Un documento è detto well-formed (ben-formato) regole grammaticali fornite dal W3C.

se segue le – Un documento è detto valid (valido) se è conforme ad un DTD che ne specifica la struttura.

Architettura dell'informazione Prof. Luca A. Ludovico

Esempio di documento XML

L'album The Beatles 1, più noto semplicemente come 1(One), è una raccolta dei più grandi successi dei Beatles, pubblicata nel 2000. La compilation, prodotta da George Martin come la quasi totalità degli album della band di Liverpool, raccoglie su un unico disco 27 singoli che tra il 1962 e il 1970 raggiunsero la prima posizione nelle classifiche di vendita del Regno Unito o degli Stati Uniti. Tutte le canzoni della raccolta sono famosissime e vengono considerate dei capisaldi della storia del rock mondiale. 1 è risultato l'album più venduto nel 2000, con oltre 31 milioni di copie, di cui 10 solo negli Stati Uniti.

Architettura dell'informazione Prof. Luca A. Ludovico

Esempio di documento XML

Luca A. Ludovico Francesca Porta Pasquale Tucci Architettura dell'informazione Prof. Luca A. Ludovico

Esempio di documento XML

18/11/2009 --> 15 12 05