- Valore predefinito
- Se in un messaggio di input è presente un elemento vuoto, a questo verrà assegnato il valore predefinito. Se in un messaggio di input manca completamente un elemento, a questo non verrà assegnato alcun valore.
Se in un messaggio di input manca un attributo, a questo verrà assegnato il valore predefinito.
I vincoli del valore predefinito sono associati all'elemento stesso e non è possibile pertanto ereditarli.
Nota: se si distribuisce una serie di messaggi in WebSphere Message Broker, non verrà applicato sempre il funzionamento descritto sopra. Per ulteriori dettagli sulle differenze, fare riferimento all'argomento Relazione con il modello logico per il formato fisico appropriato.
- Valore fisso
- Se in un messaggio di input viene visualizzato un elemento, è necessario che il relativo valore sia il valore fisso specificato. Se in un messaggio di input è presente un elemento vuoto, a questo verrà assegnato il valore fisso. Se in un messaggio di input manca completamente un elemento, a questo verrà assegnato il valore fisso.
Se in un messaggio di input è presente un attributo, è necessario che a questo sia assegnato il valore fisso. Se in un messaggio di input manca un attributo, a questo verrà assegnato il valore fisso.
I vincoli del valore fisso sono associati all'elemento stesso e non è possibile pertanto ereditarli.
Nota: se si distribuisce una serie di messaggi in WebSphere Message Broker, non verrà applicato sempre il funzionamento descritto sopra. Per ulteriori dettagli sulle differenze, fare riferimento all'argomento Relazione con il modello logico per il formato fisico appropriato.
- Vincoli lunghezza: Lunghezza, Lunghezza Minima, Lunghezza Massima
- Utilizzando i vincoli di lunghezza, è possibile vincolare la lunghezza di tutti gli elementi basati sul tipo semplice o limitarli a un valore singolo.
E' possibile applicare i vincoli lunghezza ai tipi semplici derivati da xsd:hexBinary, xsd:base64Binary o xsd:string (inclusi i tipi di schemi incorporati, ad esempio xsd:normalisedString).
I vincoli lunghezza sono ereditati da tipi predecessori ed è necessario che qualsiasi vincolo lunghezza definito per il tipo semplice non riduca i vincoli imposti da uno qualsiasi dei tipi predecessori. Ad esempio, non è consentito derivare un tipo "longString" (Lunghezza Massima=100)
da un tipo "shortString" (Lunghezza Massima=10).
Nota: Per WebSphere Message Broker, per impostazione predefinita, i vincoli valore Lunghezza sono convertiti
in vincoli Lunghezza Massima quando viene aggiunta una serie di messaggi a un file BAR. Ciò impedisce che in WebSphere Message Broker siano generati errori di convalida non corretta per strutture dati a lunghezza fissa, dove le stringhe tendono a essere completate in modo da riempire un campo a larghezza fissa. Se è richiesta una convalida di lunghezza precisa, è possibile modificare tale valore predefinito nelle proprietà della serie di messaggi modificando l'indicatore Il broker considera il facet di lunghezza come MaxLength.
- Vincoli intervallo: Minimo incluso, Massimo incluso, Minimo escluso, Massimo escluso
- I vincoli intervallo specificano l'intervallo di valori consentito per tutti gli elementi basati sul tipo semplice. I vincoli di inclusione includono gli endpoint specificati nell'intervallo consentito, al contrario dei vincoli di esclusione. E' possibile applicare i vincoli intervallo ai tipi semplici numerici o correlati ai valori relativi al calendario e all'ora. Non è possibile applicarli alle stringhe poiché l'ordine dei valori delle stringhe dipende dalla serie di caratteri utilizzata.
I vincoli intervallo sono ereditati da tipi predecessori ed è necessario che qualsiasi vincolo intervallo definito per il tipo semplice non riduca i vincoli imposti da uno qualsiasi dei tipi predecessori. Ad esempio, non è consentito derivare un tipo "largeNumber" (Massimo incluso=100)
da un tipo "smallNumber" (Massimo incluso=10).
Il modello di messaggio non consente l'applicazione di vincoli di esclusione a tipi non integrali (ad esempio, Float, decimali, doppi, data/ora).
- Vincoli di enumerazione
- Un vincolo di enumerazione specifica un singolo valore consentito per tutti gli elementi basati sul tipo semplice. E' possibile specificare un elenco di valori consentiti definendo più di un vincolo di enumerazione per lo stesso tipo semplice.
E' possibile applicare i vincoli di enumerazione a tutti i tipi semplici.
I vincoli di numerazione sono ereditati da tipi predecessori ed è necessario che qualsiasi serie di vincoli di numerazione definita per un tipo semplice non aumenti l'intervallo dei valori consentiti. Ad esempio, non è consentito derivare un tipo "AllColours" (con le numerazioni per tutti i colori dell'arcobaleno) da un tipo "MonoColours" (con le numerazioni solo per il bianco e nero).
- Vincoli di precisione: Cifre totali e Cifre di frazione
- I vincoli di precisione sono correlati solo ai valori decimali. Limitano il numero di cifre significative (cifre totali) e il numero di posizioni decimali (cifre di frazione) per tutti gli elementi basati sul tipo semplice. E' possibile applicare i vincoli di precisione solo ai tipi semplici derivati da xsd:decimal.
I vincoli di precisione sono ereditati da tipi predecessori ed è necessario che qualsiasi vincolo di precisione definito per un tipo semplice non riduca i vincoli imposti da uno qualsiasi dei tipi predecessori. Ad esempio, non è consentito derivare un tipo "veryPrecise" (Cifre totali=10)
da un tipo "notVeryPrecise" (Cifre di frazione=1).
- Vincoli di modello
- Un vincolo di modello è un'espressione regolare che specifica una serie di valori consentiti per tutti gli elementi basati sul tipo semplice. E' possibile definire più modelli per lo stesso tipo semplice, consentendo di esprimere regole di convalida complesse in parti separate logicamente. Ciascun vincolo di modello in un tipo semplice contribuisce alla serie di valori consentiti per gli elementi basati su questo. Ciò significa che tutti i modelli sono combinati utilizzando il valore booleano OR.
Come con tutti i vincoli di valore, è possibile che un tipo semplice erediti vincoli di modello dal tipo semplice sul quale è basato. In tal caso, è necessario soddisfare la serie di vincoli di modello fornita da ciascun tipo predecessore e la serie fornita dal tipo semplice stesso. Ciò significa che le serie di vincoli di modello di ciascun livello nella gerarchia del tipo sono combinate utilizzando il valore booleano AND.
E' possibile applicare i vincoli di modello solo ai tipi semplici derivati da xsd:string.
- Vincoli Whitespace
- Un vincolo Whitespace specifica la modalità di gestione degli spazi vuoti per tutti gli elementi basati sul tipo semplice mediante il programma di analisi.
Nota: Per WebSphere Message Broker, i formati fisici
MRM consentono di controllare in modo molto preciso gli spazi vuoti per ciascun formato fisico definito per il messaggio, ma tali proprietà fisiche sono separate dai vincoli Whitespace nel modello logico.