La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Lezione 4 XML. LXML (eXtensible Markup Language) è un linguaggio di markup sviluppato dallo XML Working Group del W3C a partire dal 1996W3C XML è uno.

Presentazioni simili


Presentazione sul tema: "Lezione 4 XML. LXML (eXtensible Markup Language) è un linguaggio di markup sviluppato dallo XML Working Group del W3C a partire dal 1996W3C XML è uno."— Transcript della presentazione:

1 Lezione 4 XML

2 LXML (eXtensible Markup Language) è un linguaggio di markup sviluppato dallo XML Working Group del W3C a partire dal 1996W3C XML è uno dei più importanti sviluppi nella storia della computazione. Negli ultimi anni è stato adottato in campi molto diversi tra loro: legge, aeronautica, finanza, sicurezza, robotica, turismo, arte, design del software, fisica, letteratura, … XML è nato dallo sforzo di dare forza e struttura allSGML (Standard Generalized Markup Language, ISO standard: ISO 8879:1986) nel web, in una forma che fosse però abbastanza semplice per gli utenti non esperti.

3 XML XML nasce dalla lunga storia dei sistemi di elaborazione di testi allo scopo di permettere lelaborazione delle informazioni piuttosto che la loro visualizzazione in un documento XML, quindi, non e necessario fare alcun riferimento al modo in cui le informazioni verranno visualizzate: le regole per la visualizzazione saranno inserite in un foglio esterno chiamato foglio di stile (ingl. Stylesheet) XML permette allutente di definire il proprio insieme di tag (elementi) e in questo senso può essere considerato un meta- markup language: i tag definiti dallutente possono avere dei nomi che rispecchiano il contenuto del documento stesso Le specifiche complete dell XML 1.0 sono sul web (in italiano a

4 Struttura logica generale dei tag XML (HTML/SGML) testo a cui si riferisce Oltre al termine marcatore si usa etichetta o linglese tag; il termine tecnico è elemento A differenza che in SGML ed in HTML, in XML ogni marcatore aperto deve essere chiuso (XML è più restrittivo di SGML)

5 Markup XML per codifica strutturale Le avventure di Pinocchio Storia di un burattino Carlo Collodi Parte prima Come andò che maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. C'era una volta... - Un re! - diranno subito i miei piccoli lettori. No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno. Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze.

6 Markup doppio … Come andò che maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. … markup per la codifica di informazione strutturale + markup (parziale) per la codifica di informazione linguistica

7 Problema: Markup incrociato Con la presenza di markup multiplo si pone il problema delle etichette incrociate …Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze. AAA BBB CCC… La sintassi dell XML non permette questi incroci!!! (e neanche quella dell HTML, anche se i browser sono a questo proposito molto accomodanti)

8 Principali differenze fra HTML e XML XML non è un sostituto del HTML: XML e HTML sono stati pensati per scopi diversi. XML è pensato per descrivere dati e porre l'attenzione su cosa sono (marcatura dichiarativa) HTML è pensato per visualizzare dati e porre l'attenzione su come presentarli (marcatura mista procedurale/dichiarativa) Tuttavia, è possibile tradurre tutto lHTML in XML: il risultato si chiama XHTML HTML + Browser: sistema di visualizzazione di dati; XML + Processore XML + Applicazione = formato dati generale

9 SGML XMLXHTML HTML

10 Le parti di un progetto XML Un documento in XML è in realtà la combinazione di tre parti. Ci riferiamo ad esse come tre documenti separati; spesso, ma non necessariamente, sono anche file separati in maniera fisica. 1.Un documento dei contenuti cioé la parte che lautore vuole esporre a chi la visualizza o utilizza; 2.Un documento DTD (Document Type Definition) che specifica i macatori usati e la loro sintassi; 3.Uno stylesheet (foglio di stile) che stabilisce come verrà visualizzato e presentato il contenuto. La DTD è opzionale e spesso viene caricata direttamente dal web tramite una chiamata allinterno del documento dei contenuti (meccanismo dei Namespace) Il foglio di stile è opzionale, e superfluo se il contenuto non deve essere visualizzato in modo particolare.

11 XML Un documento XML è costituito da composizioni di stringhe, ovvero sequenze di caratteri UNICODE. Caratteristica di XML è quella di essere CASE SENSITIVE, ovvero di fare differenza tra lettere maiuscole e minuscole. Pertanto il tag "Pino" è diverso dai tag "pino", "pIno", "PINO", ecc.

12 Parti di un documento XML Un documento XML si compone di due parti principali: il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. il "DOCUMENT INSTANCE contiene i dati veri e propri.

13 Esempio di Prolog un documento XML dovrebbe iniziare con se non si specifica il valore dellattributo encoding la codifica è quella UNICODE standalone può assumere valori "yes" o "no" (il cui significato sarà chiaro in seguito) nome del documento file con la descrizione della struttura

14 Esempio di Document Instance Un documento XML è un documento di testo ed è formato da tag che una volta aperti devono SEMPRE essere chiusi Ugo Pina San Valentino Pina.... ti amo moltissimo! Tuo Ugo.

15 Rossi Verdi Esempio in XML bla bla N.B. Luso del rientro variabile (indentation) non è parte della sintassi XML, ma un modo per aiutare gli esseri umani nella identificazione della struttura. Idem per luso dei colori, di grassetto, font, ecc.

16 Un documento XML definisce una struttura ad albero che si ottiene esaminando le relazioni di annidamento che esistono tra i tag Deve esistere un solo tag che non sia allinterno di nessun altro. Questo tag definisce la radice dellalbero (root) (nellìesempio, memo). XML - struttura ad albero memofrom to body oggetto name name paragrafo Rossi Verdi esempio in XML bla

17 Root (radice) e componenti Ogni documento XML ben formato (well- formed) ha un solo elemento radice/root Gli elementi non ROOT sono chiamati COMPONENTI del documento.

18 Ingredienti principali di un documento XML Elementi: identificano porzioni di testo o punti nel testo; possono contenere testo puro e/o altre etichette (cf. le cartelle di windows) Entità abbreviazioni per caratteri o espressioni varie; Commenti ignorati dal processore, utili per lautore Attributi (e loro valori) definiti come proprietà degli elementi, ciascuno con un insieme di possibili valori;

19 Il processore XML Si assume che un documento XML venga analizzato (parsed) da un modulo software detto processore XML Tale modulo fa normalmente parte di qualche applicazione che usi dati in formato XML Il processore XML rileva la correttezza del documento, a due livelli: Ben-formatezza sintattica: conformità alle regole generali della sintassi XML (p.es. niente etichette incorciate) Validità: conformità alle specifiche della DTD Ovviamente un documento senza DTD non può essere dichiarato valido.

20 Entità predefinite Servono per far sì che i caratteri normalmente interpretati come MARKUP possano essere utilizzati come caratteri di testo (ad esempio per scrivere un manuale HTML). Sono i seguenti: & = & < = < > = > ' = ' " = " In generale le entità (sia predefinite che definite dallutente hanno la forma &nome; )

21 Commenti Allinterno di un documento XML posso aggiungere commenti, definiti come: Esempio: & --> I commenti sono invisibili al processore XML e servono solo per utenti umani. Eventuali tag allinterno non vengono processati Non possono essere inserite doppie linette -- in un commento, se non alla fine, per chiuderlo.

22 i tag XML possono avere uno o più attributi un attributo è una coppia nome="valori, che viene associata al tag (prima di chiuderlo con >) Mario Rossi il valore di un attributo va tra virgolette semplici () o doppie () (attenzione alla sostituzione automatica di con !) XML - attributi

23 XML – da non dimenticare… Virgolette necessarie nellinserimento di attributi (… o … ma mai misti: … o …) Bilanciamento dei tags (se si apre il tag deve essere anche chiuso da ; oppure si utilizzano tag vuoti (, possibilmente compattati: ) Tag incassati - uso corretto: ecco il link Tag incassati – uso non corretto (tag incrociati) ecco il link Caratteri speciali devono comparire sempre con la loro sequenza vista in html: à si scrive con à > con > etc… XML è case sensitive: è diverso da !!!

24 Esempio (negozi.xml) Supermercati Poli S.Pio X 2 …… Alimentare Ubiq Corso 3 Novembre 10 Libreria ……

25 Esempio 4: info come testo o come attributo? Ubiq Corso 3 Novembre / Libreria …… Un caso di informazione doppia: quarantaquattro gatti

26 La DTD L'XML non è limitato a un insieme fisso di tipi di elementi, ma permette di definire e utilizzare elementi e attributi personalizzati; per far questo viene fornita una sintassi con cui è possibile specificare gli elementi e gli attributi che possono essere utilizzati all'interno dei documenti. In altre parole è possibile creare un modello, chiamato Document Type Definition (DTD), che descrive la struttura e il contenuto di una classe di documenti.

27 DTD: Esempio antologia The SICK ROSE O Rose thou art sick. The invisible worm, That flies in the night In the howling storm: Has found out thy bed Of crimson joy: And his dark secret love Does thy life destroy. Alcune caratteristiche per la definizione di antologia di poesie 1. Una antologia contiene un certo numero di poesie e nient'altro. 2. Una poesia contiene a volte un singolo elemento di titolo che precede la prima strofa, e non contiene mai nessun altro elemento. 3.A parte il titolo, una poesia consiste solo di strofe. 4. Una strofa consiste solo di versi ed ogni verso è contenuto in una strofa. 5. Una strofa non può essere seguita da nulla tranne che da un'altra strofa, oppure dalla fine della poesia. 6. Un verso non può essere seguito da nulla se non da un altro verso, oppure dall'inizio di una nuova strofa.

28 Esempio DTD: Antologia

29 XML – documenti well formed un documento XML è ben formato se e solo se: tutti i suoi tag sono chiusi, nellordine corretto esiste un solo elemento radice i valori degli attributi sono scritti tra virgolette gli elementi non hanno due attributi con lo stesso nome i nomi degli elementi e degli attributi non contengono i caratteri & NB: i parser XML sono in grado di trattare solo i documenti XML ben formati

30 la DTD L'XML ha una propria DTD (attualmente descritto nella specifica REC-xml ) in cui vengono elencate le regole della specifica stessa del linguaggio. Con l'XML è anche introdotta una classe di documenti che fa riferimento alla sola DTD dell'XML; la creazione di una DTD personale non è quindi indispensabile.

31 DTD type valid I documenti con le specifiche della DTD XML possono essere trovati agli indirizzi: La seguente URL contiene un controllore di validità Se un documento è conforme alle specifiche di una DTD personale, allora si dice che è TYPE VALID ("valido").

32 Esempio di una DTD Per esempio, dato la seguente DTD personale:

33 Documento type valid il seguente documento risulta TYPE VALID: Luigi Rossi

34 Esempio 2 Consideriamo la seguente DTD, che definisce la struttura di un documento che contiene un indirizzo postale:

35 Osservazioni Osservazioni: il nome del document type ("indirizzo") è puramente arbitrario, avremmo potuto scrivere anche address" o altro...; il root element deve avere (obbligatoriamente) lo stesso nome del document type (nell' esempio, "indirizzo");

36 Osservazioni Una volta definito la DTD, un documento TYPE VALID di tipo "indirizzo avrà la seguente forma: Giuseppe Garibaldi Pinerolo (TO) Italia 12345

37 Dove si trova la DTD? la DTD di un file XML può trovarsi: DENTRO il file stesso (internal set): questo sistema comporta uno svantaggio in termini di condivisione in quanto la DTD non può essere usata per altri documenti XML simili; FUORI dal file (external set): qui, invece, la DTD è condivisibile e riutilizzabile.

38 External set In caso di external set la DTD di riferimento viene caricata tramite il sistema operativo (SYSTEM). La URL della risorsa può: essere un percorso sul file system locale. Esempio: oppure essere un indirizzo esterno: Chiaramente la seconda soluzione offre maggiore accessibilità.

39 Tipi di content specification Abbiamo già visto un esempio di "content specification" quando abbiamo elencato gli elementi di "indirizzo": "nome", "via", "citta", "stato", "CAP: #PCDATA (Parsed characted data) indica un contenuto misto (testo e/o marcatori). Il processore XML analizzarà i marcatori, ma la DTD non ne specifica la struttura. Una specifica #CDATA, al contrario, indica al processore XML che non deve analizzare il contenuto, ma è tuttavia formato da caratteri Una specifica #NDATA indica invece che il contenuto di un tag potrebbe essere anche un file binario arbitrario (p.es. una immagine)

40 Altri tipi di content specification TIPOCONTENUTO PERMESSO EMPTY (vuoto)nessuno ANYqualsiasi MIXEDDati o sotto-elementi ELEMENTSOLO sotto elementi

41 Esempio TIPOCOME SI DICHIARA EMPTY (vuoto) ANY (qualunque cosa) MIXED MIXED ELEMENT

42 Elementi alternativi E` possibile specificare che un certo elemento può essere composto da uno di due elementi in alternativa: Questo esempio definisce l' elemento "figura" (per esempio di un libro) dicendo che una figura ha SEMPRE una didascalia più un'immagine o un pezzo di codice a scelta.

43 Il numero degli elementi Per indicare opzionalità o ripetizioni si usano i modificatori già incontrati nelle espressioni regolari: ? ? = l' elemento che precede sarà presente da 0 a 1 volta * = l' elemento che precede sarà presente 0 o più volte + = l' elemento che precede sarà presente 1 o più volte Esempio: L' elemento sottotitolo, se cè, è unico. L' elemento "paragrafo" deve essere presente per lo meno UNA volta. L' elemento "note" può essere ripetuto infinite volte oppure essere totalmente assente.

44 DTD: Esempio antologia The SICK ROSE O Rose thou art sick. The invisible worm, That flies in the night In the howling storm: Has found out thy bed Of crimson joy: And his dark secret love Does thy life destroy. Alcune caratteristiche per la definizione di antologia di poesie 1. Una antologia contiene un certo numero di poesie e nient'altro. 2. Una poesia contiene a volte un singolo elemento di titolo che precede la prima strofa, e non contiene mai nessun altro elemento. 3.A parte il titolo, una poesia consiste solo di strofe. 4. Una strofa consiste solo di versi ed ogni verso è contenuto in una strofa. 5. Una strofa non può essere seguita da nulla tranne che da un'altra strofa, oppure dalla fine della poesia. 6. Un verso non può essere seguito da nulla se non da un altro verso, oppure dall'inizio di una nuova strofa.

45 Esempio Antologia

46 Con questi elementi possiamo dichiarare una poesia come composta da una o più strofe, versi liberi o quartine, definite ad esempio come: Notare la differenza tra: Altro esempio: ritornello


Scaricare ppt "Lezione 4 XML. LXML (eXtensible Markup Language) è un linguaggio di markup sviluppato dallo XML Working Group del W3C a partire dal 1996W3C XML è uno."

Presentazioni simili


Annunci Google