Tecnologie di Internet Sintassi di XML Sintassi di XML Struttura logica di un documento XML Sintassi di elementi e attributi Albero di un documento XML Documento XML ben formato Dott. Nicola Dragoni Tecnologie di Internet Sintassi di XML Struttura logica di un documento PROLOGO <?xml version="1.0"? encoding=“...” standalone=“...”> <!-- Questo è un documento XML --> <!DOCTYPE ...> <documento> <titolo>Documento XML</titolo> <data>22/03/2003</data> <testo>Documento testuale in XML</testo> </documento> CORPO DEL DOCUMENTO Dott. Nicola Dragoni 2 Tecnologie di Internet Sintassi di XML Prologo • Il prologo contiene informazioni utili per l’interpretazione del documento. • In particolare, può contenere: Una dichiarazione che il documento è in formato xml (opzionale). Una descrizione esplicita della struttura del documento (Document Type Definition) (opzionale). Commenti e informazioni per applicazioni software che utilizzeranno il documento (zero o più). Eventuali commenti. Dott. Nicola Dragoni 3 Tecnologie di Internet Sintassi di XML Processing Instructions I documenti XML vengono solitamente processati da applicazioni software. Può essere necessario fornire a questi programmi informazioni necessarie per elaborare un documento (processing instructions). Le processing instructions vanno inserite nel prologo del documento e sono sempre racchiuse tra <? e ?>. Ad esempio, informare un browser che deve utilizzare un certo foglio di stile per visualizzare i dati in HTML (lo verdremo...). <?xml-stylesheet type=“text/css” href=“style.css”?> Dott. Nicola Dragoni 4 Tecnologie di Internet Sintassi di XML Corpo del documento: Elementi Un elemento XML è l’insieme di un tag di apertura, un tag di chiusura e dei dati compresi fra i due tag. Esempio: <TitoloLegge>Disciplina sociale</TitoloLegge> delle associazioni di promozione Alcuni elementi XML possono essere vuoti, cioè privi di valore; in questo caso si possono usare le seguenti due codifiche alternative ed equivalenti: • <DataFineLezione> </DataFineLezione> • <DataFineLezione/> Dott. Nicola Dragoni 5 Tecnologie di Internet Sintassi di XML Regole sintattiche Il tag di chiusura deve essere sempre presente. In XML tutti gli elementi devono avere un tag di chiusura. Esempio: <Comma>1. ............... </Comma> <Comma>2. ............... </Comma> NOTA: ciò non è richiesto in HTML, dove alcuni elementi possono non avere il tag di chiusura, dato che la sintassi del linguaggio non lo richiede obbligatoriamente. Esempio: <p>Questo è un paragrafo. <b>Questo è un testo in grassetto. Dott. Nicola Dragoni 6 Tecnologie di Internet Sintassi di XML Altre regole... XML è case-sensitive, quindi c’è differenza tra caratteri maiuscoli e minuscoli. I seguenti elementi: <TitoloLegge>Protezione dell’ambiente</TitoloLegge> <titololegge>Protezione dell’ambiente</titololegge> sono diversi tra loro! Il tag di apertura e il corrispondente tag di chiusura devono avere lo stesso nome anche in termini di maiuscole e minuscole: <TAG> </TAG> è corretto <TAG> </Tag> non è corretto Dott. Nicola Dragoni 7 Tecnologie di Internet Sintassi di XML Altre regole... Gli elementi devono essere correttamente nidificati. • In XML un elemento può essere contenuto (nidificato) in un altro; nell’esempio che segue, l’elemento Comma è nidificato all’interno dell’elemento Articolo. Esempio: <Articolo> <Comma>1. ........... </Comma> </Articolo> • L’ordine di chiusura dei tag deve essere inverso rispetto all’ordine di apertura (in HTML non è sempre richiesto). Esempio errato: <Articolo> <Comma>1. ........... </Articolo> </ Comma > • Deve esistere un tag (unico) che contenga tutti gli altri e questo tag si dice tag root (radice). Dott. Nicola Dragoni 8 Tecnologie di Internet Sintassi di XML Altre regole... I nomi dei tag possono essere inventati a nostro piacere, a patto che rispettiamo alcune regole di definizione dei nomi: • Devono iniziare con un carattere o con un underscore ( _ ). • Non possono iniziare con numeri. • Possono contenere un qualsiasi numero di lettere, numeri, trattini, punti, underscore. • Non possono contenere spazi. • Conviene evitare di utilizzare le tre lettere xml nei nomi dei tag perchè spesso queste corrispondono a nomi utilizzati anche da tecnologie elaborate dai gruppi di lavoro sull’XML del W3C. Dott. Nicola Dragoni 9 Tecnologie di Internet Sintassi di XML Caratteri riservati Nel caso in cui sia necessario scrivere all’interno del testo del documento dei caratteri particolari (come <, >, &, ecc...) occorre fare riferimento al loro corrispondente entity-name, che consiste in una &, un nome e un punto e virgola finale. Carattere Entity-name < < & & > > “ " ‘ ' Esempio: se vogliamo scrivere la frase L’Osservatorio nazionale, denominato in seguito con “Osservatorio”, ... dobbiamo codificarlo nel seguente modo: L'Osservatorio nazionale, denominato in seguito con "Osservatorio", ... Dott. Nicola Dragoni 10 Tecnologie di Internet Sintassi di XML Attributi Gli attributi vengono utilizzati per aggiungere una caratteristica o una proprietà ad un elemento. • Un attributo è una coppia nome-valore separata da un segno di uguale (=) che può essere presente all’interno del tag di apertura di un elemento, dopo il nome dell’elemento stesso. • Un elemento può contenere uno o più attributi. • Il valore di un attributo deve essere racchiuso fra “ ” o ‘ ’. • Ogni attributo è sempre associato ad un elemento, non ha vita autonoma. • Lo stesso attributo può ricorrere anche in più elementi. Dott. Nicola Dragoni 11 Tecnologie di Internet Sintassi di XML Attributi: esempi <Prezzo Valuta=“Euro”>10</Prezzo> <Prezzo Valuta=‘Euro’>20</Prezzo> CORRETTI <Prezzo Valuta=Euro>10</Prezzo> <Prezzo>20</Prezzo Valuta=“Euro” > SBAGLIATI Dott. Nicola Dragoni 12 Tecnologie di Internet Sintassi di XML Albero XML Ogni documento XML deve contenere un solo elemento radice, cioè un elemento che racchiude tutti gli altri elementi secondo una struttura di relazione padre-figlio, cioè strettamente gerarchica. L’elemento radice è il primo elemento di un documento XML. Le relazioni gerarchiche esistenti fra i vari elementi danno vita al cosiddetto albero XML. Dott. Nicola Dragoni 13 Tecnologie di Internet Sintassi di XML Albero XML: esempio Versione testuale Versione grafica <Legge> ... <TitoloLegge>...</TitoloLegge> <Articolato> <Capo Num=“I”> <Articolo Num=“1”> <Rubrica></Rubrica> <Comma Num=“1”>...</Comma> <Comma Num=“2”>...</Comma> </Articolo> </Capo> </Articolato> </Legge> elemento radice Legge TitoloLegge Articolato Capo Articolo Rubrica Comma Dott. Nicola Dragoni 14 Tecnologie di Internet Sintassi di XML Documento ben formato (1 di 3) Un documento XML si dice ben formato se: • Tutti i tag di apertura e chiusura corrispondono, anche nei caratteri maiuscoli e minuscoli. Esempio: <Titolo>Tesi di Laurea</Titolo> • Ogni elemento (tag) deve essere chiuso esplicitamente, o con un tag di chiusura o con una forma contratta. Esempio: <Libro isbn="2-266-04744-2"> <Titolo>Il libro della Giungla</Titolo> <Prezzo euro=“7”/> </Libro> Dott. Nicola Dragoni 15 Tecnologie di Internet Sintassi di XML Documento ben formato (2 di 3) • Tutti i tag sono correttamente nidificati. Esempio: <Articolo Num=“1”> <Rubrica>Finalità e oggetto della legge</Rubrica> <Comma Num=“1”>La Repubblica ...</Comma> </Articolo> • Esiste un elemento radice che contiene tutti gli altri. Esempio: <Legge> ..... </Legge> Dott. Nicola Dragoni 16 Tecnologie di Internet Sintassi di XML Documento ben formato (3 di 3) • Tutti i valori degli attributi sono racchiusi fra apici o doppi apici. Esempio: <Articolo Num=“1”> • Un elemento non può avere più attributi con lo stesso nome. Esempio corretto: <libro> <autore>Rossi</autore> <autore>Verdi</autore> </libro> Esempio scorretto: <libro autore=“Rossi” autore=“Verdi”/> Dott. Nicola Dragoni 17 Tecnologie di Internet Sintassi di XML Esempio: documento ben formato <?xml version=“1.0”?> <Libro> <Titolo>XML tascabile</Titolo> <Editore>Mondadori Informatica Libri</Editore> <Prezzo Valuta=“Euro”>7.70</Prezzo> <Descrizione>Si tratta di un tascabile che accompagna il lettore nella scoperta della tecnologia XML e delle sue applicazioni concrete nello sviluppo di software.</Descrizione> <Struttura> <Pagine>288</Pagine> <Capitoli>12</Capitoli> <Appendici>2</Appendici> </Struttura> </Libro> Dott. Nicola Dragoni 18 Tecnologie di Internet Sintassi di XML Esempio: documento non ben formato <?xml version=“1.0”?> <Libro> <Titolo>XML tascabile</Titolo> <Editore>Mondadori Informatica Libri</Editore> <Prezzo Valuta=Euro>7.70</Prezzo> <Descrizione>Si tratta di un tascabile che accompagna il lettore nella scoperta della tecnologia XML e delle sue applicazioni concrete nello sviluppo di software.</descrizione> <Struttura> <Pagine>288<Capitoli> </Pagine>12</Capitoli> <Appendici>2</Appendici> </struttura> </Libro> Dott. Nicola Dragoni 19 Tecnologie di Internet Sintassi di XML Parser XML (1 di 2) Per elaborare un documento XML occorre un apposito programma software chiamato parser o processore XML. Operazioni svolte dal parser: • legge il documento XML • controlla se è ben formato, cioè controlla la sua sintassi • segnala eventuali errori • elabora il contenuto del documento Dott. Nicola Dragoni 20 Tecnologie di Internet Sintassi di XML Parser XML (2 di 2) • Molti parser XML possono essere scaricati gratuitamente dal Web. • Alcuni applicazioni, come ad esempio il browser Microsoft Internet Explorer 5 (IE5), includono i loro parser XML. • Nel prossimo esempio utilizzeremo il parser XML di IE5, chiamato msxml. Fra i parser più noti figurano Xerces di Apache, Java API for XML Parsing (JAXP) di Sun Microsystem e XML for Java (XML4J) dell’IBM. Dott. Nicola Dragoni 21 Tecnologie di Internet Sintassi di XML Il parser msxml (1 di 3) • Un documento XML contiene dati, non informazioni formattate. Quando un documento XML viene caricato in IE5, viene elaborato dal parser msxml. • Se il documento è ben formato, il parser mette a disposizione dell’applicazione (IE5) i dati, utilizzando il documento XML. • L’applicazione può formattare e rappresentare i dati o svolgere altre elaborazioni. • Creiamo per esempio un documento XML chiamato intro.xml. Dott. Nicola Dragoni 22 Tecnologie di Internet Sintassi di XML Il parser msxml (2 di 3) • Carichiamo il file intro.xml in IE5: il browser visualizza i dati (come indica la videata sotto), applicando un foglio di stile (stylesheet) che formatta e colora i simboli di markup. • Il foglio di stile potrebbe applicare altri tipi di formattazione per rappresentare il documento XML, ma questa formattazione è quella di default scelta di Microsoft. Dott. Nicola Dragoni 23 Tecnologie di Internet Sintassi di XML Il parser msxml (3 di 3) • Se un documento XML non è ben formato, il parser genera un errore. Dott. Nicola Dragoni 24 Tecnologie di Internet Sintassi di XML Sintassi di XML Sommario In questa lezione abbiamo appreso: • qual’è la struttura logica di un documento XML • cos’è un elemento XML • cos’è un attributo XML • la definizione di documento ben formato • che cos’è un parser XML (msxml) Passi successivi: la prossima lezione sarà dedicata allo spazio dei nomi, o Namespace. Dott. Nicola Dragoni 25