cheap nfl jerseys china cheap nfl jerseys free shipping wholesale nfl jerseys china wholesale jerseys from china cheap nfl jerseys free shipping cheap nfl jerseys for sale cheap jerseys free shipping wholesale nfl jerseys from china cheap nfl jerseys sale cheap nike nfl jerseys china wholesale jerseys free shipping cheap nfl jerseys wholesale wholesale nfl jerseys online cheap nfl jerseys wholesale china jerseys wholesale cheap coach handbags outlet authentic designer handbags cheap coach handbags outlet cheap coach purses outlet discount coach bags coach bags sale coach purse outlet cheap real coach purses coach handbags sale online coach purse outlet michael kors outlet online store cheap michael kors bags cheap michael kors purse michael kors factory outlet online cheap michael kors handbags cheap michael kors purses michael kors bags outlet online cheap michael kors purse michael kors handbags discount
XML
XML
eXtensible Markup Language
eXtensible Markup Language
sistema per lo scambio di dati tra sistemi informativi

XML Schema

Un XML Schema definisce una grammatica per mezzo di dichiarazioni utilizzando la sintassi XML con l'uso del prefisso xs
Sarà quindi un file .XML richiamato con la direttiva
<Schema1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Schema1.xsd" >

Il file Schema1.xsd è così organizzato:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
...
</xs:schema>

Per poter riutilizzare grammatiche già definite e ovviare al problema del nome univoco, è stato introdotto il concetto di namespace, che prefissa il nome dell'elemento, così come avviene per i campi delle tabelle, che devoo essere univoci solo all'interno di una tabella.


Esempio di definizione di un elemento:
<xs:element name="numero" type="xs:integer" />
I tipi di dato predefiniti sono: xs:string xs:integer xs:decimal xs:boolean xs:date xs:time xs:uriReference. Inoltre si possono definire nuovi tipi di dato, semplici e complessi:
<xs:element name="peso">
    <xs:simpleType>
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="2" />
            <xs:maxInclusive value="100" />
        </xs:restriction>
    </xs:simpleType>
</xs:element>

Per i tipi di dati complessi (elementi che ne contengono altri) abbiamo a disposizione dei costruttori:
<xs:sequence>
<xs:choice>
<xs:all>
per ognuno dei quali è possibile definire le occorenze lecite per mezzo degli attributi minOccurs e maxOccurs

Un elemento vuoto è un elemento di tipo complesso senza tipi predefiniti:
<xs:element name="NOME_ELEMENTO">
    <xs:complexType>
        <xs:complexContent>
            <xs:extension base="xs:anyType" />
        </xs:complexContent>
    </xs:complexType>
</xs:element>

Gli attributi si definiscono con il tag <xs:attribute>

Esempio: