Che materia stai cercando?

Appunti XML - Damiano Appunti scolastici Premium

Appunti di fondamenti di informatica basati su appunti personali del publisher presi alle lezioni della prof.ssa Damiano dell’università degli Studi di Torino - Unito, Facoltà di Lettere e filosofia, Corso di laurea in Discipline delle arti, della musica e dello spettacolo (DAMS). Scarica il file in formato PDF!

Esame di Fondamenti di informatica e programmazione docente Prof. R. Damiano

Anteprima

ESTRATTO DOCUMENTO

tutti i valori sono tra virgolette

• non ci sono attributi con uno stesso nome per stesso elemento

• non ci sono commenti nei tag

• non ci sono <, &, e altri determinati simboli nei dati o nei valori.

Tipi di errori sono sintattici (tag non chiusi, incrociati, doppie virgolette) o logici (manca un

elemento o attributo obbligatorio, l’ordine in cui sono annidati gli elementi non è corretto.

Differenza documento ben formato (rispetta regole XML/sintattico) e valido (rispetto ad un

linguaggio di riferimento/logico).

La DTD (Document Type Definition) contiene la grammatica di un linguaggio basato su XML.

Conformità di un documento a una DTD: può essere contenuta in un file esterno ** o definita nel

documento stesso. [esempio DTD] Nella DTD si definisce la struttura logica e non fisica del

documento (quindi non si parla di tag). Non è importante l’ordine in cui si mettono gli elementi.

<!ELEMENT ricetta (ingrediente+,esecuzione)>

Nella parentesi c’è il content model. #PCDATA = testo. += più elementi.

**<!DOCTYPE ricetta SYSTEM “ricetta_semplice.dtd”> 9 Dicembre 2015

Lezione 1:

L’elemento fase può contenere un testo, un commento o una nota. L’elemento ricetta può

contenere una o più elementi (uno o più tag) e seguito da un elemento di tipo esecuzione (che

contiene all’interno una o più fasi).

La DTD è un linguaggio vecchio e due suoi limiti sono il fatto che non si possa scrivere in XML e

che è sia poco espressivo. “Schema XML” è il linguaggio che scrive la DTD in XML. La DTD

normalmente sta in un documento esterno (in questo modo posso cambiarla una volta sola per

tutti i file che ho creato), oppure si può mettere direttamente in un XML. In quest’ultimo caso il

documento XML è autocontenuto, oppure stiamo facendo una convalida online (dove non

possiamo caricare più file contemporaneamente).

Gli editor XML possono agganciare per noi il documento DTD con l’XML e possono convalidare.

Un documento XML che segue le regole è ben formato. Se è conforme anche alla DTD o a uno

schema si dice che è valido.

Dichiarare un elemento:

<!ELEMENT nome_elemento (modello del contenuto)>

I tag li scrivo in ordine, come delle foglie. All’interno del modello del contenuto posso scrivere

una serie di cose: se quell’elemento contiene del testo scriverò PCDATA (caratteri che vengono

letti durante l’analisi del contenuto) oppure posso mettere che questo elemento contiene altri

elementi. In questo caso ci sono degli operatori che mi permettono di dire quanti sono questi

↳ ↳

elementi: ‘?’ ‘=’ ‘1’ o nessuno. ‘*’= molti ‘+’ = 1 o più

La sequenza viene dichiarata con la virgola. La stanghetta verticale ‘|’ indica “o - o” (alternative)

mentre EMPTY indica che non c’è nessun elemento.

In generale quando si crea un linguaggio XML si mette dentro il tag il contenuto vero e proprio.

Dentro gli attributi si possono mettere informazioni “di controllo”, dati in più (facoltativo).

Sequenza: <!ELEMENT capitolo (titolo, testo_capitolo)>

3

L’elemento capitolo contiene al suo interno un solo elemento titolo seguito dall’elemento testo

capitolo.

Valido: <capitolo><titolo>Capitolo 1</titolo><testo_capitolo>

se c’è solo titolo o solo testo capitolo non è valido.

Numero di elementi: <!ELEMENT biblioteca (libro+)>

Il tag biblioteca contiene un o più elementi libro. Valido:

<biblioteca> <libro>..</libro>

<libro>...</libro> </biblioteca>

ALTERNATIVE <!ELEMENT titolo_capitolo (numero | titolo)>

Non è valido se inserisco tutti e due insieme, perchè o c’è il numero o c’è il titolo.

Blocchi: Posso usare le parentesi tonde per raggruppare un certo blocco e per esempio

metterlo in alternativa con una altro.

<!ELEMENT e1 (e2 | (e2, e3)) >

<!ELEMENT capitolo ((titolo | numero), corpo)>

Creano con lo stesso linguaggio documenti molto diversi tra loro. È valido (perchè ho scelto

corpo e titolo): <capitolo><corpo>... </corpo> <titolo>...</titolo> </capitolo>

Posso avere anche strutture complesse, per esempio un documento che ha un elemento

biblioteca che contiene più libri, ogni libro contiene copertina, testo e capitolo, il capitolo contiene

numero, corpo e titolo. Ogni nodo ha un percorso univoco che lo porta dalla sua posizione a un

nodo o alla fine del percorso. Attributi:

<!ATTLIST nome_elemento >

Posso specificare un attributo alla volta ma normalmente si usa la parola chiave ATTLIST che

permette di definire e specificare una serie di attributi che si riferiscono a un certo elemento.

Dopo ATTLIST scrivo il nome dell’elemento a cui si riferiscono gli attributi, poi scrivo il tipo di

dato e poi posso specificare il fatto che l’attributo sia opzionale, obbligatorio o che abbia un

valore già definito. Posso creare attributi con il nome che voglio e posso specificare che

l’attributo abbia un valore predefinito inventato da me.

Esempio: <!ATTLIST libro id CDATA #REQUIRED titolo CDATA #IMPLIED >

CDATA è un modo per indicare i caratteri. Il titolo è facoltativo mentre id è obbligatorio. Non è

rilevante l’ordine in cui si dispongono gli attributi. Il markup non sarà valido se manca un attributo

dichiarato obbligatorio.

4

Tipi di valore:

Altri tipi di dati oltre a CDATA ci sono dei numeri (NMTOKEN), un identificativo (ID), dei valori

(l’elemento può assumere uno dei valori che specifichiamo così [v1 | v2 | v3]).

Esempio:

<!ATTLIST prefazione valutazione (pessimo | sufficiente | buono | ottimo) #REQUIRED>

Se scrivo: <prefazione valutazione=“ottimo”>

il documento sarà valido. Se invece di ottimo scriverò “mediocre” il documento non sarà più

valido.

ESERCIZIO OPERA D’ARTE:

L’elemento radice del documento è Pinacoteca, che contiene almeno un quadro (in realtà

potrebbe essere anche vuoto). Il quadro ha un titolo, 0 o più autori, caratteristiche e luogo.

L’autore è fatto da testo. Caratteristiche è un elemento complesso che contiene al suo interno

soggetto e dimensioni. Il soggetto è costituito da testo. Le dimensioni anche loro da testo.

Il quarto elemento della sequenza è il luogo, che comprende sede e ente. Sono entrambi

elementi testuali.

Poi ci sono degli attributi: soggetto (con l’attributo iconclass che è costituito da testo ed è

obbligatorio) mentre le dimensioni con l’attributo unità di misura che possono essere cm inch

o mm e che è obbligatorio. Spesso si utilizzano degli standard, per esempio quello di avere un

insieme di valori possibili per esprimere un certo concetto. Qui chiede di creare un documento

XML (almeno uno) usando due vocabolari per descrivere il soggetto e il nome dell’autore. Per il

soggetto usiamo iconclass, una risorsa che contiene un elenco strutturato di etichette per

descrivere il soggetto iconografico di un’opera. E’ un documento di testo o database, oppure può

essere consultato online e si possono cercare dei soggetti e trovare tanti tipi di quel soggetto

(es. nativity) oppure posso navigare nel sistema secondo la modalità dal generale allo specifico.

Come soggetto scriveremo la stringa che si trova dentro iconclass che descrive il soggetto del

quadro da noi scelto e poi il codice che troviamo lo mettiamo come valore dell’attributo

iconclass del tag soggetto. Il sito di iconclass non è un albero perché lo stesso elemento

compare in più punti. Dobbiamo anche usare la risorsa che serve per esprimere il nome

dell’autore, nel sito della fondazione Getty (Getty Vocabularies - ULAN).

<?xml version="1.1" encoding ="UTF-8"?>

<pinacoteca> <quadro>

<titolo> Paesaggio Invernale </titolo> <autore> Caspar David Friedrich </autore> <caratteristiche>

<soggetto iconclass="23F41(+4)"> Winter landscape </soggetto> <dimensioni unit_misura="cm"> 80 x 60 </dimensioni>

</caratteristiche>

<luogo>

<sede> Londra </sede>

<ente> National Gallery </ente>

</luogo>

</quadro> </pinacoteca> 15 Dicembre 2015

Lezione 3:

XML riconosce 5 entità predefinite (character entities). Vengono utilizzate per inserire nei

documenti alcuni caratteri che non potrebbero essere inseriti direttamente. Per definire un’entità:

<!ENTITY name “entity_value”>

<!ENTITY discl “il contenuto di questo documento … ecc”>

Ogni volta che si scriverà &discl; apparirà la scritta contenuta nella virgolette. Nella DTD:

5 <!ENTITY disclaimer “quest’opera è protetta da copyright”>

nel documento XML: <titolo>La ronda di Notte (&disclaimer)</titolo>

nel browser: La ronda di Notte (quest’opera è protetta da copyright)

Problema: definizioni differenti dello stesso tag. Il namespace è un sistema di prefissi per

identificare definizione di un tag (nomi che appartengono ad un certo linguaggio basato su XML).

I prefissi appaiono sia nell’apertura del tag che nella chiusura.

Prefisso = URI della definizione (prefisso apposto al tag dove compare):

<esempio xmlns:prova = “http://www.w3…”>

<prova:esempio> …

Il parser, ovvero un interprete sintattico che analizza la struttura dei documenti XML

permettendo di produrre la visualizzazione detta, cerca la definizione di esempio nella DTD che

si trova all’URI “http://www.w3…”. All’inizio del foglio di stile:

<xsl:stylesheet

xmlns;xsl=“link”=“1.0”>

Specificare namespace dentro ai template. Linguaggio Formatting Objects (fo:block font-

size=“12pt”) permette di creare automaticamente un file PDF dall’HTML.

Il formato Dublin Core contiene riferimenti a due linguaggi diversi (RDF e DC). È uno schema di

metadati (ex: indirizzo, data, autore, etc, di una pagina web) per annotare risorse testuali e

multimediali. Nasce esclusivamente per il Web, è lo schema di metadati più semplice (standard

ISO 15836). Ha lo scopo esplicito di permettere il reperimento di risorse del web. “Organisations,

even small, possess information worth millions, but cannot get it to the right people”.

[europeana.eu]: metaportale in cui è possibile fare ricerche tematiche all’interno di un insieme

molto ampio di portali online per i beni culturali che appartengono ai diversi paesi europei.

DC descrive risorse, anything that has identity (RFC2396). “A resource will typically be an

information or service resource, but may be applied more broadly”. DCMI Typelist: …?

Element Dublin Core (DC-MES): Title, Creatore, Subject, Description, Publisher, Contributor,

Date, Type, Format, Identifier, Source, Language, Relation, Coverage, Rights.

Regole di utilizzo: ordine irrilevante, gli elementi possono essere ripetuti ed essere opzionali.

Termini = elementi + attributi (10) 16 Dicembre 2015

Lezione 4:

Risorse: qualsiasi cosa che può essere pubblicata sul web e identificata da un indirizzo web

(URL, URI, IRI).

http://www.imdb.com/xml/find?xml=1&nr=1&tt=on&q=gentlemen+prefer+blondes

https://developers.google.com/maps/documentation/geocoding/intro

Text Encoding Initiative è un linguaggio markup basato su XML che permette di codificare la

struttura di un testo. Il testo viene etichettato inserendo dei tag che ne identificano le parti:

6


PAGINE

11

PESO

166.97 KB

AUTORE

Rig_Ce

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in Discipline delle arti, della musica e dello spettacolo (DAMS)
SSD:
Università: Torino - Unito
A.A.: 2017-2018

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Rig_Ce di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Torino - Unito o del prof Damiano Rossana.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Fondamenti di informatica e programmazione

Fondamenti di informatica e programmazione I - Appunti prima parte
Appunto
Appunti su Javascript. Guida completa per lo sviluppatore
Appunto
Appunti Informatica e programmazione
Appunto
Appunti HTML/CSS base - Gena
Appunto