IDUL 2011 Marcature ad alto livello, XML. DATA BASE E LINGUAGGI DI MARCATURA Una base di dati organizza dati altamente strutturati ed interconnessi in.

Slides:



Advertisements
Presentazioni simili
I Namespace Mario Arrigoni Neri.
Advertisements

Introduzione all’HTML
WWW XML-Namespace Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u Lesigenza e il funzionamento dei Namespace in XML.
DTD Document Type Definition per XML
Introduzione al DTD Mario Arrigoni Neri.
Introduzione ad XML Mario Arrigoni Neri.
HTML+XML= XHTML Il ritorno al futuro del WEB A cura di Barbara Lotti.
Lezione 1 Primi passi in HtML SCRIVERE TESTI di Sergio Capone
A. FERRARI Alberto Ferrari. L'HyperText Markup Language (HTML) (traduzione letterale: linguaggio di marcatura per ipertesti) è un linguaggio usato per.
1 Introduzione ad XML. 2 Problemi con SGML Complesso da comprendere ed utilizzare Non è pensato per la rete: mancano link ipertestuali e specifiche grafiche.
Lezione 18 MIDI e XML Programmazione MIDI (Prof. Luca A. Ludovico)
Document Type Definition per XML Presentazione 8.1 Informatica Generale (Prof. Luca A. Ludovico)
DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation.
XSLT (eXtensible Stylesheet Language Transformation) Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è
Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, La rappresentazione dellinformazione testuale e i linguaggi di codifica.
XML Prof. Alfredo Pulvirenti. XML XML (eXtensible Markup Language) è un meta linguaggio. Può essere definito come un insieme di regole e convenzioni che.
TW Analisi dei documenti n Classificazione dei componenti n Selezione dei componenti, costruzione della gerarchia, dei blocchi informativi e degli elementi.
Laboratorio di Applicazioni Informatiche II mod. A
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
XML Prof. Barbara Pernici Politecnico di Milano aggiornato 10/12/2002.
XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE.
Lezione 3 Codifica di alto livello: dalla selezione degli elementi da marcare ad XML.
IDUL 2013 Marcature ad alto livello, corpora e XML.
Dagli editor di testo alla codifica di alto livello
Lezione 3 Codifica di alto livello: dai formati binari ad XML.
Lezione 4 XML.
Lezione 5 Attributi, Entità, Parametri e Namespaces.
DTD, Entità, Parametri, Namespace
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
Laboratorio di Informatica
Un’introduzione a HTML (I)
Introduzione e nozioni fondamentali di sintassi
Linguaggi di markup1 LINGUAGGI DI MARKUP. Linguaggi di markup2 Documenti su Internet Internet permette (tra laltro) di accedere a documenti remoti In.
Corso di PHP.
XSLT Trasformazioni XSL Ing. Luca Sabatucci. XSLT Uno dei vantaggi principali nell'utilizzo dell'Extensible Markup Language è la facilità con cui si possono.
Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)
Importanza DTD La DTD (Document Type Definition) consente di dichiarare in maniera univoca la struttura di markup mediante la definizione dello schema.
Linguaggi di codifica.
1 Documenti XML validi La Document Type Definition Dichiarazione di elementi.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
HyperText Markup Language 17-23/6/08 Informatica applicata B Cristina Bosco.
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Creare pagine web Xhtlm. Struttura di una pagina.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
HTML HyperText Markup Language Linguaggio per marcare un’Ipertesto
Introduzione a XML applicazioni in open archives Azalea III Incontro di Formazione, Roma 2-3 febbraio 2004.
Informatica Umanistica A.A. 2007/2008 LEZIONE 4 eXtensible Markup Language (XML) INTRODUZIONE.
Roma, 16 giugno 2005 AZALEA Un sistema di conoscenza in oncologia a disposizione di pazienti e cittadini Gli aspetti informatici.
XHTML Corso linguaggi per il web a.s. 2011/2012 ITIS A. Righi – Corsico Relatore – Aldo Guastafierro.
Lezione 3 Struttura lessicale del linguaggio
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Introduzione a Javascript
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
IV D Mercurio DB Lezione 2
HTML HTML e il web.
HTML e CSS C. Gena, C. Picardi, J. Sproston HTML e CSS.
PROGETTO… Internet Providers, registrazione del dominio Costruire una home page … e renderla visibile sul Web.
Fondamenti di Markup Languages: Richiami di HTML © 2005 Stefano Clemente Stefano Clemente
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
WWW Domande Fabio Vitali. WWW Fabio Vitali2 Domanda 1 Vorrei sapere se quando definiamo un tag a livello di working group, cioè per definire i tag comuni.
WWW La sintassi di SGML  XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo in breve tutti gli aspetti di SGML che sono in comune con XML:
Documenti XML ben formati Altre componenti di un documento XML – Struttura dei documenti XML.
Documenti XML ben formati Entità– Sezioni condizionali.
2 Indice Un esempio Che cosa è A cosa serve Confronto con HTML Punti di forza La sua struttura.
Il linguaggio XML per la rappresentazione dei dati Lo Extensible Markup Language o XML è stato concepito da un gruppo di lavoro del World Wide Web Consortium.
HTML. Pagina HTML Struttura Titolo Hello World! Paragrafo apre il documento html contiene informazioni come il titolo della pagina, i meta tags, la codifica.
Transcript della presentazione:

IDUL 2011 Marcature ad alto livello, XML

DATA BASE E LINGUAGGI DI MARCATURA Una base di dati organizza dati altamente strutturati ed interconnessi in modo non sequenziale. Poco adatta a rappresentare informazioni non strutturate, o altamente sequenziali (come quelle di un testo), o con scarse dipendenze interne.

DATA BASE E LINGUAGGI DI MARCATURA Nel caso di un testo, le informazioni in esso contenute possono essere organizzate tramite linguaggi di marcatura. Con tali linguaggi si può effettuare una codifica ad alto livello Contrapposta alla codifica a livello zero = resa dei caratteri tramite ascii, unicode, ecc. Invece di inserire i dati in un DB, si inserisce una codifica intorno alla informazione da segnalare.

MOTIVI DELLA CODIFICA AD ALTO LIVELLO In un testo i dati linguistici sono correlati secondo piani di organizzazione multipli struttura del testo l articolazione in sezioni, capitoli, titoli, ecc. struttura del contesto lautore, la data di produzione, la finalità del testo, ecc. struttura linguistica (implicita nel testo!!) Lingua del testo, differenza testo/citazione … informazioni morfologiche, sintattiche, semantiche Strutture retoriche, argomentative, … La codifica esplicita di informazione su un testo viene detta annotazione (o markup) del testo.

COME CODIFICARE? Quali passi seguire per effettuare una annotazione? Individuare il livello di informazione da codificare (p.es. strutturale, linguistica, ecc.) Definire il repertorio dei tratti giudicati rilevanti per la codifica Scegliere un formato per associare la annotazione al testo

SCELTA DELLE INFORMAZIONI DA ANNOTARE: ESEMPIO Codifica morfo-sintattica oggetto: codificare esplicitamente la categoria grammaticale e le proprietà morfologiche delle parole di un testo. Da definire: quali attributi codificare (cat. grammaticale, persona, genere, numero, caso, ecc.) quali attributi sono compatibili (p.es. non ha senso marcare Caso su un elemento marcato avverbio) quali valori possono avere i diversi attributi (numero = SING, PLUR; caso = NOM, GEN, ecc.) Cosa fare con elementi ambigui (per es. come codificare che in Che roba!, dico che piove?) e come specificare eventuali valori disgiuntivi (X è CONG oppure PRON) Quali criteri di applicazione al testo delle categorie selezionate: attribuire la codifica a tutto il testo, o a una parte? Fino a che livello di dettaglio?

Esempio: categorie morfologiche per litaliano (Rank Xerox Research Centre) TAG| DESCRIPTION | EXAMPLE NSG| singular noun| casa, balsamo NPL| plural noun| case, ventottesimi PROP| proper name| Bernardo, Monte Isola ADJSG| singular adjective| buono, narcisistico ADJPL| plural adjective| belle, trecentocinquesimi VAUXINF| infinitive auxiliary "essere"/"avere"| esser, essere, aver, avere VAUXF| finite auxiliary "essere" or "avere" | è, sarò, saranno, avrete VAUXGER| gerund auxiliary "essere" or "avere"| essendo, avendo VAUXGER_CLIT| gerund auxiliary + clitic| essendogli VAUXIMP| imperative auxiliary| sii, sia, abbi, abbiamo VAUXIMP_CLIT| imperative auxiliary + clitic| siategliene, abbiatemi VAUXPPSG| singular past participle auxiliary| stato/a, avuto/a VAUXPPPL| plural past participle auxiliary| stati/e, avuti/e VAUXPPSG_CLIT| sg. past part. auxiliary + clitic| statone, avutavela VAUXPPPL_CLIT| pl. past part. auxiliary + clitic| statine, avutiti VAUXPRPARTSG | singular present participle auxiliary| essente, avente VAUXPRPARTPL| plural present participle auxiliary| essenti, aventi VINF | verb infinitive| sciupare, trascinar VINF_CLIT| verb infinitive + clitic| spulciarsi, risucchiarsi …

REQUISITI PER LA CODIFICA Dovendo associare altre informazioni al testo, alcuni requisiti generali: 1. Mantenere una chiara divisione tra il testo e la annotazione relativa (informazione vs. metainformazione); Esempio negativo: Come Cong. andò V_intr che Cong. Maestro N … 2. Permettere di scorporare testo e annotazione; 3. Avere annotazioni ragionevolmente autoesplicative; 4. Non consumare troppo spazio; 5. Permettere allutente facili aggiunte/modifiche 6. Permettere luso del testo annotato su una varietà di sistemi informatici (tramite formati aperti) 7. Limitare la obsolescenza (del formato dati e del supporto di registrazione)

ASSOCIARE TESTO E CODIFICA i linguaggi di marcatura Codifica di alto livello con linguaggi di markup (linguaggi di marcatura) un testo codificato con un linguaggio di marcatura è in formato solo testo (tutti caratteri stampabili) buona interoperabilità Scarsa obsolescenza (specie se associato ad uno standard e non semplicemente ad un software) linformazione strutturale è rappresentata attraverso laggiunta al testo di etichette (o tag) di marcatura, chiaramente identificabili Buona distinzione testo/metatesto Non un buon modo per risparmiare spazio (ma esiste sempre la possibilità di comprimere il file; non un problema di conservazione con gli hardware attuali; problema, in caso, di trasmissione via rete)

INSERIMENTO DELLA MARCATURA Programmi per caricare, scrivere o modificare testi in formato ASCII (Latin-1 / UNICODE) Funzioni di stampa ridotte allosso (niente formattazione del carattere, paragrafo, …) Funzioni anche molto sofisticate di manipolazione del testo (ricerca/sostituzione avanzata, macro, …) Sensibili alla sintassi di vari tipi di file di testo (linguaggi di programmazione, HTML, …) Editor di testo

EDITOR DI TESTO Programmi per caricare, scrivere o modificare testi in formato ASCII (Latin-1 / UNICODE) Funzioni di stampa ridotte allosso (niente formattazione del carattere, paragrafo, …) Funzioni anche molto sofisticate di manipolazione del testo (ricerca/sostituzione avanzata, macro, …) Sensibili alla sintassi di vari tipi di file di testo (linguaggi di programmazione, HTML, …) Editor di testo

EDITOR DI TESTO MINIMO Blocco note (ingl. Notepad) di Windows. Editor minimalista, distribuito con Windows. Legge di base file con suffisso.txt Nessuna funzione sofisticata Nessuna sensibilità al tipo di file Conosce UNICODE Problemi nel trattamento di file non-windows

EDITOR: Scite Vedi

Emacs Probabilmente il più potente editor esistente. Può essere esteso dagli utenti per usi vari; modulare Sofisticata serie di comandi sul testo (macro, espressioni regolari, …) Gratuito, con codice open source Due versioni: GNU Emacs(1976 Richard Stallman) e XemacsGNU Emacs Xemacs Disponibile per UNIX, Windows, Mac, …Windows Interfaccia prevalentemente non grafica; ben documentata ma difficile da imparare

EDITOR: EMACS Vedi

DUE TIPI DI MARCATURA DEL TESTO Marcatura procedurale (detta anche marcatura tipografica) che consiste in una serie di istruzioni operative che forniscono le specifiche di formattazione e impaginazione del testo per la visualizzazione e la stampa Marcatura dichiarativa (detta anche marcatura logica o descrittiva) dove i codici di marcatura indicano la funzione assolta dal blocco di testo a cui si riferiscono, ad esempio titolo, paragrafo, nota, citazione ecc. senza fornire indicazione di come tali elementi del testo dovranno apparire fisicamente sulla pagina o sul video (es. SGML, XML) XML

Marcatura dichiarativa: vantaggi facilità nella creazione: lautore si concentra sul ruolo organizzativo delle singole parti di testo, piuttosto che sul loro aspetto stampato indipendenza dalla formattazione: riformattare un documento secondo nuove regole richiede semplicemente di ricodificare dei parametri esterni, non di modificare in alcuna maniera il testo codificato flessibilità: riusare un testo codificato in un nuovo contesto è facile, perché non è necessario rimuovere la vecchia informazione per far posto alla nuova visioni di documenti dinamicamente riconfigurabili: è possibile selezionare viste diverse dello stesso documento

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.

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

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) Maiuscole e minuscole sono distinte ( … è un errore)

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.

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

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!!! (neanche quella dell HTML, ma i browser sono a molto accomodanti su questo punto)

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 Principali differenze fra HTML e XML

SGML XMLXHTML HTML

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.

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.

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.

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.

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

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.

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.

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

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.

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;

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: & = & < = < > = > &apos; = ' " = « In generale le entità (sia predefinite che definite dallutente hanno la forma &nome; )

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.

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

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 à (non necessario se Latin-1) > con > etc… XML è case sensitive: è diverso da !!!

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

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

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.

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.

Esempio DTD: Antologia

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

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.

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

Esempio di una DTD Per esempio, dato la seguente DTD personale: <!DOCTYPE persona [ ]>

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

Esempio 2 Consideriamo la seguente DTD, che definisce la struttura di un documento che contiene un indirizzo postale: <!DOCTYPE indirizzo [ ]>

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");

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

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.

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: La seconda soluzione offre maggiore accessibilità.

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)

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.

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 almeno 1 volta. L' elemento "note" può essere ripetuto oppure assente.

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.

Esempio Antologia

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

Attributi Come definire attributi in una DTD: <!ATTLIST poesia iden ID #IMPLIED status (bozza | rivisto | pubblicato) "bozza" > Lattributo ident di poesia è di tipo ID e può mancare (essere implicito) Lattribito status di poesia ha 3 valori possibili: bozza, rivisto e pubblicato; se non è presente in valore da assumere è bozza

Attributi: esempi di valori possibili CDATA: (character data) Il valore dellattributo può contenere qualsiasi carattere valido, inclusi spazi e punteggiatura; PCDATA: (Parsed character data) Il valore dellattributo può contenere qualsiasi carattere valido, inclusi spazi e punteggiatura; eventuali etichette comprese nel valore, possono essere riconosciute come tali dal parser XML; NMTOKEN: (named token) Il valore dellattributo può contenere solo i caratteri che sono validi allinterno di un nome o di un identificatore generico; NMTOKENS: (named tokens) Il valore dellattributo può contenere uno o più valori NMTOKEN separati da uno o più spazi bianchi; ID: (identifier ) Il valore dellattributo deve essere una singola parola iniziante con un carattere alfabetico, che possa essere usata come identificatore univoco (un dato valore può essere usato una volta sola come valore di qualsiasi attributo ID); IDREF: (identifier reference) Il valore dellattributo deve contenere una singola parola che è stata usata altrove come identificatore univoco di qualche elemento;

Obbligatorietà dei valori 1. #REQUIRED: un valore deve essere specificato. 2. #IMPLIED: non deve essere specificato nessun particolare valore. 3. "valore di default Esempi: <!ATTLIST poesia iden ID #IMPLIED status (bozza | rivisto | pubblicato) #REQUIRED lingua CDATAitaliano>

Identificatori e riferimento Attributo utile solo per elementi a cui pensiamo di dover poi far riferimento Esempio:

Per far riferimento serve un elemento composto solo da un attributo di tipo IDREF: <!ATTLIST poesiaRef target IDREF #REQUIRED > Blakes poem on the sick rose

Entità predefinite Le entità predefinite possono spesso rappresentare singoli caratteri, tramite il loro numero di codice (esprimibile con la forma: &#num; dove num è un numero di ASCII/Latin-1/UNICODE…) -->

Tre tipi di entità non predefinite Entità interne &tei; Text Encoding Initiative Entità esterne <!ENTITY ChapTwo SYSTEM " Entità pubbliche <!ENTITY p3.sg PUBLIC "-//TEI//TEXT Guidelines Chapter on XML//EN" "p4chap2.xml">

Entità dentro definizioni Un esempio di entità definita in una DTD ed usata alla riga successiva, per definire una nuova entità: &xml-url; ">

Se una entità viene dichiarata più di una volta, solo il primo valore dichiarato è valido &personaggio; ==> pluto NB: Ciò si discosta del normale comportamento delle variabili nei linguaggi di programmazione; normalmente lultima assegnazione è quella che vale)

Parametri Un parametro è un insieme di attributi a cui viene dato un nome, in modo da poterlo usare con più elementi. Per fare riferimento ad un parametro si usa la forma: %nomeparametro;

Parametri: esempio <!ENTITY % a.global iden ID #REQUIRED Rend CDATA #IMPLIED> <!ATTLIST myElement %a.global; another CDATA #IMPLIED > Con questo sistema i due attributi iden e rend vengono assegnati insieme a myElement. Nome parametro elenco attributi

Un esempio di documento completo Un documento marcato in XML consiste di: Una dichiarazione XML che indica proprietà generali del documento. Una Document Type Declaration (o DOCTYPE), che assegna l' elemento root e la DTD (necessaria solo se si vuole che il documento XML possa essere dichiarato formalmente valido da un parser) L' elemento root, che contiene il testo e le successive marcature. <!DOCTYPE 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.

Namespace Il meccanismo dei namespace (spazi dei nomi) consente ad un documento in XML di caricare ed usare più di una DTD, ciascuna con il suo set di marcatori. I marcatori diventano disponibili allinterno del marcatore in cui la DTD è stata caricata con la la istruzione xmlns Un opportuno sistema di prefissi distingue i marcatori di DTD diverse (risolvendo eventuali omonimie) Esempio:...

Namespace con prefissi <verso xmlns:gram= xmlns:form= Shall I compare thee to a summer s day ? …

I marcatori che vengono caricati da un particolare namespace hanno significato solo allinterno di quel namespace. Il significato dei prefissi dipende del namespace più interno in cui sono definiti (se ci sono più namespace con prefissi con lo stesso nome, il particolare prevale sul generale). La URL data nella definizione del namespace non viene controllata in fase di validazione

Esercizi di creazione DTD Provate a creare una DTD che copra (almeno) testi teatrali della seguente forma: T1: Titolo Autore1 Atto Descrizione di scena Personaggio : battuta Atto Personaggio: battuta Epilogo T2: Titolo Autore1, autore2 Personaggio: battuta Descrizione di scena Personaggio: battuta Descrizione di scena Epilogo T3: Titolo Autore1 Atto Personaggio: battuta Atto Personaggio: battuta Personaggio: Battuta Epilogo Indice T4: Titolo Autore1 Personaggio: battuta Descrizione di scena Personaggio: battuta Epilogo Postfazione T5: Titolo Autore1 Monologo Postfazione Si ricordi: A? = A è opzionale A+ = A appare almeno 1 volta A* = A appare 0 o più volte (A | B) = o A o B (A, B) = A seguito da B

Esercizi di creazione DTD Mickey Mouse, via degli Aranci 12, Topolinia Sig. Mickey Mouse, via degli Aranci n. 12., Topolinia (TO) Fam. Mouse, via degli Aranci 12, 38160, Topolinia, Italia Provate a creare una DTD che copra le seguenti forme di indirizzo: Si ricordi: A? = A è opzionale A+ = A appare almeno 1 volta A* = A appare 0 o più volte (A | B) = o A o B (A, B) = A seguito da B

Esercizi di creazione DTD Disponibile su O sulla biblioteca di Liber liber, in HTML: Provate a creare una DTD che copra la (intricata) struttura di uno dei primissimi libri di cucina italiani: La Scienza in Cucina e lArte di Mangiar Bene, di Pellegrino Artusi.