xml e dtd. –il "prolog contiene: dichiarazione della versione di xml; commenti (facoltativi);...
TRANSCRIPT
![Page 1: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/1.jpg)
XML e DTD
![Page 2: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/2.jpg)
– il "PROLOG“ contiene: • dichiarazione della versione di XML; • commenti (facoltativi); • dichiarazione del DOCUMENT TYPE.
– il "DOCUMENT INSTANCE“ contiene i dati veri e propri.
![Page 3: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/3.jpg)
Struttura Logica
![Page 4: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/4.jpg)
Gli elementiSono i "pezzi" che compongono il documento e
possono essere di due tipi:
– ELEMENTI con CONTENUTO, così definiti: start-tag - Contenuto dell'elemento - end-tag ("<" , NAME , ">" ) cont. el. ( "<" , "/" , "NAME" , ">" ) Esempio: <nome> Paolo </nome>
– ELEMENTI VUOTI, così definiti: - start-tag ( "<" , NAME , ">" ) - end-tag ( "<" , "/" , "NAME" , ">" ) Esempio: <VUOTO></VUOTO> (si può abbreviare con <VUOTO/>)
![Page 5: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/5.jpg)
DTD
• In caso di external set il DTD di riferimento viene "chiamato" <!DOCTYPE label SYSTEM "/URL/della/risorsa">.
• <!DOCTYPE nomeradice [DTD]>
![Page 6: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/6.jpg)
Più tipi di content specification
TIPO CONTENUTO PERMESSO
EMPTY (vuoto) 0
ANY (qualunque cosa) any
MIXED Dati o sotto-elementi
ELEMENT SOLO sotto elementi
![Page 7: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/7.jpg)
EsempioTIPO COME SI DICHIARA
EMPTY (vuoto) <!ELEMENT VUOTO1 EMPTY>
ANY (qualunque cosa)
<!ELEMENT QUI-QUO.QUA ANY>
MIXED <!ELEMENT nome (RILIEVO)> <!ELEMENT RILIEVO (#PCDATA)>
MIXED <!ELEMENT nome (#PCDATA|EMPH)>
ELEMENT <!ELEMENT label (nome,via,città,)>
![Page 8: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/8.jpg)
• Elementi alternativi (INDIRIZZO|EMAIL)
• Elementi opzionali (EMAIL?)
• * = l'asterisco indica qualsiasi numero da 0 a n
• + = il simbolo "più" indica qualsiasi numero da 1 a n
Esempio5.xml
![Page 9: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/9.jpg)
Formattazione del testo
• dit.unitn.it/~srossi/info-um.html
• Esempio3
![Page 10: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/10.jpg)
Attributi
• Simili agli attributi HTML• Nomi univoci
• <STUDENTE>• <corso>LT-2000</corso>• <email>[email protected]</email>• <matricola>5555ep</matricola>• <nome>Mario Rossi</nome>• </STUDENTE>
![Page 11: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/11.jpg)
• <STUDENTE corso="LT-2000" email="[email protected]" matricola="5555ep">
• Mario Rossi
• </STUDENTE>
![Page 12: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/12.jpg)
Attributi e DTD
• <!ATTLIST nomeNomeAttributo TYPE ValoreDefault
NomeAttributo TYPE ValoreDefault
NomeAttributo TYPE ValoreDefault >
![Page 13: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/13.jpg)
• <!ELEMENT STUDENTE (#PCDATA)>
• <!ATTLIST STUDENTE corso CDATA #REQUIRED>• <!ATTLIST STUDENTE email CDATA #REQUIRED>• <!ATTLIST STUDENTE matricola CDATA #REQUIRED>
• <!ATTLIST STUDENTE corso CDATA #REQUIRED• email CDATA #REQUIRED• matricola CDATA #REQUIRED>
![Page 14: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/14.jpg)
• "CDATA"" indica che l'attributo avrà la forma di una stringa di caratteri;
• "#REQUIRED" indica che l'attributo è obbligatorio.
![Page 15: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/15.jpg)
Tipi di Attributi
• Attributo CDATA (character data):– Il valore dell'attributo può contenere qualsiasi
carattere.– <STUDENTE email="[email protected]">Mario Rossi
</STUDENTE>• Attributo NMTOKEN:
– Questo attributo può contenere qualsiasi stringa che sia un NAME-TOKEN, cioè contenga caratteri alfanumerici (numeri e lettere) più i seguenti caratteri: "." (punto), "-" (meno), "_" (trattino basso), ":" (due punti).
– <STUDENTE email="mario">Mario Rossi</STUDENTE>
![Page 16: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/16.jpg)
Tipi di Attributi
• Attributo NMTOKENS– Questa dichiarazione è simile a quella precedente,
solo che permette di specificare più di un NMTOKEN separato dagli altri da uno spazio vuoto
– <STUDENTE corso="Linguaggi e Traduttori 2002">Mario Rossi</STUDENTE>
• Attributo ENUMERATED: – E' un tipo di attributo che può assumere un valore
solo tra un insieme predefinito di possibili valori.– <!ATTLIST STUDENTE indirizzo (informatica |
organizzazione) “informatica”>
Esempio6.xml
![Page 17: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/17.jpg)
• REQUIRED: – ogni elemento contenente questo attributo deve specificarne un
valore. Un valore mancante può causare un errore.• IMPLIED:
– indica che questo attributo è opzionale. L'elaboratore può ignorare questo attributo se non viene rilevato alcun valore.
• FIXED: – permette di fissare nel DTD il valore che quell'attributo può
assumere.– <!ATTLIST STUDENTE corso CDATA #FIXED lt-2002>
• DEFAULT: – indica un valore che il sistema usa in caso non sia specificato
niente di differente.– <!ATTLIST STUDENTE corso CDATA NMTOKEN "lt-2002“>
![Page 18: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/18.jpg)
Esercizio
• dit.unitn.it/~srossi/info-um.html
• Esempio8
• Scrivere il DTD
![Page 19: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/19.jpg)
Tipi di Attributi
• Attributi ID, IDREF e IDREFS:– Servono quando vengono fatti dei riferimenti ad altri elementi del
documento.
• ESEMPIO: sto lavoando su un libro.• <DOCTYPE BOOK [....• <!ELEMENT CHAPTER (TITLE,P+)>• <!ATTLIST CHAPTER MY-ID ID #IMPLIED>• <!ELEMENT CROSS-REFERENCE EMPTY>
• <!ATTLIST CROSS-REFERENCE TARGET
IDREF #REQUIRED> ..... • ]>
![Page 20: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/20.jpg)
• <CHAPTER MY-ID="INTRODUZIONE">
• "Come abbiamo visto nel capitolo
<CROSS-REFERENCE TARGET="INTRODUZIONE"/>, l'XML permette di creare riferimenti ad altre parti del testo"
Esempio7.xml
![Page 21: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/21.jpg)
Tipo di attributi: IDREFS
Il tipo IDREFS è simile a IDREF, solo che consente l'utilizzo di più valori separati da spazi.
Lo si usa quando si vuole far riferimento a più identificativi contemporaneamente.
Tornando all'esempio dei capitoli, potrei voler far riferimento a più capitoli in uno stesso punto.
![Page 22: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/22.jpg)
Esempio
Per permettere ciò, la dichiarazione dovrebbe essere fatta come segue:
<!ATTLIST CROSS-REFERENCE TARGET IDREFS #IMPLIED>
Il modo di usare questa dichiarazione sarebbe il seguente:
"Come abbiamo visto nei capitoli <CROSS-REFERENCE TARGET="INTRODUZIONE CAP1 CAP5"/>, l'XML permette di creare riferimenti ad altre parti del testo".
![Page 23: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/23.jpg)
Tipo di attributi: ENTITY e ENTITIES
Il valore dell’attributo deve fare riferimento a un'entità binaria esterna dichiarata nella DTD.
Un' entità è un modo per riferirsi a degli oggetti che non necessariamente devono essere trattati come oggetti di un documento XML.
Faccio riferimento ad una risorsa esterna (in genere) o interna e la includo così nel mio documento.
Sarà il foglio di stile a dire cosa ne voglio fare.
![Page 24: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/24.jpg)
• <!ENTITY EntityName EntityDefinition>
• un documento che parla di DTD e di non voler scrivere per esteso ogni volta "Document Type Definition“
• <!ENTITY dtd "Document Type Definition">• .... introduciamo il concetto di DTD (&dtd;).
![Page 25: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/25.jpg)
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: – & = & – &bt; = < – > = > – ' = ' – " = "
![Page 26: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/26.jpg)
DTD: ENTITYIn XML possono essere classificate in due
categorie:analizzabili e non analizzabili.
• Le entità non analizzabili sono invece dei file esterni ai quali si fa riferimento, quali immagini o altro, che non possono essere interpretati direttamente dall’elaboratore XML.Serve una definizione e una “annotazione” per il loro formato.
![Page 27: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/27.jpg)
Tipo di attributi: ENTITY e ENTITIES
<!ATTLIST BOOK-REF TARGET ENTITY #REQUIRED>
<!ENTITY libro1 SYSTEM "http://www...../libro.html" NDATA HTML>
Attribuisco un nome (libro1) ad un'entità.Quando uso un elemento book-ref voglio fare
riferimento all'entità libro1 che fa riferimento al documento HTML (quindi esterno al documento XML)
![Page 28: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/28.jpg)
<!ENTITY NuovaImmagine SYSTEM “immagine3.gif” NDATA GIF><!NOTATION GIF SYSTEM
“/Utility/Gifview.exe”>
che indica all’elaboratore di XML di utilizzare Gifview.exe per elaborare l’entità di tipo GIF ogni volta che essa viene rilevata
![Page 29: XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE](https://reader038.vdocuments.mx/reader038/viewer/2022110117/5542eb57497959361e8c0d33/html5/thumbnails/29.jpg)
Un altro esempio è se voglio inserire nel mio documento una figura. Sarà il foglio di stile a dire che voglio includerla nel mio documento XML.
<!ATTLIST BOOK-REF TARGET ENTITY #REQUIRED> <!ENTITY figura27 SYSTEM "http://www.unitn.it/unitn.gif" NDATA
GIF> <ARTICOLO>
... <BOOK-REF TARGET="figura27> ...
</ARTICOLO>
Esempio6.xml