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

Limitações de valor refinam um tipo simples definindo os limites dos valores que ele pode representar.

Geralmente é útil conseguir restringir os valores que um elemento pode assumir, talvez para assegurar que as mensagens estão em conformidade com as regras de negócios. Este tópico descreve como as limitações de valor podem ser incluídas em um tipo simples para restringir os valores de todos os elementos que são baseados no tipo simples.

As limitações de valor que são discutidas aqui são modeladas pelas facetas do Esquema XML e são associadas a um tipo simples.

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

Restrições de Comprimento: Comprimento, Comprimento Min, Comprimento Máx
Utilizando as restrições de comprimento, o comprimento de todos os elementos baseados no tipo simples pode ser restrito ou até limitado 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 esquemas 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).

Nota: Para o domínio MRM, por padrão, as limitações de valor de Comprimento são convertidas em limitações de Comprimento Máx quando um conjunto de mensagens for 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 estrito for necessária, esse padrão poderá ser alterado nas propriedades do conjunto de mensagens, alterando o sinalizador O intermediário trata a faceta de Comprimento como MaxLength.
Restrições de Intervalo: Min Inclusivo, Máx Inclusivo, Min Exclusivo, Máx Exclusivo
As restrições de variação 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 variação podem ser aplicadas a tipos simples que são numéricos ou que estão relacionados aos valores de calendário e de hora. Elas não podem ser aplicadas a cadeias, porque a classificação dos valores da cadeia dependem do conjunto de caracteres que é utilizado.

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).

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 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 dos tipos ascendentes 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).

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 (total de dígitos) e o número de casas decimais (dígitos de fração) para todos os elementos baseados no tipo simples. As restrições de precisão podem ser aplicadas a tipos simples que são derivados de xsd:decimal, mas observe que, no tempo de execução, o intermediário aplica estas restrições apenas a xsd:decimal e aos tipos de usuários que são derivados dele; qualquer restrição de precisão que é aplicada a um tipo de inteiro simples é ignorada.

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).

Restrições de Padrão
A restrição de padrão é uma expressão comum que especifica um conjunto de valores permitidos para todos os elementos que são 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 os elementos que são baseados no tipo simples. 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. Neste caso, o conjunto de restrições de padrão que é contribuído por tipo ascendente deve ser satisfeito, 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 precisão podem ser aplicadas apenas em 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 o espaço em branco para todos os elementos baseados no tipo simples.
Nota: Para o domínio MRM, os formatos físicos MRM permitem que o espaço em branco seja controlado bem precisamente para cada formato físico definido para a mensagem, mas essas propriedades físicas são separadas das restrições de espaço em branco no modelo lógico.
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:12:08

ad10470_