1 / 29

XML e DTD

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.

Download Presentation

XML e DTD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML e DTD

  2. il "PROLOG“ contiene: • dichiarazione della versione di XML; • commenti (facoltativi); • dichiarazione del DOCUMENT TYPE. • il "DOCUMENT INSTANCE“contiene i dati veri e propri.

  3. Struttura Logica

  4. 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("<" , 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/>)

  5. DTD • In caso di external set il DTD di riferimento viene "chiamato" <!DOCTYPE label SYSTEM "/URL/della/risorsa">. • <!DOCTYPE nomeradice[DTD]>

  6. Più tipi di content specification

  7. Esempio

  8. 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

  9. Formattazione del testo • dit.unitn.it/~srossi/info-um.html • Esempio3

  10. Attributi • Simili agli attributi HTML • Nomi univoci • <STUDENTE> • <corso>LT-2000</corso> • <email>mario@unitn.it</email> • <matricola>5555ep</matricola> • <nome>Mario Rossi</nome> • </STUDENTE>

  11. <STUDENTE corso="LT-2000" email="mario@unitn.it" matricola="5555ep"> • Mario Rossi • </STUDENTE>

  12. Attributi e DTD • <!ATTLIST nome NomeAttributo TYPE ValoreDefault NomeAttributo TYPE ValoreDefault NomeAttributo TYPE ValoreDefault >

  13. <!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>

  14. "CDATA"" indica che l'attributo avrà la forma di una stringa di caratteri; • "#REQUIRED" indica che l'attributo è obbligatorio.

  15. Tipi di Attributi • Attributo CDATA (character data): • Il valore dell'attributo può contenere qualsiasi carattere. • <STUDENTE email="!mario@unitn.it">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>

  16. 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

  17. 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“>

  18. Esercizio • dit.unitn.it/~srossi/info-um.html • Esempio8 • Scrivere il DTD

  19. 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> ..... • ]>

  20. <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

  21. 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.

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

  23. 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.

  24. <!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;).

  25. 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: • &amp; = & • &bt; = < • &gt; = > • &apos; = ' • &quot; = "

  26. 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 dall’elaboratore XML. Serve una definizione e una “annotazione” per il loro formato.

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

  28. <!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

  29. 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

More Related