XML ì
JSON
Argomenti
ì Linguaggi per la definizione e lo scambio di dati
strutturati, semi-strutturati, non strutturati
ì XML Data Model
ì JSON
Giorgio Giacinto 2015
3
ì
XML
Giorgio Giacinto 2015
XML
eXtensible Markup Language
ì Modello di dati XML
Nato dall’esigenza di coniugare
ì i modelli di dati dei database usati come fonte di
dati per le applicazioni web
ì HTML, linguaggio per specificare contenuto e
formattazione delle pagine web
Giorgio Giacinto 2015
5
Dati Strutturati
Dati Semi-Strutturati
ì Dati Strutturati
ì Rappresentati usando un formato con regole ben
definite
ì esempio, il modello relazionale
ì Dati Semi-Strutturati
ì Posseggono parzialmente una struttura
ì Non tutta l’informazione può essere rappresentata
con la medesima struttura
ì Ciascun oggetto potrebbe avere necessità di alcuni
attributi diversi
Giorgio Giacinto 2015
Dati Semi Strutturati
ì Dati auto-descrittivi
ì Informazioni relative allo schema mescolate con le
informazioni relative ai valori
ì Possono essere rappresentati con un grafo orientato
ì Label e tag sul grafo orientato rappresentano
ì Nomi appartenenti allo schema
ì Nomi di attributi
ì Tipi di oggetto o di entità o classi
ì Associazioni
Giorgio Giacinto 2015
7
Rappresentazione di
Dati Semi-Strutturati
Giorgio Giacinto 2015
Dati Non Strutturati
ì I casi in cui i dati sono inseriti in un documento ma
la loro struttura non è specificata
ì Ad esempio in un documento HTML i tag racchiusi
fra
<...> inizio
</...> fine
indicano i criteri di formattazione di una pagina ma
non il significato dei dati presenti nel documento
Giorgio Giacinto 2015
9
Giorgio Giacinto 2015
10
XML Data Model
ì Rappresentazione basata su alberi gerarchici
ì Elementi complessi
ì Costruiti a partire da altri elementi della gerarchia
ì Elementi semplici
ì Contengono valori
ì XML tag
ì Descrivono il significato dei dati nel documento
<...> </...>
Giorgio Giacinto 2015
11
Giorgio Giacinto 2015
12
XML
Modello Gerarchico ad Albero
ì Principali tipologie di documenti XML
ì Documenti XML data-centric
ì relativi a dati strutturati, spesso estratti da database
ì Documenti XML Document-centric
ì prevalentemente costituti da testo
ì Documenti XML ibridi
ì contengono sia dati strutturati, sia dati non strutturati,
sia testo
ì Documenti XML senza schema
ì Non seguono uno schema predefinito
ì relativamente ai nomi degli elementi
ì relativamente alla corrispondente struttura ad albero
Giorgio Giacinto 2015
13
Sintassi XML
ì Un documento XML si dice ben formato se segue le
regole sintattiche
ì Nell’intestazione
ì la versione XML usata
ì altri attributi rilevanti per la comprensione del
documento
ì Tutti gli elementi devono avere una coppia di tag che
indicano l’inizio e la fine dell’elemento
Giorgio Giacinto 2015
14
Interpretazione XML
ì DOM (Document Object Model)
ì Modello che consente di convertire il documento nel
corrispondente albero gerarchico
ì Consente la manipolazione degli elementi attraverso un
insieme di API
ì Il documento deve essere esaminato per intero prima di
effettuare la conversione
ì SAX (Simple API for XML)
ì I documenti XML sono elaborati “al volo”.
Utile nei casi di
ì Documenti di grandi dimensioni
ì streaming
Giorgio Giacinto 2015
15
XML DTD
Document Type Definition
ì Un documento XML è detto valido se segue uno schema
XML definito in un altro XML
ì DTD
ì XML Schema
ì DTD (Document Type Definition)
ì Il DTD segue una sintassi specifica per
ì definizione dei tag
ì definizione proprietà degli elementi relativi a ciascuno
dei tag
ì Intestazione XML conforme a un DTD
<?xml version=“1.0” standalone=“no”?>
<!DOCTYPE Projects SYSTEM “[Link]”>
Giorgio Giacinto 2015
16
Esempi di DTD
Projects
Giorgio Giacinto 2015
17
Esempio DTD
Company
Giorgio Giacinto 2015
18
XML Schema
ì XML schema language
ì Standard per la specifica della struttura di
documenti XML
ì Utilizza la stessa sintassi usata per i documenti XML
ì Modello di dati ad albero
ì Elementi e attributi
ì Utilizza concetti propri del dominio delle basi di dati
ì chiavi
ì riferimenti
ì identificatori
Giorgio Giacinto 2015
19
Figure 13.5 An XML schema file called company
Giorgio Giacinto 2015
20
Figure 13.5 (continued) An XML schema file called company.
Giorgio Giacinto 2015
21
Figure 13.5 (continued) An XML schema file called company.
Giorgio Giacinto 2015
22
Elementi presenti nel XML Schema
ì XML namespace
ì Definisce l’insieme di comandi (nomi) del XML Schema che
possono essere usati
ì Dichiarato attraverso una locazione web
ì Annotazioni, documentazione, linguaggio
ì Elementi e tipi di elementi
ì Elemento di primo livello
ì type, minOccurs, and maxOccurs
ì Chiavi primarie e vincoli di integrità referenziale
ì Struttura di elementi complessi
ì Attributi composti
Giorgio Giacinto 2015
23
Altri linguaggi e protocolli legati a XML
ì Extensible Stylesheet Language (XSL)
ì Definisce il modo in cui una pagina HTML viene
visualizzata da un web browser
ì Extensible Stylesheet Language for Transformations
(XSLT)
ì Trasforma una struttura in un’altra struttura
ì Web Services Description Language (WSDL)
ì Descrizione di Web Services in XML
Giorgio Giacinto 2015
24
Altri linguaggi e protocolli legati a XML
ì Simple Object Access Protocol (SOAP)
ì Protocollo indipendente dalla piattaforma e dal
linguaggio di programmazione per lo scambio di
messaggi e l’esecuzione di remote procedure calls
ì Resource Description Framework (RDF)
ì Linguaggi e strumenti per lo scambio e
l’elaborazione attraverso il Web di descrizioni e di
specifiche di metadati
Giorgio Giacinto 2015
25
ì
JSON
[Link]
Giorgio Giacinto 2015
26
Origine
ì JSON - The JavaScript Object Notation data format
ì JSON è un sottoinsieme del linguaggio JavaScript
ì JSON non è un linguaggio di programmazione ma un
formato per l’interscambio di dati fra browser e
server o fra server e server
ì Successo di JSON legato alla semplicità della sua
grammatica
ì formato idoneo per l’interoperabilità
Giorgio Giacinto 2015
27
Storia
ì La creazione di JSON è attribuita a Douglas Crockford
ì Ha dato il nome
ì Ha formalizzato la grammatica nella RFC 4627 (2006)
ì registered Internet media type application/json
ì file extension .json
ì JSON è stato ufficialmente inserito fra gli standard ECMA
(Dicembre 2009)
ì Esiste un’altra formalizzazione di JSON da parte di IETF
(Internet Engineering Task Force) - RFC 7159
ì I due standard differiscono nel modo con cui un testo
JSON può essere considerato valido.
Giorgio Giacinto 2015
28
Grammatica JSON
ì JSON è una rappresentazione testuale di dati
strutturati
ì Le specifiche JSON prevedono che i dati possono
essere strutturati secondo una delle due seguenti
modalità di composizione
ì Una collezione di coppie nome/valore
ì Una lista ordinata di valori
Giorgio Giacinto 2015
29
Elementi della grammatica JSON
Coppia stringa/valore
Giorgio Giacinto 2015
30
Elementi della grammatica JSON
Lista Ordinata
Giorgio Giacinto 2015
31
Esempio di documento JSON
Giorgio Giacinto 2015
32
Lo stesso documento in XML
Giorgio Giacinto 2015