• Non ci sono risultati.

XML Schema

N/A
N/A
Protected

Academic year: 2021

Condividi "XML Schema"

Copied!
3
0
0

Testo completo

(1)

Azzolini Riccardo 2020-04-07

XML Schema

1 XML Schema

Il linguaggio XML Schema (chiamato anche XSchema) è più espressivo rispetto a DTD:

• utilizza i namespace;

• ha un grande potere espressivo riguardo ai tipi di dati;

• comprende dei concetti object-oriented (ad esempio l’ereditarietà).

Inoltre, a differenza di DTD, uno schema definito con XML Schema è serializzato (scritto) in XML.

Tuttavia, questo linguaggio è molto complesso. Perciò, in pratica, esso viene solitamente utilizzato per circa il 20 % delle sue possibilità.

2 Componenti principali di uno schema

I principali tipi di componenti usati per definire gli schemi con XML Schema sono:

Definizione di tipo semplice: un tipo semplice definisce un insieme di valori (che sono stringhe di caratteri). 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: ad esempio, i numeri interi compresi in un determinato intervallo).

Definizione di tipo complesso: un tipo complesso definisce la struttura degli ele- menti di tale tipo, mediante la specifica di una collezione di requisiti su attributi, sotto-elementi e dati carattere.

Dichiarazione di elemento: associa il nome di un elemento a un tipo semplice o complesso. Affinché siano valide, le istanze di questo elemento nel documento dovranno soddisfare tutti i requisiti definiti dal tipo dell’elemento; se tutti gli elementi nel documento sono validi allora lo è l’intero documento.

Dichiarazione di attributo: associa un nome di attributo a un tipo semplice (sic- come i valori degli attributi contengono solo testo, non è possibile usare tipi complessi).

1

(2)

3 Esempio

Il seguente schema (che sarà contenuto in un file con estensione .xsd) descrive un elemento di tipo complesso:

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

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:s="[URI del namespace]"

targetNamespace="[URI del namespace]">

<xsd:simpleType name="Voto">

<xsd:restriction base="xsd:integer">

<xsd:minInclusive value="0"/>

<xsd:maxInclusive value="100"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="Studente">

<xsd:attribute ref="s:id" use="required"/>

<xsd:attribute ref="s:voto" use="required"/>

</xsd:complexType>

<xsd:element name="studente" type="s:Studente"/>

<xsd:attribute name="id" type="xsd:string"/>

<xsd:attribute name="voto" type="s:Voto"/>

</xsd:schema>

• L’attributo targetNamespace specifica l’URI del namespace da associare allo sche- ma che si sta definendo. Separatamente, si dichiara l’uso di questo stesso namespace (assegnando a esso, in questo esempio, il prefisso s), in modo da potervi fare riferi- mento all’interno dello schema. È necessario dichiarare anche l’uso del namespace di XML Schema (qui si è scelto il prefisso xsd).

• Voto è un tipo semplice derivato, definito come la restrizione del tipo predefini- to xsd:integer (corrispondente ai numeri interi) ai valori compresi tra 0 e 100 (estremi inclusi).

• Studente è un tipo complesso: gli elementi ai quali esso verrà assegnato avranno due attributi, id e voto, entrambi obbligatori (required).

• Si dichiarano l’elemento studente, del tipo complesso Studente, e gli attribu- ti id e voto, rispettivamente di tipo xsd:string (il tipo semplice predefinito corrispondente alle stringhe) e Voto.

Un esempio di documento XML valido per lo schema precedente è:

2

(3)

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

<s:studente xmlns:s="[URI del namespace]"

s:id="ABC1747"

s:voto="97"/>

3

Riferimenti

Documenti correlati

Il cefalotorace presenta due paia di antenne, un paio di occhi composti (formati da più occhi semplici), un paio di mandibole e due paia di mascelle, un paio di zampe robuste

Step 13: The attributes corresponding to each dimension table at this level are also connected as attributes to the respective SE of the schema graph.. XML Schema Generation

double reali virgola mobile in doppia precisione reali virgola mobile in doppia precisione 8 byte 8 byte Intervallo. Intervallo ±10 ±10 308 308 , , 15 15 cifre significative

Fiori ciclici: tutti i pezzi sono disposti in verticilli (fiore evoluto e diffuso nelle angiosperme).. Inserzione

● Mio cugino Carlo ed io abbiamo costruito una capanna di legno nel boschetto che si trova accanto alla legnaia.. ● Oggi ho trovato la penna di Maria: l’avrà dimenticata sul banco

Porcellino, bambola, burrone, pollastro, mandarino, boscaiolo, libreria, fiorellino, tavolo, dentista, tastiera,. quadro, armadietto, acquario, formica, muratore,

¨  L’espressione a[i] restituisce il valore della variabile con indice i, quindi il tipo di questa espressione è il tipo base dell'array. Accesso agli elementi di

• Linguaggi debolmente tipati: linguaggi nei quali i tipi possono essere ignorati, p.e...