Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

20
Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles

Transcript of Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Page 1: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Gli schema W3C

Estensione di tipi semplici, scelte fra più elementi,

application profiles

Page 2: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Elementi vuoti Senza attributi<xs:element name=“figura”/>

Con attributi<xs:element name=“figura"> <xs:complexType> <xs:attribute name=“didascalia" use="optional"

type=“xs:string” /><xs:attribute name=“link” use=“optional”

type=“anyUri”> </xs:complexType></xs:element>

Page 3: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Derivazione di tipi semplici Restringimento

Enumerazione Modelli (espressioni regolari)

Estensione

Page 4: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Enumerazione: attributi con valori<xs:complexType name="STANZE">

<xs:sequence><xs:element name="verso" type="xs:string"

maxOccurs="unbounded"/></xs:sequence><xs:attribute name="tipo" use="optional" default="quartina“ type=“en1”/>

</xs:complexType>

<xs:simpleType name=“en1”><xs:restriction base="xs:string">

<xs:enumeration value=“terzina"/><xs:enumeration value=“distico"/><xs:enumeration value=“quartina"/>

</xs:restriction></xs:simpleType>

L’enumerazione di valori è una

restrizione del tipo semplice xs:string

Page 5: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Enumerazione: elementi con valori<xs:element name="titolo">

<xs:simpleType><xs:restriction base="xs:string">

<xs:enumeration value="I"/> <xs:enumeration value="II"/>

</xs:restriction></xs:simpleType>

</xs:element>

Con gli schema si possono

specificare anche i valori di un elemento

Page 6: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Modelli

<xsd:simpleType name="paginazione"><xsd:restriction base="xsd:string">

<xsd:pattern value="\d{1,4}-\d{1,4}"/></xsd:restriction>

</xsd:simpleType>Espressione regolare

\d{numero di caratteri}\s spazio

Page 7: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Elemento con testo e attributi con valori

<xs:complexType name="STANZE"><xs:sequence>

<xs:element name="verso" type=“Versi" maxOccurs="unbounded"/></xs:sequence>

</xs:complexType>

<xs:complexType name=“Versi”><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="tipo" use=“required"> <xs:simpleType>

<xs:restriction base="xs:string"><xs:enumeration value=“settenario"/><xs:enumeration value=“endecasillabo"/>

</xs:restriction> </xs:simpleType></xs:attribute></xs:extension></xs:simpleContent></xs:complexType>

Esercizio 20 Esercizio 22 (a casa)

Bisogna estendere xs:string per

accogliere attributi

Per i valori degli attributi si deve

restringere xs:string

Tipo anonimo!

Page 8: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Scelte fra più elementi<xs:complexType name="STANZE“><xs:sequence><xs:choice><xs:element name="verso" type="xs:string“

maxOccurs="unbounded"/><xs:element name=“versetto” type="xs:string“

maxOccurs="unbounded"/></xs:choice></xs:sequence>

</xs:complexType>

Page 9: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Mixed Content model<xs:complexType name="STANZE“ mixed=“true”>

<xs:sequence><xs:element name="verso" type="xs:string

maxOccurs="unbounded"/><xs:element name=“versetto” type="xs:string“

maxOccurs="unbounded"/></xs:sequence>

</xs:complexType>

Page 10: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Mixed content model 2<xs:complexType name="STANZE“ mixed=“true”><xs:sequence>

<xs:choice><xs:sequence>

<xs:element name="verso" type="xs:string“ maxOccurs="unbounded"/>

<xs:element name=“versetto” type="xs:string“ maxOccurs="unbounded"/>

</xs:sequence><xs:sequence>

<xs:element name=“versetto” type="xs:string“ maxOccurs="unbounded"/>

<xs:element name="verso" type="xs:string“ maxOccurs="unbounded"/>

</xs:sequence></xs:choice>

</xs:sequence></xs:complexType>

Page 11: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Mixed content Model 3: finalmente!<xs:complexType name="STANZE“ mixed=“true”><xs:sequence>

<xs:choice maxOccurs="unbounded" minOccurs="0">

<xs:element name="verso" type="xs:string“ maxOccurs="unbounded"/>

<xs:element name=“versetto” type="xs:string“ maxOccurs="unbounded"/>

</xs:choice></xs:sequence></xs:complexType>

Equivale a

(#PCDATA|verso|versetto)*

Page 12: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

L’ordine degli elementi sequence: ordine obbligatorio choice: scelta fra più elementi all: un qualsiasi ordine NOVITA!

<xsd:complexType name="NTypo"> <xsd:all>

<xsd:element name="luogoEd" type="xsd:string"/><xsd:element name="editore" type="xsd:string"/><xsd:element name="annoEd" type="xsd:gYear"/>

</xsd:all></xsd:complexType>

Page 13: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Elementi e attributi qualificati L’elemento root dello schema

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

elementFormDefault="qualified" attributeFormDefault="unqualified" >

Gli attributi no!

Gli elementi dovranno essere preceduti

da xs:

Page 14: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Target namespace Nell’elemento root si può anche:

definire qual’è il namespace principale definire se elementi e attributi dovranno esplicitare o no

il namespace

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns="http://www.iccu.sbn.it/biblio.xsl"targetNamespace="http://www.sito.it/biblio.xsd"elementFormDefault="unqualified"attributeFormDefault="unqualified">

Se c’è si riferiscono al target namespace

Page 15: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Il file1. Non qualificato<bibliografia xmlns="http://www.sito.it/biblio.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.iccu.sbn.it/biblio.xsd"> <!-- qui il documento --></bibliografia>

2. Qualificato<bib:bibliografia xmlns:bib="http://www.sito.it/biblio.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.iccu.sbn.it/biblio.xsd"> <!-- qui il documento --></bib:bibliografia>

Page 16: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Includere frammenti di schemaQuando lo schema è grosso o si occupa di

più argomenti si può spezzare in più file:

<xs:include schemaLocation="biblio2.xsd"/>

Page 17: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Importare altri namespace<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns="http://www.sito.it/biblio.xsd"targetNamespace="http://www.sito.it/biblio.xsd"xmlns:dc="http://purl.org/dc/elements/1.1/"elementFormDefault="qualified"attributeFormDefault="unqualified" >

<!-- ecc. -->

<xsd:import namespace="http://purl.org/dc/elements/1.1/"schemaLocation="simpledc20020312.xsd"/>

<xs:complexType name="VERSI"><xs:sequence>

<xs:element ref="dc:title"/><xs:element name="stanza" type="STANZE" maxOccurs="unbounded"/></xs:sequence>

</xs:complexType>

<xsd:schema>

ref e non name

Page 18: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Dublin Core Schema di metadati descrittivi per

identificare una risorsa. Comprende:

title creator publisher date

Page 19: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Application profiles schema costituito da elementi recuperati

da uno o più namespace combinati insieme dagli implementatori e ottimizzati per un particolare applicazione Si possono combinare uno o più namespace Non si possono introdurre nuovi elementi Si possono specificare i valori degli elementi Si possono raffinare le definizioni standard

Esercizio 21

Page 20: Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.

Annotazioni <xsd:annotation> si usa per documentare gli

schema, sia per gli umonai che per le macchine <xsd:documentation> documentazione per gli umani <xsd:appinfo> documentazione per le applicazioni

<xsd:annotation> <xsd:documentation xml:lang="it"> Schema per la creazione di bibliografie<!-- ricordarsi di spiegare meglio questo punto --></xsd:documentation>

</xsd:annotation>