Vários recursos no Esquema XML não são suportados, ou seu suporte é restrito de alguma maneira.
Ao importar um Esquema XML para um conjunto de mensagens que suporta espaços de nomes, Redefinir Construção é aceito, mas faz com que uma mensagem de erro seja exibida na lista de tarefas, pois não é totalmente suportado.
O XML a seguir mostra um exemplo de Redefinir Construção:
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns:ibm="http://www.ibm.com"> <!-- Unsupported feature: redefine --> <redefine schemaLocation="test.xsd"/> </schema>
Ao importar um Esquema XML em um conjunto de mensagens que suporta espaços de nomes, as construções abaixo são aceitas, mas serão ignoradas e não serão implementadas no intermediário. Quando o usuário tenta importar um esquema contendo uma ou mais dessas construções, um aviso é emitido afirmando que serão ignoradas. Você estará apto a excluir essas construções, mas não haverá propriedades que possam ser configuradas para elas.
Estas declarações de esquema são listadas a seguir:
O XML a seguir mostra um exemplo de cada uma destas construções:
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns:ibm="http://www.ibm.com"> <!-- Accepted feature: unique --> <element name="element1" type="string"> <unique name="unique1"> <selector xpath="path1"></selector> <field xpath="path1"></field> </unique> </element> <!-- Accepted feature: key --> <element name="element2" type="string"> <key name="key1"> <selector xpath="path1"></selector> <field xpath="path1"></field> </key> </element> <!-- Accepted feature: keyref --> <element name="element3" type="string"> <keyref name="keyref1" refer="ibm:key1"> <selector xpath="path1"></selector> <field xpath="path1"></field> </keyref> </element> </schema>
O problema ocorre quando um Esquema XML, que possui um espaço de nomes de destino, inclui outro Esquema XML que não possui espaço de nomes de destino. O Local de Esquema, criado no modelo da mensagem para inclusão, especifica apenas o nome do arquivo. Esta especificação não considera que os arquivos de definição de mensagem que estão sendo incluídos e já incluídos estão em diferentes diretórios no modelo de mensagem.
É possível corrigir o problema a partir de ambiente de trabalho, selecionando a guia Propriedades do arquivo de definição de mensagem de inclusão no Editor de Definição de Mensagem. Exclua a entrada de inclusão, selecionando o arquivo correto a partir do menu de arquivos.
Você pode aceitar, rejeitar ou modificar estas construções com base nas preferências configuradas na página de preferências Importador de Esquema XML (ou no arquivo de opções de importação mqsicreatemsgdefs).
Se você especificar rejeitar", quando a construção for encontrada, a importação será parada e será relatado um erro.
Se você especificar "modificar" (o padrão), quando a construção for encontrada, o importador modificará o arquivo de definição de mensagem resultante, da seguinte forma:
Estas modificações são modificações equivalentes que foram desempenhadas pelo comando do importador de Esquema Versão 2.1, para compatibilidade.
Se você especificar "aceitar", quando a construção for encontrada, o importador importará a construção como ela está. Isto pode resultar em erros da lista de tarefas, dependendo da construção, conforme descrito acima para conjuntos de mensagens com suporte a espaço de nomes.
O XML a seguir mostra um exemplo de cada uma destas construções:
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns:ibm="http://www.ibm.com"> <!-- Recurso suportado: redefinir --> <redefine schemaLocation="test.xsd"/> <!-- Recurso suportado: importar --> <import schemaLocation="test1.xsd" namespace="http://www.ibm1.com"/> <!-- Recurso suportado: listar --> <simpleType name="type1"> <list itemType="string" /> </simpleType> <!-- Recurso suportado: união --> <simpleType name="type2"> <union memberTypes="string" /> </simpleType> <!-- Recurso suportado: tipo complexo abstrato --> <complexType name="type3" abstract="true"></complexType> <!-- Recurso suportado: elemento abstrato --> <element name="element" type="string" abstract="true"></element> </schema>
A lista de construções e a ação executada são iguais para um conjunto de mensagens com suporte a espaço de nomes, conforme descrito acima.
Ao importar um Esquema XML em um conjunto de mensagens que não suporta espaços de nomes, não é possível importar um documento do esquema que possui um espaço de nomes de destino que não é qualificado com um prefixo. Por exemplo:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns="http://www.ibm.com"> </xsd:schema>