O prefixo "xsi" é o prefixo do espaço de nomes utilizado por convenção para o Espaço de Nomes do Esquema XML para Instâncias. Os documentos XML que contêm elementos que têm um atributo
xsi:type. Isso fornece um tipo de dados explícito para o elemento.
O analisador XML MRM é sensível aos atributos xsi:type do documento XML.
Ele modifica o tipo de dados do elemento conforme necessário e inclui o atributo
xsi:type na árvore de mensagens.
O gravador de XML MRM é sensível aos atributos xsi:type da árvore de mensagens.
Ele emite saída dos atributos xsi:type de acordo com a propriedade Política de Saída para Atributos xsi:type do conjunto de mensagens do Formato de
Ligação XML. Por exemplo, o atributo xsi:type pode ser removido, colocado na saída
de todos os elementos ou na saída de acordo com as regras especificadas no
padrão SOAP.
Se a validação for ativada para um fluxo de mensagens do WebSphere Message Broker, a lógica da validação será sensível aos atributos
xsi:type e utilizará os mesmos para modificar a validação do elemento. Também validará os valores de atributos xsi:type utilizando as regras descritas em Esquema XML Parte 1: Estruturas no Web site do W3C (World Wide Web
Consortium).
Há vários pontos importantes a serem lembrados ao analisar e gravar
documentos XML que contêm atributos xsi:type.
- Para detectar e utilizar atributos xsi:type, o conjunto de mensagens deve ser
ativado para o espaço de nomes. Para que um conjunto de mensagens seja ativado para o espaço de nomes, verifique a propriedade Utilizar Espaços de Nomes do conjunto de mensagens.
- Se o valor do atributo xsi:type contiver um prefixo de espaço de nomes,
o prefixo será expandido para um URI completo pelo analisador MRM XML.
Se o mesmo atributo xsi:type for emitido como saída posteriormente pelo gravador MRM XML, o mesmo prefixo não será utilizado automaticamente para o valor. É possível controlar os prefixos utilizados na saída, utilizando a lista Configurações de Espaço de
Nomes nas propriedades do conjunto de mensagens Formato de Ligação XML. Se nenhum prefixo for fornecido, o gravador XML designará um prefixo padrão.
- Se o atributo xsi:type de um elemento não resolver para um tipo do modelo, o comportamento dependerá de se a validação do MRM está ativada.
Se não estiver validando, o MRM irá supor que o tipo do elemento é o declarado
no modelo e continuará. Se estiver validando, uma exceção de validação será
emitida.
- Se a validação do MRM estiver ativada, quaisquer atributos xsi:type requeridos deverão estar presentes na árvore de mensagens no ponto onde a validação é executada. Um atributo xsi:type é requerido quando seu valor é diferente do tipo de dados do elemento, conforme definido no modelo de mensagem (isso ocorre mais comumente quando a derivação do tipo do Esquema XML é utilizada).
- Se a validação estiver sendo executada em uma mensagem de entrada, o analisador MRM XML assegurará que os atributos xsi:type apareçam na árvore de mensagens, conforme descrito acima.
- Se a validação estiver sendo executada em uma mensagem de saída, você deve assegurar que os atributos xsi:type corretos apareçam na árvore de mensagens. Você deve assegurar que quaisquer atributos xsi:type requeridos sejam copiados da árvore de mensagens de entrada
para a árvore de mensagens de saída ou que sejam explicitamente criados na árvore de
mensagens de saída.
- Se estiver utilizando tipos simples que são xsd:unions, um atributo xsi:type poderá ser utilizado para direcionar o analisador MRM XML na resolução da união.
- Se você estiver utilizando o WebSphere
Message Broker Versão
6.0 e tiver
migrado de uma versão anterior que não era sensível aos atributos xsi:type,
você pode observar algumas alterações de comportamento. Por exemplo, no WebSphere
Message Broker Versão
6.0, os atributos xsi:type não são
mais tratados como atributos de auto-definição, portanto, eles aparecem na árvore de mensagens com o nome 'type' em vez de '@type'.
Se a lógica do fluxo de mensagens for sensível aos atributos xsi:type na árvore de mensagens, é recomendável alterar seu fluxo de mensagens para estar em conformidade com o novo comportamento. Se quiser reter lógica de uma versão anterior do WebSphere Message Broker em seus fluxos de mensagens,
isso é descrito em Notas sobre Migração de Fluxos de Mensagens.
Para obter informações adicionais sobre os atributos xsi:type, consulte Esquema XML Parte
0: Primer no Web site do W3C (World Wide Web Consortium).