• Non ci sono risultati.

XML Information Set

N/A
N/A
Protected

Academic year: 2021

Condividi "XML Information Set"

Copied!
4
0
0

Testo completo

(1)

Azzolini Riccardo 2020-03-31

XML Information Set

1 XML Information Set

XML Information Set (abbreviato XML Infoset) è, per il W3C, il modello di riferimento per i dati semi-strutturati serializzati in XML.

Ogni documento XML ben formato (dal punto di vista della serializzazione) può essere rappresentato da un infoset, che è un insieme di information item (ciascuno dei quali corrisponde, approssimativamente, a un nodo dell’albero). XML Infoset definisce ben 11 diversi tipi di information item, e a ciascuno di essi sono associate diverse proprietà; i principali sono:

Document Information Item: costituisce la radice dell’albero. Esso non è un ele- mento del documento: è il padre dell’elemento radice, ed è presente nel modello dei dati, ma non nella serializzazione. Alcune delle sue proprietà sono:

• la versione di XML usata per la serializzazione;

• la codifica dei caratteri;

• il nodo figlio (che è l’elemento radice).

Element Information Item: corrisponde a un elemento (cioè, nella serializzazio- ne, a una coppia di tag – uno di apertura e uno di chiusura). Le sue principali proprietà sono:

• il nome dell’elemento;

• il namespace di appartenenza;

• gli attributi;

• la lista degli information item figli;

• l’information item padre.

Attribute Information Item: corrisponde a un attributo di un elemento. Le sue proprietà più importanti sono il nome, il valore e l’elemento possessore di tale attributo. Tecnicamente, la relazione tra un elemento e un suo attributo non viene considerata una relazione padre-figlio. Infatti, i figli di un elemento sono ordinati, mentre gli attributi non si inseriscono in tale ordine (e, in generale, l’ordine degli attributi non è proprio considerato). In pratica, essi sono trattati come “entità a parte”.

1

(2)

Character Information Item: corrisponde a un singolo carattere di una stringha di dati (mentre, in XPath Data Model, l’intera stringa verrebbe rappresentata da un singolo nodo di tipo text).

Processing Information Item: analogo a un nodo di tipo processing di XPath Data Model.

Come per XPath Data Model, un’istanza di XML Infoset comprende sia informazio- ni relative alla struttura (ad albero) di un documento XML (cioè allo “schema” del documento) che informazioni relative ai dati contenuti (cioè l’“istanza” dello schema):

• la struttura è specificata dai nomi degli Element Information Item e dalle loro relazioni di padre/figlio (rappresentate tramite le proprietà di tali item);

• i dati sono i valori presenti nelle proprietà dei Character Information Item.

2 Esempio

Dato il seguente documento XML,

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

<movie id="031">

<title>Star Wars</title>

<year>1977</year>

<director>

<surname>Lucas</surname>

<name>George</name>

</director>

</movie>

l’infoset corrispondente è:

2

(3)

Document

document element: movie element children: movie element

version: 1.0 encoding: UTF-8

Element name: movie parent: Document attributes: id

children: title element, year element, director element

Attribute name: id

owner element: movie element value: “031”

Element name: title

parent: movie element children: “S”, “t”, “a”,

“r”, “ ”, …

Element name: year

parent: movie element children: “1”, “9”, “7”, “7”

Element name: director parent: movie element children: surname element,

name element

Element name: surname

parent: director element children: “L”, “u”, …

Element name: name

parent: director element children: “G”, “e”, … Character

parent: title element character code: #x53

Character parent: title element character code: #x74

Character parent: title element character code: #x61

3 Distinzione tra documento e istanza di un modello

L’infoset (o l’istanza di XPath Data Model) non è il documento XML. Infatti, l’informa- zione contenuta nell’infoset può essere materializzata come serializzazione (documento) XML, ma anche in forma tabellare, o in altre forme ancora.

4 Differenze tra XPath Data Model e XML Infoset

• XPath Data Model è più semplice rispetto a XML Infoset (ad esempio, il primo definisce 7 tipi di nodi, mentre il secondo prevede 11 tipi di information item).

3

(4)

• La struttura ad albero è più esplicita in XPath Data Model, mentre XML Infoset la rappresenta mediante le proprietà padre/figli degli information item.

• La rappresentazione dei dati “veri e propri” (le foglie dell’albero) è più semplice in XPath Data Model, che prevede un singolo text node per ogni stringa: in XML Infoset, una stringa diventa invece una sequenza di Character Information Item consecutivi.

4

Riferimenti

Documenti correlati

XML (eXtensible Markup Language) può essere visto come un linguaggio per defini- re linguaggi di markup: le annotazioni, chiamate tag, non sono predefinite, bensì definite

1 Per la precisione, XPath Data Model non include gli attributi nell’elenco dei figli di un elemento, e non ne considera l’ordine, perciò essi non sono direttamente

XML Schema prevede dei tipi semplici primitivi, che sono predefiniti, mentre negli schemi si possono creare tipi semplici derivati (re- strizioni sui valori dei tipi primitivi:

- #FIXED VALUE indica che l'attributo può non avere valore ma, se lo ha, deve necessariamente essere quello di default. Tale valore viene espresso indicando direttamente il valore

Tree Edit Distance: ottima metrica per esprimere la distanza tra alberi ma non adatta alla risoluzione di query. Occorre adattare la metrica al contesto

Esercizio: creare il file rubrica1.xml relativo al seguente albero inserendo dei dati fittizi..

Ontologia è un termine carico di valenze teoretiche nella tradizione del pensiero occidentale e, per ave- re un punto di riferimento sintetico ma attendibile, è preferibile sfogliare

Naturalmente XML può essere usato anche per lo scambio di dati tra componenti di una stessa applicazione: programmatori diversi possono lavorare in modo indipendente, a patto