Restrições de Valor, também conhecidas como aspectos no Esquema XML, refinam um tipo simples definindo os limites nos valores que ele pode representar.
Geralmente é útil poder limitar os valores que um elemento ou atributo pode utilizar, talvez para assegurar que as mensagens estejam em conformidade com as regras de negócios. Este tópico descreve como incluir limitações de valor em um tipo simples, para limitar os valores de todos os elementos ou atributos que são baseados nesse tipo simples.
Se o modelo for implementado no WebSphere Message Broker, os elementos e atributos poderão ser validados com relação às restrições de valor, para que as violações sejam relatadas como erros ou avisos. Todos os domínios SOAP, XMLNSC, DFDL e MRM suportam validação.
As restrições de comprimento podem ser aplicadas a tipos simples que são derivados de xsd:hexBinary, xsd:base64Binary ou xsd:string (incluindo tipos de esquema integrados, como xsd:normalisedString).
As restrições de comprimento são herdadas dos tipos ascendentes e quaisquer restrições de comprimento definidas para um tipo simples não devem aliviar as restrições impostas por qualquer um de seus tipos ascendentes. Por exemplo, um tipo 'longString' (Max Length=100) não pode ser derivado de um tipo 'shortString' (Max Length=10).
As restrições de variação são herdadas dos tipos ascendentes e quaisquer restrições de variação definidas para um tipo simples não devem aliviar as restrições impostas por qualquer um de seus tipos ascendentes. Por exemplo, um tipo 'largeNumber' (Max Inclusive=100) não pode ser derivada de um tipo 'smallNumber' (Max Inclusive=10).
As restrições de enumeração são herdadas de tipos ancestrais e qualquer conjunto de restrições de enumeração definidas para um tipo simples não devem aumentar o intervalo de valores permitidos. Por exemplo, um tipo 'AllColors' (com enumerações para todas as cores do arco-íris) não pode ser derivado de um tipo 'MonoColors' (com enumerações para 'preto' e 'branco' apenas).
As restrições de precisão são herdadas dos tipos ascendentes e quaisquer restrições de precisão definidas para um tipo simples não devem aliviar as restrições impostas por qualquer um de seus tipos ascendentes. Por exemplo, um tipo 'veryPrecise' (Fraction Digits=10) não pode ser derivado de um tipo 'notVeryPrecise' (Fraction Digits=1).
Como ocorre com todas as restrições de valores, um tipo simples pode herdar restrições de padrão do tipo simples no qual ele está baseado. Neste caso, o conjunto de restrições de padrão fornecidas por cada tipo de ancestral deve ser satisfeito, além do conjunto fornecido pelo próprio tipo simples, isto é, os conjuntos de restrições de padrão de cada nível na hierarquia de tipo são combinados usando o booleano AND.