XSD Limitazioni / Facets
- Pagina precedente Attributi XSD
- Pagina successiva Elementi XSD
La limitazione (restriction) viene utilizzata per definire i valori accettati per un elemento XML o un attributo. La limitazione di un elemento XML viene chiamata faccia.
Limitazione di valori
Esempio seguente definisce un elemento denominato "age" con una limitazione. Il valore di "age" non può essere inferiore a 0 o superiore a 120:
<xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element>
Limitazione di un insieme di valori
Per limitare il contenuto di un elemento XML a un insieme di valori accettati, dobbiamo utilizzare vincoli di enumerazione (enumeration constraint).
Esempio seguente definisce un elemento denominato "car" con una limitazione. I valori accettati sono solo Audi, Golf, BMW:
<xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> </xs:element>
L'esempio precedente può essere scritto anche come:
<xs:element name="car"> type="carType"/> <xs:simpleType name="carType"> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType>
Nota:In questo caso, il tipo "carType" può essere utilizzato da altri elementi perché non fa parte dell'elemento "car".
Limitazione di una serie di valori
Per limitare il contenuto di un elemento XML a una serie di numeri o lettere ammessi, dobbiamo utilizzare vincoli di modello (pattern constraint).
Esempio seguente definisce un elemento denominato "letter" con una limitazione. Il valore accettato è una singola lettera minuscola a-z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Un altro esempio definisce un elemento denominato "initials" con una limitazione. I valori accettati sono tre lettere maiuscole A-Z:
<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Un altro esempio definisce un elemento denominato "initials" con una limitazione. I valori accettati sono tre lettere maiuscole o minuscole a-z:
<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Esempio successivo definisce un elemento denominato "choice" con una limitazione. I valori accettati sono una delle lettere x, y o z:
<xs:element name="choice"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType> </xs:element>
Esempio successivo definisce un elemento denominato "prodid" con una limitazione. I valori accettati sono una sequenza di cinque numeri arabi, e ciascun numero è nel range 0-9:
<xs:element name="prodid"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/> </xs:restriction> </xs:simpleType> </xs:element>
Altre limitazioni per una serie di valori
Esempio seguente definisce un elemento denominato "letter" con una limitazione. I valori accettati sono zero o più lettere tra a e z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])*"/> </xs:restriction> </xs:simpleType> </xs:element>
Esempio seguente definisce un elemento denominato "letter" con una limitazione. I valori accettati sono una coppia o più coppie di lettere, ciascuna composta da una lettera minuscola seguita da una lettera maiuscola. Ad esempio, "sToP" passerà la verifica di questo modello, ma "Stop", "STOP" o "stop" non passeranno la verifica:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z][A-Z])+"> </xs:restriction> </xs:simpleType> </xs:element>
Esempio seguente definisce un elemento denominato "gender" con una limitazione. I valori accettati sono male o female:
<xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element>
Esempio seguente definisce un elemento denominato "password" con una limitazione. I valori accettati sono una riga di caratteri costituiti da 8 caratteri, che devono essere lettere maiuscole o minuscole a - z o numeri 0 - 9:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9]{8}"/> </xs:restriction> </xs:simpleType> </xs:element>
Limitazione dei caratteri di spazio bianco
Per determinare il modo di gestione dei caratteri di spazio bianco (whitespace characters), è necessario utilizzare la limitazione whiteSpace.
Esempio seguente definisce un elemento denominato "address" con una limitazione. Questa limitazione whiteSpace è impostata su "preserve", il che significa che il processore XML non rimuoverà alcun carattere di spazio bianco:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
Questo esempio definisce anche un elemento denominato "address" con una limitazione. Questa limitazione whiteSpace è impostata su "replace", il che significa che il processore XML rimuoverà tutti i caratteri di spazi bianchi (le righe di ritorno, i caratteri di invio, gli spazi e i tabulatori):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
Questo esempio definisce anche un elemento denominato "address" con una limitazione. Questa limitazione whiteSpace è impostata su "collapse", il che significa che il processore XML rimuoverà tutti i caratteri di spazi bianchi (le righe di ritorno, i caratteri di invio, gli spazi e i tabulatori saranno sostituiti da uno spazio, gli spazi iniziali e finali saranno rimossi e gli spazi consecutivi saranno ridotti a un singolo spazio):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
Limitazione della lunghezza
Per limitare la lunghezza dei valori degli elementi, è necessario utilizzare le limitazioni length, maxLength e minLength.
Questo esempio definisce un elemento denominato "password" con una limitazione. Il valore deve essere esatto per 8 caratteri:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Questo esempio definisce anche un elemento denominato "password" con una limitazione. Il valore minimo è di 5 caratteri e il valore massimo è di 8 caratteri:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Limitazione del tipo di dati
Limitazione | Descrizione |
---|---|
enumeration | Definisce una lista di valori accettabili |
fractionDigits | Definisce il numero massimo di cifre decimali ammesse. Deve essere maggiore o uguale a 0. |
length | Definisce il numero esatto di caratteri o elementi di una lista ammessi. Deve essere maggiore o uguale a 0. |
maxExclusive | Definisce il limite superiore di un valore numerico. I valori ammessi devono essere inferiori a questo valore. |
maxInclusive | Definire il limite superiore del numero. I valori permessi devono essere minori o uguali a questo valore. |
maxLength | Definire il numero massimo di caratteri o elementi della lista permessi. Deve essere maggiore o uguale a 0. |
minExclusive | Definire il limite inferiore del numero. I valori permessi devono essere maggiori di questo valore. |
minInclusive | Definire il limite inferiore del numero. I valori permessi devono essere maggiori o uguali a questo valore. |
minLength | Definire il numero minimo di caratteri o elementi della lista permessi. Deve essere maggiore o uguale a 0. |
pattern | Definire la sequenza esatta di caratteri accettabili. |
totalDigits | Definire la precisione dei numeri arabi permessi. Deve essere maggiore di 0. |
whiteSpace | Definire il modo di trattare i caratteri bianchi (a capo, ritorno a capo, spazi e tabulazioni). |
- Pagina precedente Attributi XSD
- Pagina successiva Elementi XSD