WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Conjuntos de Mensagens: Usando Expressões Regulares para Analisar Elementos de Dados

Use expressões regulares para identificar partes de uma mensagem de entrada que estão associadas a subcampos.

Se suas mensagens de entrada puderem conter subcampos cuja presença ou ausência pode ser determinada apenas examinando o valor real dos dados (por exemplo, um campo opcional de dígitos numéricos seguidos por um ou mais caracteres alfabéticos) será necessário usar o método Usar Padrão de Dados da Separação do Elemento de Dados .

Esta situação é particularmente relevante para mensagens que estão em conformidade com o padrão de mercado SWIFT. Para usar este método, é necessário fornecer expressões regulares para identificar aquelas partes de uma mensagem de entrada que devem ser associadas a subcampos. É necessário fornecer um valor de expressão regular para a propriedade Padrão de Dados de cada filho do tipo complexo.

Durante a análise, os dados são correspondidos, em sequência, a cada filho do tipo complexo. O analisador faz isso utilizando a expressão regular do filho para determinar o número de caracteres da mensagem que se aplicam a esse filho. Este número de caracteres é o comprimento da cadeia mais longa, começando na posição atual na mensagem, que corresponde à expressão regular. Se a cadeia mais longa que corresponde à expressão regular tiver comprimento zero, o elemento estará presente na mensagem e a cadeia vazia será utilizada para o valor. Se nenhuma cadeia corresponder à expressão regular, o elemento não estará presente. Esta situação pode causar um erro de validação subsequente se o elemento for necessário.

Quando o número de caracteres da mensagem de entrada tiver sido determinado, a conversão de dados normal ou a análise adicional, em caso de um elemento complexo, será executada no texto da mensagem de entrada para designar valores a elementos. Isto pode causar erros de overrun ou underrun, se o comprimento identificado pelo padrão não for apropriado para a definição do filho.

Conjuntos de Mensagens: Sintaxe de Expressão Regular explica as regras de sintaxe completas e como aplicá-las, mas a tabela a seguir fornece alguns exemplos simples de análise usando padrões de dados. Um exemplo mais complexo aparece após a tabela.

Mensagem de Entrada Padrão de Dados Valor Correspondido
"123456ABC" [0-9]* "123456"
"123" [A-Z]* ""
"123" [A-Z]+ Não está presente
"0x2A2B" \x2A+ X'2A'
"ABCD123"

[A-Z]{1,3} primeiro campo

[A-Z]{2,4} segundo campo

"ABC" - primeiro campo (a cadeia mais longa correspondente ao padrão)

Não presente - segundo campo (comprimento mínimo de dois caracteres alfabéticos não está presente)

"ABCDEFGHIJ1234"

[A-Z]{1,3} primeiro campo, repetir

[0-9]+ segundo campo

"ABC" - primeiro campo [1]

"DEF" - primeiro campo [2]

"GHI" - primeiro campo [3]

"J" - primeiro campo [4]

"1234" - segundo campo (o campo de repetição é finalizado quando os dados "1234" não mais correspondem ao padrão de dados especificado para o primeiro campo).

O exemplo a seguir mostra correspondência de padrão de três campos.

Message definition:
	Complex type: Data Element Separation=Use Data Pattern
	Field1:	xsd:string minOccurs=1, maxOccurs=1, Length=5, Pad=SPACE,
				Data Pattern=".{5}"
	Field2:	xsd:int minOccurs=0, maxOccurs=1,
				Data Pattern="[0-9]{0,6}"
	Field3:	xsd:string minOccurs=1, maxOccurs=1, minLength=3, maxLength=4,
				Data Pattern="[A-Z][A-Za-z0-9]{2,3}"

Input1:		"ABCDE123F12"
Result1:		Field1="ABCDE", Field2="123", Field3="F12"

Input2:		"ABCDEF12"
Result2:		Field1="ABCDE", Field2=not present, Field3="F12"

Input3:		"ABCDE123456XXXX"
Result3:		Field1="ABCDE", Field2="123456", Field3="XXXX"

Input4:		"ABCDE1234567"
Result4:		Field1="ABCDE", Field2="123456", Field3=not present,
				which causes an exception if validation is enabled. One
				character ("7") remains unassigned to any element, which
				also causes an exception.

Em caso de um filho de repetição, as instâncias do filho são analisadas quantas vezes o padrão for correspondido. Isso será aplicado mesmo que Número Máximo de Ocorrências seja especificado para o elemento de repetição e o número de ocorrências exceda o limite superior. Portanto, alguma condição de finalização deve ser determinada do padrão da expressão regular para o elemento. A tabela acima inclui um exemplo de um elemento de repetição.

Durante a análise, os dados da mensagem de entrada correspondentes ao Padrão de Dados e que estão designados a um elemento não são mais varridos para delimitadores de um tipo complexo de nível mais alto. Esse comportamento é semelhante ao do método Separação de Elementos de Dados Comprimento Fixo. No entanto, você pode codificar uma expressão regular que corresponderá os dados a um de vários delimitadores possíveis.

Durante a gravação, se for especificado um comprimento para um filho, o valor será preenchido conforme apropriado para esse comprimento. Esse comportamento é semelhante ao do método Separação de Elemento de Dados Elementos de Comprimento Variável Delimitados, mas sem delimitadores.

Se a mensagem incluir um tipo complexo que tenha Composição definida como Opção, será possível definir o método Separação de Elementos de Dados como Utilizar Padrão de Dados. Nesse caso, os valores de Padrão de Dados dos filhos são utilizados para resolver a opção. Começando com o primeiro filho, o primeiro padrão é fornecer uma correspondência que determina qual filho está presente. Portanto, a ordem dos filhos em uma opção pode ser importante.

Um tipo complexo pode conter filhos de repetição com Número Máximo de Ocorrências não limitado. Comprimento e outras propriedades associadas, tais como, Alinhamento e Preenchimento, podem ser opcionalmente especificadas para os filhos.

Consulte Conjuntos de Mensagens: Integridade de Modelo de Mensagem TDS para obter as regras que devem ser seguidas ao utilizar o método Separação de Elementos de Dados Utilizar Padrão de Dados e consulte Conjuntos de Mensagens: Combinações de Composição e Validação de Conteúdo para obter detalhes das definições válidas de Composição e de Validação de Conteúdo.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:29:14


Tópico de ReferênciaTópico de Referência | Versão 8.0.0.5 | ad09870_