La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

WWW Esempi di XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo in breve degli esempi delle varie caratteristiche di SGML e XML. u Elementi.

Presentazioni simili


Presentazione sul tema: "WWW Esempi di XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo in breve degli esempi delle varie caratteristiche di SGML e XML. u Elementi."— Transcript della presentazione:

1 WWW Esempi di XML Fabio Vitali

2 WWW Fabio Vitali2 Introduzione Qui esaminiamo in breve degli esempi delle varie caratteristiche di SGML e XML. u Elementi u Attributi u Entità generali u Entità parametriche u Marked sections

3 WWW Fabio Vitali3 Esempi di sviluppo del DTD Ricapitolando, ci sono quattro caratteristiche di SGML che vale la pena considerare a fondo: u Elementi … u Attributi … u Entità: In HTML, si scrive entità u Marked sections

4 WWW Fabio Vitali4 Elementi Il content model di un elemento definisce quali e quanti elementi possono essere contenuti in un elemento. Ci sono cinque famiglie di content model: u Qualunque: un elemento può contenere qualunque elemento definito nel DTD u Vuoto: un elemento non ha contenuto, e spesso ha solo il tag iniziale. u Testo: un elemento può contenere solo testo (#PCDATA) u Strutturato: un elemento può contenere solo altri elementi u Misto: un elemento può contenere sia testo che altri elementi. XML ha solo UNA forma ammessa di content model misto.

5 WWW Fabio Vitali5 Content model qualunque u Lelemento X può contenere qualunque altro elemento specificato nel DTD, o anche testo adj dsb bdvb akbc bdkb X YZ adjbdvbbdkb dsbakbc

6 WWW Fabio Vitali6 Content model vuoto Lelemento X non può contenere niente. E equivalente scrivere il solo tag iniziale, o tag iniziale e finale (per questo se il content model è EMPTY, il secondo tag deve essere segnato come omissibile. N.B. In XML il tag vuoto ha una sintassi diversa: X

7 WWW Fabio Vitali7 Content model testo u Lelemento X può solo contenere testo. E proibito mettere altri elementi al suo interno adjbdkb X

8 WWW Fabio Vitali8 Content model strutturato Lelemento X può contenere solo elementi secondo la specifica data, usando i separatori e gli operatori di ripetizione specificati. dsb bdvb akbc bdkb eyiy X YZ bdkbdsbakbc Z bdvb WK eyiy

9 WWW Fabio Vitali9 Content model misto u Lelemento X può contenere sia testo sia altri elementi in maniera ed ordine specificati. Lunica forma accettabile di content model misto in XML è composta da una ripetizione di elementi alternativi, in cui il primo è #PCDATA. Cioè solo content model della forma qui sopra. adj dsb bdvb akbc bdkb X ZY adjbdvbbdkb dsbakbc

10 WWW Fabio Vitali10 Separatori e ripetizioni I separatori in SGML e XML sono due: u La virgola indica elementi obbligatori e nel loro ordine. u La barra verticale indica elementi alternativi Gli operatori di ripetizione sono quattro u Niente: elemento obbligatorio e non ripetibile u ?: elemento facoltativo e non ripetibile u +: elemento obbligatorio e ripetibile u *: elemento facoltativo e ripetibile

11 WWW Fabio Vitali11 Un esempio semplice Una lettera commerciale è composta da un destinatario, un corpo e dei saluti. Il destinatario è composto di nome e ufficio interno. Il corpo è composto di paragrafi. I saluti sono testo semplice. Mario Rossi Ufficio Acquisti Comprate tutto! Arrivederci

12 WWW Fabio Vitali12 Il DTD relativo

13 WWW Fabio Vitali13 Complichiamo lesempio: alternative Se il destinatario è interno, è composto da nome e ufficio interno. Altrimenti è composto da nome, ditta, indirizzo e città. Mario Rossi ACME, Inc. Via Garibaldi 1 Bologna …

14 WWW Fabio Vitali14 Il DTD relativo a lettera2 N.B.: le parentesi servono per evitare ambiguità. Allo stesso motivo nome, esistente in entrambe le possibilità, è stato estratto per evitare ambiguità di parsing.

15 WWW Fabio Vitali15 Complichiamo lesempio: ripetizioni Lindirizzo è composto da una o più righe. Mario Rossi ACME, Inc. c/o Associated Producers Via Rossi 1 Casteldebole Bologna …

16 WWW Fabio Vitali16 Il DTD relativo a lettera3

17 WWW Fabio Vitali17 Complichiamo lesempio: content model misto I paragrafi possono contenere anche corsivi e grassetti. … Comprate tutto! Arrivederci

18 WWW Fabio Vitali18 Il DTD relativo a lettera4

19 WWW Fabio Vitali19 Attributi Gli attributi sono informazioni aggiuntive poste insieme allelemento. Tecnicamente non fa parte del contenuto del documento, ma descrive e specifica lelemento. Ci sono tre famiglie di attributi importanti: u Qualunque stringa è lecita u E possibile scegliere solo uno dei valori proposti (lista) u Il valore deve essere unico su tutto il documento (ID) u Il valore deve essere uguale a quello di un ID esistente

20 WWW Fabio Vitali20 Attributi stringa u Il tag iniziale di X può contenere un attributo chiamato a. Qualunque stringa è lecita. Se non viene specificata una stringa, il valore definito per default è pippo u adj u bfg

21 WWW Fabio Vitali21 Attributi lista u Il tag iniziale di X può contenere un attributo chiamato a. Sono leciti solo i valori descritti. Se non viene specificata una stringa, il valore definito per default è pippo u adj u bfg u ljdn u kdjbk

22 WWW Fabio Vitali22 Attributi ID u Il tag iniziale di X può contenere un attributo chiamato a. Sono leciti solo valori unici su tutto il documento. Lelemento X assume unidentificabilità assoluta allinterno del documento: è un luogo notevole Poiché il valore deve essere sempre diverso, non è possibile specificare un valore di default. u adj bfg

23 WWW Fabio Vitali23 Attributi IDREF u Il tag iniziale di X può contenere un attributo chiamato a ed uno chiamato b. I valori di a debbono essere unici.I valori di b debbono essere uguali ad un valore di a esistente da qualche parte nel documento. u adj bfg

24 WWW Fabio Vitali24 Valori di default negli attributi I valori di default importanti in SGML e XML sono di quattro tipi: u Valore esplicito: un stringa tra virgolette u Valore necessario: la keyword #REQUIRED. u Valore facoltativo: la keyword #IMPLIED. u Valore esplicito e non modificabile: la keyword #FIXED e una stringa tra virgolette. Usata per scopi particolari. La vedremo per XLink.

25 WWW Fabio Vitali25 Complichiamo lesempio: attributi testo e lista Ogni lettera deve avere una data di creazione e può avere un autore, che non fanno parte del contenuto della lettera. Inoltre è necessario specificare se il destinatario è interno o esterno. … … …

26 WWW Fabio Vitali26 Il DTD relativo a lettera5

27 WWW Fabio Vitali27 Complichiamo lesempio: attributi ID e IDREF Ogni paragrafo deve avere un identificativo univoco. Lelemento link, che può essere contenuto nei paragrafi, può creare un link ad un paragrafo precedente. … Comprate tutto! Imparate il paragrafo precedente …

28 WWW Fabio Vitali28 Il DTD relativo a lettera6

29 WWW Fabio Vitali29 Entità Le entità sono macro testuali a sostituire dei riferimenti brevi, univocamente associati al loro significato esteso. Ci sono due tipi di entità: u Generali: definite in un DTD, possono essere usate nellistanza di documento. u Parametriche: definite in un DTD, possono essere usate nello stesso DTD, subito dopo.

30 WWW Fabio Vitali30 Entità generali u Ogni volta che scrivo il nome dellentità, &Z; il processore sostituisce la stringa corrispondente, pippo. u Unentità della forma &#NNN;, dove NNN sono cifre decimali, viene sostituita con il carattere corrispondente nella tabella caratteri di default. Oggi ho visto &Z; Che bella entità

31 WWW Fabio Vitali31 Entità parametriche u Ogni volta che scrivo il nome dellentità, %Z; il processore sostituisce la stringa corrispondente, #CDATA | Y. u Posso usare questa notazione solo allinterno di un DTD

32 WWW Fabio Vitali32 Complichiamo lesempio: entità generali Forniamo supporto per le lettere accentate e forniamo due o tre forme standard di saluto … Olà! Comprate tutto! … &CS; In fase di elaborazione, agrave diventerà à e CS diventerà Cordiali saluti.

33 WWW Fabio Vitali33 Il DTD relativo a lettera7 … …

34 WWW Fabio Vitali34 Complichiamo lesempio: entità parametriche (I) Centralizziamo il content model misto, in modo da poterlo cambiare in un colpo solo. Perdiamo qualcosa, però. … Olà! Comprate tutto! … &CS; (il documento è identico!!!)

35 WWW Fabio Vitali35 Il DTD relativo a lettera8 … … n Cosa abbiamo perso?

36 WWW Fabio Vitali36 Complichiamo lesempio: entità parametriche (II) n Raccogliamo e separiamo tutte le entità per le lettere strane, perché sono troppe e confondono le idee. n Inoltre rendiamo il frammento di DTD compatibile sia con SGML che con XML (XML non ha le specifiche di minimizzazione!!!) … Olà! Comprate tutto! … &CS;

37 WWW Fabio Vitali37 Il DTD relativo a lettera9 File entities.dtd: n File lettera9.dtd: %entities; File lettera9xml.dtd %lettera9.dtd File lettera9sgml.dtd %lettera9.dtd

38 WWW Fabio Vitali38 Marked sections u Permette di specificare parti del DTD che vengono considerate ed escluse in alternativa. u Per esempio permettono di specificare due content model per lo stesso elemento, da attivare in alternativa.

39 WWW Fabio Vitali39 Complichiamo lesempio: Marked Section Creiamo due DTD, uno in cui certi elementi sono leciti, e laltro in cui non lo sono. Questo deve essere fatto con un unico file, per gestire insieme tutte le evoluzioni successive. … Comprate tutto! Imparate il paragrafo precedente &CS;

40 WWW Fabio Vitali40 Il DTD relativo a lettera10 File lettera10.dtd: File lettera10+bum.dtd %lettera10.dtd File lettera10-bum.dtd %lettera10.dtd

41 WWW Fabio Vitali41 Conclusioni Qui abbiamo fatto degli esempi di DTD XML e SGML. u Elementi … u Attributi … u Entità: In HTML, si scrive entità u Marked sections

42 WWW Fabio Vitali42 Riferimenti Wildes WWW, capitolo 4 Altri testi: n E. Maler, J. Al Andaloussi, Developing SGML DTDs, from text to model to markup, Prentice Hall, 1997


Scaricare ppt "WWW Esempi di XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo in breve degli esempi delle varie caratteristiche di SGML e XML. u Elementi."

Presentazioni simili


Annunci Google