Objetos do Modelo de Mensagem: Limitações de Valor de Tipo Simples

As restrições de valores refinam um tipo simples, definindo limites para os valores que ele pode representar.

Geralmente, é útil poder restringir os valores que podem ser utilizados por um elemento, talvez para assegurar que as mensagens estejam de acordo com as regras de negócios. Este tópico descreve como as restrições de valores podem ser incluídas a um tipo simples para restringir o valor de todos os elementos baseados nele.

A maioria das restrições de valores discutidas aqui são modeladas pelos aspectos Esquema do XML e está associada a um tipo simples. No entanto, os valores padrão e valores fixos podem ser definidos para um elemento, e estão associados ao próprio elemento.

Dica: Se o conjunto de mensagens for implementado no WebSphere Message Broker, todas as restrições de valores poderão ser validadas para que quaisquer violações sejam relatadas como erros ou avisos.

Tipos de Restrições de Valores

Valor Padrão
Se um elemento vazio estiver presente em uma mensagem de entrada, ele será designado ao valor padrão. Se um elemento estiver totalmente ausente em uma mensagem de entrada, a ele não será designado nenhum valor.

Se um atributo estiver ausente em uma mensagem de entrada, a ele será designado o valor padrão.

Observe que as restrições de valores padrão estão associadas ao próprio elemento e, portanto, não podem ser herdadas.

Nota: Se você implementar um conjunto de mensagens no WebSphere Message Broker, o comportamento descrito antes nem sempre se aplicará. Para obter detalhes das diferenças, consulte o tópico Relacionamento com o Modelo Lógico para obter o formato físico apropriado.
Valor Fixo
Se um elemento aparecer em uma mensagem de entrada, seu valor deverá ser o valor fixo especificado. Se um elemento vazio estiver presente em uma mensagem de entrada, será designado a ele o valor fixo. Se um elemento estiver totalmente ausente em uma mensagem de entrada, a ele será designado o valor fixo.

Se um atributo estiver presente em uma mensagem de entrada, ele deverá ter o valor fixo. Se um atributo estiver ausente em uma mensagem de entrada, a ele será designado o valor fixo.

As restrições de valores fixos estão associadas ao próprio elemento e, portanto, não podem ser herdadas.

Nota: Se você implementar um conjunto de mensagens no WebSphere Message Broker, o comportamento descrito antes nem sempre se aplicará. Para obter detalhes das diferenças, consulte o tópico Relacionamento com o Modelo Lógico para obter o formato físico apropriado.
Restrições de Comprimento: Comprimento, Comprimento Min, Comprimento Máx
Utilizando restrições de comprimento, o comprimento de todos os elementos baseados no tipo simples serão restringidos ou até mesmo limitados a um único valor.

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 internos, tais como, xsd:normalisedString).

As restrições de comprimento são herdadas de tipos ascendentes e as restrições de comprimento definidas para um tipo simples não devem afrouxar as restrições impostas por qualquer um de seus tipos ascendentes. Por exemplo, seria ilegal derivar um tipo 'longString' (Comprimento Máx=100) de um tipo 'shortString' (Comprimento Max=10).

Nota: Para WebSphere Message Broker, por padrão, as restrições de valor de Comprimento são convertidas para as restrições de Comprimento Max quando um conjunto de mensagens é incluído em um arquivo BAR. Isso evita que o WebSphere Message Broker gere erros de validação falsos para estrutura de dados de comprimento fixo, em que as cadeias tendem a ser preenchidas para se ajustarem a um campo de largura fixa. Se a validação de comprimento exata for requerida, esse padrão pode ser alterado nas propriedades do conjunto de mensagens alterando o sinalizador O Intermediário Trata o Aspecto de Comprimento como MaxLength.
Restrições de Intervalo: Min Inclusivo, Máx Inclusivo, Min Exclusivo, Máx Exclusivo
As restrições de intervalos especificam o intervalo permitido de valores para todos os elementos baseados no tipo simples. As restrições inclusivas incluem os nós de extremidade especificados no intervalo permitido, enquanto as restrições exclusivas não. As restrições de intervalo podem ser aplicadas a tipos simples que são numéricos ou que estão relacionados a valores de calendário e tempo. Elas não podem ser aplicadas a cadeias, porque a ordenação de valores de cadeia depende do conjunto de caracteres que está sendo utilizado.

As restrições de intervalos são herdadas de tipos ascendentes e quaisquer restrições de intervalos definidas para um tipo simples não devem afrouxar as restrições impostas por qualquer um de seus tipos ascendentes. Por exemplo, seria ilegal derivar um tipo 'largeNumber' (Max Inclusivo=100) de um tipo 'smallNumber' (Max Inclusivo=10).

O modelo de mensagem não permite que restrições exclusivas sejam aplicadas a tipos não-integrais (float, decimal, double, dateTime etc).

Restrições de Enumeração
A restrição de enumeração especifica um único valor permitido para todos os elementos que são baseados no tipo simples. Uma lista de valores permitidos pode ser especificada, definindo mais de uma restrição de enumeração para o mesmo tipo simples. As restrições de enumeração podem ser aplicadas a todos os tipos simples.

As restrições de enumeração são herdadas de tipos ascendentes e qualquer conjunto de restrições de enumeração definidas para um tipo simples não deve aumentar o intervalo de valores permitidos. Por exemplo, seria inválido derivar um tipo 'AllColours' (com enumerações para todas as cores do arco-íris) de um tipo 'MonoColours' (com enumerações apenas para 'preto' e 'branco').

Restrições de Precisão : Dígitos Totais e Dígitos Fracionários
As restrições de precisão estão relacionadas apenas a valores decimais. Elas limitam o número de dígitos significativos (dígitos totais) e o número de casas decimais (dígitos fracionários) para todos os elementos baseados no tipo simples. As restrições de precisão podem ser aplicadas apenas a tipos simples que são derivados de xsd:decimal.

As restrições de precisão são herdadas de tipos ascendentes e quaisquer restrições de precisão definidas para um tipo simples não devem afrouxar as restrições impostas por qualquer um de seus tipos ascendentes. Por exemplo, seria ilegal derivar um tipo 'veryPrecise' (Dígitos da Fração=10) de um tipo 'notVeryPrecise' (Dígitos da Fração=1).

Restrições de Padrão
Uma restrição de padrão é uma expressão regular que especifica um conjunto de valores permitidos para todos os elementos baseados no tipo simples. Vários padrões podem ser definidos para o mesmo tipo simples, permitindo que as regras de validação complexas sejam expressas em partes separadas logicamente. Cada restrição de padrão em um tipo simples contribui para o conjunto de valores permitidos para elementos baseados nele. Em outras palavras, todos os padrões são combinados utilizando o Booleano OR.

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. Nesse caso, o conjunto de restrições de padrão contribuído por cada tipo ascendente deve ser atendido, bem como o conjunto contribuído pelo próprio tipo simples. Em outras palavras, os conjuntos de restrições de padrão de cada nível na hierarquia de tipos são combinados utilizando o Booleano AND.

As restrições de padrão podem ser aplicadas apenas a tipos simples que são derivados de xsd:string.

Restrições de Espaços em Branco
Uma restrição de espaço em branco especifica como um analisador deve tratar espaços em branco para todos os elementos baseados no tipo simples.
Nota: Para WebSphere Message Broker, os formatos físicos MRM permitem que espaços em branco sejam controlados de forma muito precisa para cada formato físico definido para a mensagem, mas essas propriedades físicas são separadas da restrição de espaço em branco no modelo lógico.
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ad10470_