Quando si importa uno schema XML in una serie di messaggi che supporta spazi dei nomi, la struttura Ridefinita è accettata ma provoca la visualizzazione di un messaggio di errore nell'elenco delle attività e non è supportata in modo completo.
Di seguito viene riportata una struttura Ridefinita di esempio.
<?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>
Quando si importa uno schema XML in una serie di messaggi che supporta spazi dei nomi, le strutture riportate di seguito sono accettate ma verranno ignorate e non verranno distribuite nel broker. Quando si effettua il tentativo di importare uno schema in cui sono contenute una o più strutture di questo tipo, viene generata un'avvertenza che indica che saranno ignorate. Sarà possibile eliminare tali strutture, ma non sono disponibili proprietà di configurazione.
Se si estrae il modello logico per il messaggio (ad esempio, utilizzando la funzionalità Creazione schema), tali strutture sono ignorate e non sono incluse nello schema di output.
Di seguito viene riportato un elenco di tali dichiarazioni dello schema.
Di seguito viene riportato un esempio per ciascuna struttura.
<?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>
Il problema si verifica quando uno schema XML con uno spazio dei nomi di destinazione include un altro schema XML senza spazio dei nomi di destinazione. L'Ubicazione schema creata nel modello di messaggio per l'inclusione specifica solo il nome del file. Per tale operazione, non è presa in considerazione la situazione in cui i file di definizione dei messaggi di inclusione e quelli che sono inclusi si trovano in directory differenti nel modello di messaggio.
È possibile risolvere il problema dal workbench selezionando la scheda Proprietà del file di definizione dei messaggi di inclusione nell'editor Definizione dei messaggi. Eliminare la voce di inclusione con l'Ubicazione schema non corretta e aggiungere un'altra voce di inclusione selezionando il file corretto nel menu File.
È possibile accettare o rifiutare o modificare le strutture in base alle preferenze impostate nella pagina delle preferenze del Programma di importazione schemi XML (o nel file delle opzioni di importazione mqsicreatemsgdefs).
Se si specifica "rifiuta", quando si rileva una struttura, l'importazione si interrompe e viene generato un errore.
Se si specifica "modifica" (impostazione predefinita), quando si rileva una struttura, il file di definizione dei messaggi risultante viene modificato dal programma di importazione come riportato di seguito.
Tali modifiche sono equivalenti a quelle eseguite dal comando del programma di importazione dello schema XMLVersione 2.1 per motivi di compatibilità.
Se si specifica "accetta", quando si rileva una struttura, si verifica l'importazione, mediante il relativo programma, della struttura senza variazioni. È possibile che vengano generati errori di elenco attività in base alla struttura, come riportato sopra nella sezione relativa alle serie di messaggi con il supporto per lo spazio dei nomi.
Di seguito viene riportato un esempio per ciascuna struttura.
<?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"> <!-- Supported feature: redefine --> <redefine schemaLocation="test.xsd"/> <!-- Supported feature: import --> <import schemaLocation="test1.xsd" namespace="http://www.ibm1.com"/> <!-- Supported feature: list --> <simpleType name="type1"> <list itemType="string" /> </simpleType> <!-- Supported feature: union --> <simpleType name="type2"> <union memberTypes="string" /> </simpleType> <!-- Supported feature: abstract complex type --> <complexType name="type3" abstract="true"></complexType> <!-- Supported feature: abstract element --> <element name="element" type="string" abstract="true"></element> </schema>
L'elenco delle strutture e l'azione intrapresa sono gli stessi delle serie di messaggi con supporto per lo spazio dei nomi descritte sopra.
Quando si importa uno schema XML in una serie di messaggi senza supporto per lo spazio dei nomi, non è possibile importare un documento di schema con uno spazio dei nomi di destinazione non qualificato con un prefisso. Ad esempio:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns="http://www.ibm.com"> </xsd:schema>