XML e DTD
–il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE contiene i dati veri e propri.
Struttura Logica
Gli elementi Sono i "pezzi" che compongono il documento e possono essere di due tipi: –ELEMENTI con CONTENUTO, così definiti: start-tag - Contenuto dell'elemento - end-tag (" " ) cont. el. ( " " ) Esempio: Paolo –ELEMENTI VUOTI, così definiti: - start-tag ( " " ) - end-tag ( " " ) Esempio: (si può abbreviare con )
DTD In caso di external set il DTD di riferimento viene "chiamato".
Più tipi di content specification TIPOCONTENUTO PERMESSO EMPTY (vuoto)0 ANY (qualunque cosa)any MIXEDDati o sotto-elementi ELEMENTSOLO sotto elementi
Esempio TIPOCOME SI DICHIARA EMPTY (vuoto) ANY (qualunque cosa) MIXED MIXED ELEMENT
Elementi alternativi (INDIRIZZO| ) Elementi opzionali ( ?) * = l'asterisco indica qualsiasi numero da 0 a n + = il simbolo "più" indica qualsiasi numero da 1 a n Esempio5.xml
Formattazione del testo dit.unitn.it/~srossi/info-um.html Esempio3
Attributi Simili agli attributi HTML Nomi univoci LT ep Mario Rossi
Mario Rossi
Attributi e DTD <!ATTLIST nome NomeAttributo TYPE ValoreDefault NomeAttributo TYPE ValoreDefault >
<!ATTLIST STUDENTE corso CDATA #REQUIRED CDATA #REQUIRED matricola CDATA #REQUIRED>
"CDATA"" indica che l'attributo avrà la forma di una stringa di caratteri; "#REQUIRED" indica che l'attributo è obbligatorio.
Tipi di Attributi Attributo CDATA (character data): –Il valore dell'attributo può contenere qualsiasi carattere. – Mario Rossi 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). – Mario Rossi
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 – Mario Rossi Attributo ENUMERATED: –E' un tipo di attributo che può assumere un valore solo tra un insieme predefinito di possibili valori. – Esempio6.xml
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. – DEFAULT: –indica un valore che il sistema usa in caso non sia specificato niente di differente. –
Esercizio dit.unitn.it/~srossi/info-um.html Esempio8 Scrivere il DTD
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 [ ]>
"Come abbiamo visto nel capitolo, l'XML permette di creare riferimenti ad altre parti del testo" Esempio7.xml
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.
Esempio Per permettere ciò, la dichiarazione dovrebbe essere fatta come segue: Il modo di usare questa dichiarazione sarebbe il seguente: "Come abbiamo visto nei capitoli, l'XML permette di creare riferimenti ad altre parti del testo".
Tipo di attributi: ENTITY e ENTITIES Il valore dellattributo 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.
un documento che parla di DTD e di non voler scrivere per esteso ogni volta "Document Type Definition.... introduciamo il concetto di DTD (&dtd;).
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; = < –> = > –' = ' –" = "
DTD: ENTITY In 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 dallelaboratore XML. Serve una definizione e una annotazione per il loro formato.
Tipo di attributi: ENTITY e ENTITIES 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)
che indica allelaboratore di XML di utilizzare Gifview.exe per elaborare lentità di tipo GIF ogni volta che essa viene rilevata
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 Esempio6.xml