informatica umanistica a.a. 2009/2010 extensible markup language (xml)
TRANSCRIPT
![Page 1: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/1.jpg)
Informatica Umanistica A.A. 2009/2010
eXtensible Markup Language (XML)
![Page 2: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/2.jpg)
XML - Acronimo
XML (eXtensible Markup Language):
è l'abbreviazione di Linguaggio Estensibile di Markup ed è l'acronimo dell'espressione inglese Extensible Markup Language.
Guida:http://www.html.it/xml/guida/index.html
![Page 3: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/3.jpg)
Cosa è XML?
è un "markup language" molto simile all'HTML
è pensato per descrivere dati.
non esistono tag predefiniti . Lo sviluppatore definisce i suoi tag personali
utilizza un documento di definizione dei tipi (Document Type Definition - DTD) per descrivere i dati.
attraverso l'uso di un DTD diviene auto-descrittivo
![Page 4: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/4.jpg)
Principali differenze fra HTML e XML
XML è pensato per trasportare dati.
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.
HTML è pensato per visualizzare dati e porre l'attenzione su come presentarli.
HTML si occupa di visualizzare dati, mentre XML di descrivere le informazioni
![Page 5: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/5.jpg)
HTML vs XML
In HTML informazione e sua visualizzazione NON sono separate
In XML informazione e sua visualizzazione sono separate
![Page 6: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/6.jpg)
Un documento XML è composto da tre parti
XML i dati (struttura fisica - document istance) Quale informazione e' contenuta nel file?
DTD lo schema dei dati (struttura logica) Quali tag posso usare? Dove? Come?
XSL la presentazione dei dati (stylesheet) Come visualizzo questi dati?
![Page 7: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/7.jpg)
XML – DTD – XSL
Nel file XML c’è il contenuto “vero e proprio” semanticamente strutturato
La DTD (o lo Schema) definiscono la sintassi
dell’XML
Il file XSL definisce la visualizzazione
![Page 8: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/8.jpg)
XML – HTML
XML, come HTML è un dialetto di SGML orientato al web, ma non è un’alternativa a HTML.Il file XML viene trasformato da un programma in un altro linguaggio, tipicamente HTML ma non solo (testo, PDF, VoiceML, ..., qualsiasi formato)
![Page 9: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/9.jpg)
Piccolo esempio
<lettera>
Cara Beatrice, ti scrivo per comunicarti …
<saluti> cari saluti,
<firma> Dante </firma>
</saluti>
</lettera>
Questo e' il file XML (dati). I tag sono liberi e non definiti dal W3C.
“lettera” e' l'elemento radice (root).
Come viene visualizzato? Lo vediamo dopo
![Page 10: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/10.jpg)
La dichiarazione XML La dichiarazione XML è obbligatoria e deve essere
posta all’immediato inizio del documento (ovvero come primo carattere! Niente spazi!!!):
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
Gli attributi sono: version: (obbligatorio) la versione di XML usata. encoding: (opzionale) nome della codifica dei caratteri
usata nel documento. (default: UTF-8 o 16) UTF-8 (8-bit UCS/Unicode Transformation Format) e' un
character encoding for Unicode. standalone: (opzionale) (default: no)
standalone=yes - il file non fa riferimento ad altri file esterni, ovvero il solo file XML contiene dati e DTD
Noi useremo sempre standalone=”yes” standalone=no – e' necessario un file esterno (che
contiere il DTD)
![Page 11: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/11.jpg)
Piccolo esempio (2)
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<lettera>
Caro Beatrice, ti scrivo per comunicarti…
<saluti> cari saluti,
<firma> Dante </firma>
</saluti>
</lettera>
Quale e' differenza con HTML? Quale e' l'elemento radice? Come facciamo a sapere che “saluti” e' un tag
valido? O che ci deve essere una sola “firma”? E' well formed? E' valido?
![Page 12: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/12.jpg)
Elementi
Gli elementi sono le parti di documento dotate di un senso proprio.
Un elemento è individuato da un tag iniziale, un contenuto ed un tag finale.
Non confondere i tag con gli elementi!
<TITOLO> Primo file XML </TITOLO>elemento TITOLO, racchiuso dai tag TITOLO e /TITOLO
<saluti> cari saluti <firma> Marianna </firma></saluti>elemento saluti (contiene un elemento firma)
![Page 13: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/13.jpg)
Elementi - esempio
Gli elementi sono alla base della strutturazione dei documenti XML.
Un elemento è un frammento di dati, limitato ed identificato (tramite un nome) da un tag.
Tag di
apertura<album>
<artist>
<title>
</artist>
</title>
</album>
Santana
Supernatural
Elemento
“artist”
Elemento
“title”
Elemento
“album”
Tag di
chiusura
![Page 14: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/14.jpg)
Commenti
I documenti di markup possono contenere commenti, ovvero note da un autore all’altro, da un editore all’altro, ecc.
Queste note non fanno parte del contenuto del documento, e le applicazioni di markup li ignorano.
Sono molto comodi per passare informazioni tra un autore e l’altro, o per trattenere informazioni per se stessi, nel caso le dimenticassimo.
<!-- Questo è ignorato dal parser -->
![Page 15: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/15.jpg)
Elementi - Regole
I nomi degli elementi sono case-sensitive. Ogni elemento aperto deve essere
chiuso entro la fine del documento. Gli elementi possono essere nidificati, e in
tal caso vanno chiusi esattamente nell’ordine inverso a quello di apertura.
<a>
<b>
</a>
</b> e' ERRATO poiche' non sono chiusi dell'ordine corretto
Un documento XML deve avere un unico elemento “radice”, in cui tutti gli altri sono nidificati
![Page 16: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/16.jpg)
Elementi - Sintassi
Il tag di apertura di un elemento ha la forma seguente:
<nome attributi> nome è il nome dell’elemento. attributi è una lista di attributi per l’elemento (che può
non apparire). Il tag di chiusura corrispondente ha la forma
seguente:</nome>
nome è lo stesso identificatore usato nell’apertura. Alcuni elementi possono essere privi di contenuto; in
questo caso è possibile omettere il tag di chiusura scrivendo quello di apertura nel modo seguente (empty tag):
<nome attributi />
![Page 17: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/17.jpg)
Elementi - Gerarchia Gli elementi, nidificandosi, creano la
struttura ad albero tipica dei documenti XML.
All’interno di questa struttura si definiscono alcuni “rapporti di parentela” utili per individuare gli elementi:
<a>
<b>
<c>
</b>
</c>
</a>
Testo
<d/>
• a è il nodo radice
• b e c sono figli di a, il testo è figlio di b, d è figlio di c
• c è il padre di d, b è il padre del testo, a è il padre di b e c
• b e c sono fratelli
• b, c, d e il testo sono discendenti di a, d è un discendente di c, il testo è un discendente di b
• a è un predecessore di b, c, d e del testo, b è un predecessore del testo, c è un predecessore di d.
![Page 18: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/18.jpg)
Attributi
Gli elementi possono contenere uno o più attributi, che sono termini aggiuntivi che definiscono con più precisione l’elemento, es. <section id=”uno”>
Il valore degli attributi è racchiuso tra virgolette (singole: ‘uno’, o doppie: “uno”). N.B. Le virgolette devono essere entrambe singole o entrambe doppie.
Un attributo non può essere usato due volte all’interno dello stesso elemento.
Un elemento può contenere più di un attributo.<romanzo file=“Nicola.doc”> …</romanzo><capitolo N=“1”>Capitolo primo</capitolo>
![Page 19: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/19.jpg)
Attributi - Regole
I nomi degli attributi sono case-sensitive. Lo stesso tag non può contenere due attributi con
lo stesso nome. Non sono ammessi attributi senza valore (solo
nome). Il valore degli attributi deve essere specificato tra
virgolette semplici o doppie. Il valore può contenere riferimenti ad entità. Il valore non può contenere markup, sezioni
CDATA o virgolette uguali a quelle iniziali.
![Page 20: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/20.jpg)
Attributi - Sintassi
Sintassi di base da usare all’interno dei tag di apertura:
<nome attributo=“valore”> Una lista di attributi si ottiene elencando più attributi
separati da uno o più spazi:
<nome att1=“vl1” att2=“vl2”> Per includere virgolette nel valore, è necessario usare
un tipo diverso da quello usato per delimitare il valore stesso:
<nome att1=‘ “virgolette” ’> Si possono includere riferimenti a entità nel valore:
<nome att1=“" salve "”>
![Page 21: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/21.jpg)
Entità
Le entità sono frammenti di documento memorizzati separatamente e richiamabili all’interno del documento.
Esse permettono di riutilizzare lo stesso frammento in molte posizioni garantendo sempre l’esatta corrispondenza dei dati, e permettendo una loro modifica semplificata.
Oggi è una bella giornata. Come dice &NP;: “divertitevi!”
![Page 22: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/22.jpg)
#PCDATA
Rappresenta il contenuto vero e proprio del documento.
Esso corrisponde alle parole, gli spazi e la punteggiatura che costituiscono il testo.
Viene anche detto #PCDATA (Parsed Character DATA) perché i linguaggi di markup definiscono character data (CDATA) il contenuto testuale vero e proprio, e quello degli elementi è soggetto ad azione di parsing (perlopiù per identificare e sostituire le entità).
![Page 23: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/23.jpg)
Regole nella creazione di un file XML
Un documento XML è well formed (ben formato) tutti i tag sono chiusi nell'ordine corretto esiste un solo elemento radice i valori degli attributi sono scritti fra virgolette gli elementi non hanno due attributi con lo
stesso nome i nomi degli elementi e degli attributi non
contengono caratteri speciali (&,<,> ...) i nomi degli elementi non contengono spazi
Un documento XML è valido se è ben formato e rispetta le regole del DTD associato. Cosa e' un DTD? Lo vediamo adesso...
![Page 24: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/24.jpg)
Struttura di un XML
Radice (Documento) Elemento principale
Nodi intermedi (figli): elementi con sottoalberi di elementi, attributi e
valori Nodi foglia: attributi e valori
attributi: coppie (nome, valore) valori: stringhe, numeri, date, ecc.
Albero XML (radice, foglie, ...) ribaltato
![Page 25: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/25.jpg)
Una rubrica in XML<RUBRICA> <PERSONA> <DATI_ANAGRAFICI> <NOME>Giulio</NOME> <COGNOME>Cesare</COGNOME> <INDIRIZZO> <PIAZZA>Bruto</PIAZZA> <N_CIVICO>10</N_CIVICO> <CITTA>Roma</CITTA> <CAP>10100</CAP> </INDIRIZZO> </DATI_ANAGRAFICI> <TELEFONO> <FISSO> <NUMERO prefisso="06">321654</NUMERO> </FISSO> <MOBILE> <NUMERO compagnia="blu">32557684785</NUMERO> </MOBILE> </TELEFONO> </PERSONA> <PERSONA> <DATI_ANAGRAFICI> <NOME>Giovanni</NOME> <COGNOME>Pompeo</COGNOME> <INDIRIZZO> <PIAZZA>Catilina</PIAZZA> <N_CIVICO>12</N_CIVICO> <CITTA>Milano</CITTA> <CAP>12100</CAP> </INDIRIZZO> </DATI_ANAGRAFICI> <TELEFONO> <FISSO> <NUMERO prefisso="02">96877564</NUMERO> </FISSO> <MOBILE> <NUMERO compagnia="tim">3356545342</NUMERO> </MOBILE> </TELEFONO> </PERSONA></RUBRICA>
![Page 26: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/26.jpg)
La rubrica, vista come albero
![Page 27: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/27.jpg)
La struttura ad albero di XML
1. Hanno necessariamente un elemento radice (root) che dev’essere unico
![Page 28: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/28.jpg)
Importanza DTD
Quali tag posso usare? Quante volte? Un tag puo' contenere un altro tag? Quale?
Queste cose si specificano nel DTD (Document Type Definition).
![Page 29: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/29.jpg)
Importanza DTD
La DTD (Document Type Definition) è una procedura che consente di dichiarare in maniera univoca e formale la struttura di markup mediante la definizione dello schema dei tags. Ovvero Quali tag posso usare? Quante volte? Un tag
puo' contenere un altro tag? Quale? Questo tipo di procedura consente una rapida
interpretazione del materiale pubblicato sia dalla macchina che dall’utente umano.
Un file XML e' valido se rispetta la DTD CHI scrive il DTD? Tu! (ovvero chi definisce cosa e'
valido e cosa no per un certo tipo di documento XML!)
![Page 30: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/30.jpg)
L'HTML e' XML?
Dipende, l'xHTML si'.
Chi definisce il DTD per l'xHTML?
![Page 31: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/31.jpg)
Chi definisce il DTD
dell'xHTML? Per il linguaggio HTML, il W3C definisce il DTD,
ad esempio dice che
L'element root e' <html> (in realta' <html> e' il
tag)
Che deve contenere uno e un solo <head>
Che deve contenere uno e un solo <body>
Che dentro a <body> ci possono essere un
numero qualunque di <p> (da 0 a n)
....
![Page 32: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/32.jpg)
La rubrica, vista come albero
![Page 33: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/33.jpg)
La dichiarazione DOCTYPE
La dichiarazione DOCTYPE è obbligatoria (se il documento deve essere validato)
Vari modi, noi useremo il seguente
<!DOCTYPE RootElement [InternalDTDSubset ]>
RootElement (obbligatorio) è il nome dell’elemento radice del documento.
InternalDTDSubset (opzionale) è un DTD specificato inline al documento.
<!DOCTYPE RUBRICA [....qui i vari elementi che possono essere contenuti nel RootElement....]
![Page 34: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/34.jpg)
Esempio di un DTD
<!DOCTYPE RUBRICA [....qui i vari elementi che possono essere contenuti nel RootElement....]>
![Page 35: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/35.jpg)
Esempio di un DTD
<!DOCTYPE RUBRICA [....qui i vari elementi che possono essere contenuti nel RootElement....]>
Come li specifico? Lo vediamo la prossima volta.
![Page 36: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/36.jpg)
Esempio di un DTD per la
rubricaLO VEDIAMO LA PROSSIMA VOLTA
<!DOCTYPE RUBRICA [<!ELEMENT RUBRICA (PERSONA)*><!ELEMENT PERSONA (DATI_ANAGRAFICI, TELEFONO)><!ELEMENT DATI_ANAGRAFICI (NOME*, COGNOME*, INDIRIZZO?)><!ELEMENT TELEFONO (FISSO?, MOBILE?)><!ELEMENT NOME (#PCDATA)><!ELEMENT COGNOME (#PCDATA)><!ELEMENT FISSO (NUMERO+)><!ELEMENT MOBILE (NUMERO+)><!ELEMENT NUMERO (#PCDATA)><!ELEMENT INDIRIZZO ((PIAZZA | VIA)?, N_CIVICO?, CITTA?, CAP?)><!ELEMENT PIAZZA (#PCDATA)><!ELEMENT VIA (#PCDATA)><!ELEMENT N_CIVICO (#PCDATA)><!ELEMENT CITTA (#PCDATA)><!ELEMENT CAP (#PCDATA)><!ATTLIST NUMERO prefisso CDATA #IMPLIED compagnia (wind | omnitel | tim | blu ) #IMPLIED>]>
![Page 37: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/37.jpg)
Validazione di un file XML
Un documento XML è ben formato se rispetta le regole generali di sintassi viste nella parte precedente.
Un documento XML è valido se è ben formato e rispetta le regole sintattiche e semantiche contenute del DTD associato.Un documento senza DTD non è mai valido.
Esistono parser validanti e non validanti. Per validare l'HTML
http://validator.w3.org Per validare l'XML
Lo apriamo col browser che ci dice se e' valido
![Page 38: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/38.jpg)
Ma qualcuno lo usa
questo XML? RSS!
http://www.repubblica.it/servizi/rss/index.html
Repubblica.it offre i suoi contenuti con il sistema
RSS (Really Simple Syndication)
E i blog? Anche.
Ci sono altri usi reali dell'XML? Si', ad esempio
per scambiarsi dati tra applicazioni
![Page 39: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/39.jpg)
Esempio di file XML (completo di DTD)
<?xml version="1.0" standalone=“yes"?><?xml-stylesheet type="text/xsl" href="./rubrica.xsl"?>
<!DOCTYPE RUBRICA [<!ELEMENT RUBRICA (PERSONA)*><!ELEMENT PERSONA (DATI_ANAGRAFICI, TELEFONO)><!ELEMENT DATI_ANAGRAFICI (NOME*, COGNOME*, INDIRIZZO?)><!ELEMENT TELEFONO (FISSO?, MOBILE?)><!ELEMENT NOME (#PCDATA)><!ELEMENT COGNOME (#PCDATA)><!ELEMENT FISSO (NUMERO+)><!ELEMENT MOBILE (NUMERO+)><!ELEMENT NUMERO (#PCDATA)><!ELEMENT INDIRIZZO ((PIAZZA | VIA)?, N_CIVICO?, CITTA?, CAP?)><!ELEMENT PIAZZA (#PCDATA)><!ELEMENT VIA (#PCDATA)><!ELEMENT N_CIVICO (#PCDATA)><!ELEMENT CITTA (#PCDATA)><!ELEMENT CAP (#PCDATA)><!ATTLIST NUMERO prefisso CDATA #IMPLIED compagnia (wind | omnitel | tim | blu ) #IMPLIED>]>
![Page 40: Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)](https://reader033.vdocuments.site/reader033/viewer/2022052504/5542eb5a497959361e8c7167/html5/thumbnails/40.jpg)
Esempio di file XML (completo di DTD)
<RUBRICA> <PERSONA> <DATI_ANAGRAFICI> <NOME>Giulio</NOME> <COGNOME>Cesare</COGNOME> <INDIRIZZO> <PIAZZA>Bruto</PIAZZA> <N_CIVICO>10</N_CIVICO> <CITTA>Roma</CITTA> <CAP>10100</CAP> </INDIRIZZO> </DATI_ANAGRAFICI> <TELEFONO> <FISSO> <NUMERO prefisso="06">321654</NUMERO> </FISSO> <MOBILE> <NUMERO compagnia="blu">32557684785</NUMERO> </MOBILE> </TELEFONO> </PERSONA> <PERSONA> <DATI_ANAGRAFICI> <NOME>Giovanni</NOME> <COGNOME>Pompeo</COGNOME> <INDIRIZZO> <PIAZZA>Catilina</PIAZZA> <N_CIVICO>12</N_CIVICO> <CITTA>Milano</CITTA> <CAP>12100</CAP> </INDIRIZZO> </DATI_ANAGRAFICI> <TELEFONO> <FISSO> <NUMERO prefisso="02">96877564</NUMERO> </FISSO> <MOBILE> <NUMERO compagnia="tim">3356545342</NUMERO> </MOBILE> </TELEFONO> </PERSONA></RUBRICA>