Facets di XSD/Limitazioni
- Pagina precedente Proprietà di XSD
- Pagina successiva Elementi complessi di XSD
La restrizione (restriction) viene utilizzata per definire i valori accettabili per un elemento XML o un attributo. La restrizione di un elemento XML è chiamata faccia.
Limitazione dei valori
Esempio seguente definisce un elemento con restrizione e denominato "age". 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 la restrizione di enumerazione (enumeration constraint).
Esempio successivo 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ò anche essere scritto 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 la restrizione di modello (pattern constraint).
Esempio successivo definisce un elemento denominato "letter" con una limitazione. I valori accettati sono una delle lettere minuscole a - z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Esempio successivo 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>
Esempio successivo anche 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, ciascuno dei quali va da 0 a 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 che definisce un elemento denominato "letter" con una limitazione. I valori accettati sono zero o più lettere da a - 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 che 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 che 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 che definisce un elemento denominato "password" con una limitazione. I valori accettati sono una riga di 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 spazi bianchi
Per stabilire il modo di gestione dei caratteri di spazi bianchi (whitespace characters), dobbiamo utilizzare la limitazione whiteSpace.
Esempio seguente che 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 (righe, ritorni a capo, spazi e tabulazioni):
<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 spazio (le virgole di ritorno, i ritorni a capo, gli spazi e i tabulatori saranno sostituiti da uno spazio, gli spazi iniziali e finali saranno rimossi e gli spazi consecutivi saranno ridotti a uno 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 del valore dell'elemento, è 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 un elenco di valori accettabili |
fractionDigits | Definisce il numero massimo di cifre decimali consentite. Deve essere maggiore o uguale a 0. |
length | Definisce il numero esatto di caratteri o elementi di elenco consentiti. Deve essere maggiore o uguale a 0. |
maxExclusive | Definisce il limite superiore del valore numerico. I valori ammessi devono essere inferiori a questo valore. |
maxInclusive | Definisce il limite superiore del valore numerico. I valori ammessi devono essere inferiori o uguali a questo valore. |
maxLength | Definisce il numero massimo di caratteri o elementi di elenco consentiti. Deve essere maggiore o uguale a 0. |
minExclusive | Definisce il limite inferiore del valore numerico. I valori ammessi devono essere superiori a questo valore. |
minInclusive | Definire il limite inferiore del valore numerico. I valori ammessi devono essere maggiori o uguali a questo valore. |
minLength | Definire il numero minimo di caratteri o elementi ammessi. Deve essere maggiore o uguale a 0. |
pattern | Definire la sequenza esatta di caratteri accettabili. |
totalDigits | Definire la precisione dei numeri arabi ammessi. Deve essere maggiore di 0. |
whiteSpace | Definire il modo di trattare gli spazi bianchi (righe, ritorni a capo, spazi e tabulazioni). |
- Pagina precedente Proprietà di XSD
- Pagina successiva Elementi complessi di XSD