Wertvorgaben grenzen einen einfachen Typ ein, indem Grenzwerte für die Werte, die der Typ annehmen kann, definiert werden.
Oft ist es nützlich, Vorgaben für Werte, die ein Element annehmen kann, festzulegen, um beispielsweise sicherzustellen, dass Nachrichten bestimmten Geschäftsregeln entsprechen. Dieser Abschnitt beschreibt, wie Wertvorgaben zu einem einfachen Typ hinzugefügt werden, um die Werte aller auf dem einfachen Typ basierenden Elemente zu begrenzen.
Die hier beschriebenen Wertvorgaben werden durch XML-Schema-Facetten modelliert und einem einfachen Typ zugeordnet.
Längenvorgaben können auf einfache Typen angewendet werden, die vom Schematyp xsd:hexBinary, xsd:base64Binary oder xsd:string (einschließlich integrierter Schematypen wie xsd:normalisedString) abgeleitet sind.
Längenvorgaben werden von übergeordneten Typen übernommen, wobei Längenvorgaben, die für einen einfachen Typ definiert werden, nicht von den Vorgaben, die von einem der übergeordneten Typen vorgegeben werden, abweichen dürfen. Beispielsweise kann der Typ 'langeZeichenfolge' (maxLength=100) nicht vom Typ 'kurzeZeichenfolge' maxLength=10) abgeleitet werden.
Bereichsvorgaben werden von übergeordneten Typen übernommen, wobei Bereichsvorgaben, die für einen einfachen Typ definiert werden, nicht von den Vorgaben, die von einem der übergeordneten Typen vorgegeben werden, abweichen dürfen. Beispielsweise kann der Typ 'großeZahl' (maxInclusive=100) nicht von einem Typ 'kleineZahl' (maxInclusive=10) abgeleitet werden.
Das Nachrichtenmodell lässt nicht zu, dass exklusive Vorgaben auf Typen angewendet werden, bei denen es sich nicht um Integraltypen (Gleitkomma, Dezimalzahl, Doppelzeichen, Datum/Zeit usw.) handelt.
Aufzählungsvorgaben werden von übergeordneten Typen übernommen, wobei der Bereich der zulässigen Werte durch keine der Gruppen von Aufzählungsvorgaben, die für einen einfachen Typ definiert werden, erweitert werden darf. Beispielsweise kann der Typ 'AlleFarben' (mit Aufzählungen für alle Farben des Regenbogens) nicht aus einem Typ 'MonoFarben' (mit Aufzählungen nur für 'schwarz' und 'weiß') abgeleitet werden.
Genauigkeitsvorgaben werden von übergeordneten Typen übernommen, wobei Genauigkeitsvorgaben, die für einen einfachen Typ definiert werden, nicht von den Vorgaben, die von einem der übergeordneten Typen vorgegeben werden, abweichen dürfen. Beispielsweise kann der Typ 'sehrGenau' (fractionDigits=10) nicht vom Typ 'nichtSehrGenau' (fractionDigits=1) abgeleitet werden.
Wie bei allen Wertvorgaben gilt auch hier, dass ein einfacher Typ Mustervorgaben von dem einfachen Typ, auf dem er basiert, übernehmen kann. In diesem Fall muss sowohl die Gruppe von Mustervorgaben, die von jedem übergeordneten Typ beigetragen wird, als auch die Gruppe, die von dem einfachen Typ selbst beigetragen wird, den Anforderungen entsprechen. Mit anderen Worten: Die Gruppen von Mustervorgaben aus den einzelnen Ebenen der Typhierarchie werden durch den Booleschen Wert UND miteinander kombiniert.
Mustervorgaben können nur auf einfache Typen angewendet werden, die vom Datentyp xsd:string abgeleitet sind.