Esercizi su XML e DTD

Documenti analoghi
Esercizi su XML, DTD e DOM

Sintassi dei DTD. <!DOCTYPE > <!ELEMENT > <!ATTLIST > <!ENTITY >: Entità generali <!ENTITY % >: Entità parametriche

Document Type Definitions (DTD)

Tecnologie Web T DTD Document Type Definition

Esercitazione XML. Tecniche di Programmazione avanzata Corso di Laurea Specialistica in Ingegneria Telematica Università Kore Enna A.A.

La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it

Esercizi su JavaScript, DOM e Web Storage

Esercitazione di riepilogo

extensible Markup Language

AJAX. Riccardo Rosati

Basi di Dati. Prova Scritta - 11 giugno Tempo a disposizione: 90 minuti. Nome e Cognome:... Matricola:...

Document Type Definition (DTD)

La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:

Linguaggi per il web oltre HTML: XML

Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica (DM 270) Esame di Basi di Dati 10 marzo 2011

ROOT ELEMENT. Segnatura

Modellazione e Gestione di Informazioni non Strutturate

Esercizi su HTML5 e form

Dispense XML. Indice

TRASMISSIONI TELEMATICHE DICHIARAZIONI ISEEU

Esercitazione di riepilogo

Laboratorio di Basi di Dati e Multimedia

XPATH e XQUERY. Linguaggi di query XML. Esempio di DTD. Esempio di documento. XPATH e un linguaggio per descrivere percorsi (path) in documenti XML.

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali

Esercitazione su AJAX

LISTA TITOLI ACCESSI

Inquadramento XML. Il problema dell Information- Integration. Esempio

IL MODELLO ENTITY RELATIONSHIP. il modello ER 1

Transcript:

Linguaggi e tecnologie per il Web prof. Riccardo Rosati corso di laurea in Ingegneria informatica e automatica Sapienza Università di Roma, a.a. 2016/2017 Esercizi su XML e DTD Esercizio 1 Scrivere una DTD che formalizzi le seguenti regole: 1. sono ammessi solo gli elementi <a>, <b>, <c>, <d>, <e>; 2. <a> è l elemento radice; 3. <a> può contenere solo elementi di tipo <b> o di tipo <c>, e deve contenere almeno un elemento di tipo <b>; 4. <b> può contenere solo elementi di tipo <d> o di tipo <e>, deve contenere almeno un elemento <e>, e tutti gli elementi <d> devono precedere gli elementi <e>; 5. <c> può contenere solo elementi di tipo <d> o di tipo <e>, deve contenere almeno due elementi <d>, e tutti gli elementi <d> devono precedere gli elementi <e>; 6. gli elementi <d> possono contenere ogni tipo di elemento (compreso #PCDATA); 7. <e> è un elemento vuoto; 8. <a> ha un attributo x obbligatorio di tipo CDATA e un attributo y che può assumere solo i valori 0, 1, o 2, e 0 è il valore di default; 9. <e> ha un attributo z obbligatorio di tipo CDATA e un attributo w obbligatorio di tipo NMTOKEN. <!ELEMENT a ((b c)*,b,(b c)*)> <!ELEMENT b (d*,e+)> <!ELEMENT c (d,d+,e*)> <!ELEMENT d ANY> <!ELEMENT e EMPTY> <!ATTLIST a x CDATA #REQUIRED y (0 1 2) "0"> <!ATTLIST e z CDATA #REQUIRED w NMTOKEN #REQUIRED> 1

Esercizio 2 Data la seguente DTD: <!DOCTYPE CorsoDiLaurea [ <!ELEMENT CorsoDiLaurea (Corso+)> <!ELEMENT Corso (NomeCorso, DescrizioneCorso?, Docente+, Studente*)> <!ELEMENT Docente (Cognome, Nome, Dipartimento, (Foto Commento)*)> <!ELEMENT Studente (Cognome, Nome, (Foto Commento)*)> <!ELEMENT NomeCorso (#PCDATA)> <!ELEMENT DescrizioneCorso (#PCDATA)> <!ELEMENT Cognome (#PCDATA)> <!ELEMENT Nome (#PCDATA)> <!ELEMENT Dipartimento (#PCDATA)> <!ELEMENT Foto EMPTY> <!ELEMENT Commento (#PCDATA)> <!ATTLIST CorsoDiLaurea facolta CDATA #REQUIRED> <!ATTLIST Corso numerocrediti CDATA #REQUIRED semestre (primo secondo annuale) #REQUIRED > sede CDATA #IMPLIED tipo (obbligatorio opzionale) #IMPLIED > <!ATTLIST Studente matricola CDATA #REQUIRED> <!ATTLIST Foto url CDATA #REQUIRED> <!ENTITY UNIROMA "Sapienza Università di Roma"> (a) scrivere un documento XML valido per tale DTD; (b) scrivere un documento XML, valido per tale DTD, che contenga almeno una occorrenza di ogni elemento dichiarato nella DTD e tale che ogni attributo dichiarato sia esplicitamente assegnato. (a) Un documento XML valido per la precedente DTD è, ad esempio, il seguente: <CorsoDiLaurea facolta="ingegneria dell Informazione"> <Corso semestre="primo" numerocrediti="6"> <NomeCorso> Linguaggi per il Web </NomeCorso> <Docente> <Cognome>Rosati</Cognome> <Nome>Riccardo</Nome> <Dipartimento>DIS</Dipartimento> 2

</Docente> <Studente matricola="9999"> <Cognome>Rossi</Cognome> <Nome>Mario</Nome> <Studente matricola="8888"> <Cognome>Bianchi</Cognome> <Nome>Paola</Nome> <Foto url="bianchipaola.jpg"> </Corso> </CorsoDiLaurea> (b) Un documento XML, valido per la precedente DTD, che contiene almeno una occorrenza di ogni elemento dichiarato nella DTD e e tale che ogni attributo dichiarato sia esplicitamente assegnato è, ad esempio, il seguente: <CorsoDiLaurea facolta="ingegneria dell Informazione"> <Corso semestre="primo" numerocrediti="6" sede="roma" tipo="opzionale"> <NomeCorso> Linguaggi per il Web </NomeCorso> <DescrizioneCorso> Corso su analisi sintattica e traduzione guidata dalla sintassi, HTML, XML, RDF. </DescrizioneCorso> <Docente> <Cognome>Rosati</Cognome> <Nome>Riccardo</Nome> <Dipartimento>DIS</Dipartimento> </Docente> <Studente matricola="9999"> <Cognome>Rossi</Cognome> <Nome>Mario</Nome> <Commento> Proveniente dal Corso di Laurea in Ingegneria Meccanica </Commento> <Studente matricola="8888"> <Cognome>Bianchi</Cognome> <Nome>Paola</Nome> <Foto url="bianchipaola.jpg"> </Corso> </CorsoDiLaurea> Esercizio 3 Dato il seguente documento XML: 3

<?xml version="1.0" encoding="utf-8"?> <!ELEMENT a (b c d)*> <!ELEMENT b (#PCDATA)> <!ELEMENT c EMPTY> <!ATTLIST b val CDATA #IMPLIED> <a val="v1"> <b val="1">riga 1</b> <b val="pippo">riga 2</b> <c/> <b x="3">riga 3</b> <d>riga 4 <a val="v2"> <c val="xyz"/> </d> dire se il documento è valido. In caso contrario, evidenziare le violazioni della DTD da parte del documento. Esercizio 4 Dato il seguente documento XML: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT a (b c d)*> <!ELEMENT b (#PCDATA)> <!ELEMENT c EMPTY> <!ATTLIST b id ID #IMPLIED> <!ATTLIST c link IDREF #REQUIRED> <a val="text"> <b id="id01">text</b> <b id="id02">text</b> <c link="id03"/> <b id="id03">text</b> <d>text <a val="text"> <c link="id01"/> </d> 4

dire se il documento è valido. In caso contrario, evidenziare le violazioni della DTD da parte del documento. Esercizio 5 Data la seguente DTD: <!ELEMENT a (b, c, (d a))*> <!ELEMENT b (#PCDATA b)> <!ELEMENT c (a b*)> <!ATTLIST b id ID #IMPLIED> <!ATTLIST c link CDATA #REQUIRED> 1. dire se la DTD è corretta. In caso contrario, evidenziare gli errori e correggerli; 2. scrivere un documento XML valido rispetto a tale DTD (eventualmente corretta al punto precedente) e contenente almeno una istanza di elemento per tutti gli elementi dichiarati. 1) La DTD non è corretta: il content model dell elemento b è errato, va corretto nel seguente modo: <!ELEMENT b (#PCDATA b)*> 2) Un documento XML valido rispetto alla DTD e contenente almeno una istanza di elemento per tutti gli elementi dichiarati è il seguente: <?xml version="1.0"?> <a val="abc"> <b>ciao</b> <c link="xyz"> <a val="123"/> </c> <d>ciao ciao</d> 5