Beim Importieren eines XML-Schemas in eine Nachrichtengruppe, die Namespaces unterstützt, wird die Neudefinitionsanweisung zwar akzeptiert, sie verursacht jedoch eine Fehlernachricht in der Taskliste, da sie nicht vollständig unterstützt wird.
Nachfolgend finden Sie ein Beispiel für eine Neudefinitionsanweisung:
<?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"> <!-- Nicht unterstützte Funktion: redefine --> <redefine schemaLocation="test.xsd"/> </schema>
Beim Import eines XML-Schemas in eine Nachrichtengruppe, die Namensbereiche unterstützt, werden nachfolgend aufgeführte Anweisungen akzeptiert, jedoch ignoriert, d. h. nicht im Broker eingesetzt. Versucht der Benutzer, ein Schema mit einer oder mehreren dieser Anweisungen zu importieren, wird die Warnung zurückgegeben, dass die betreffenden Anweisungen ignoriert werden. Die Anweisungen können gelöscht werden, ihre Eigenschaften können jedoch nicht konfiguriert werden.
Wenn Sie das logische Modell der Nachricht beispielsweise mit der Schema-Generierungseinrichtung extrahieren, werden die Anweisungen ignoriert und nicht in das Ausgabeschema eingeschlossen.
Die folgenden Schemaanweisungen werden zwar akzeptiert, aber ignoriert:
Nachfolgend finden Sie für jede dieser Anweisungen ein Beispiel:
<?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"> <!-- Unterstützte Funktion: unique --> <element name="element1" type="string"> <unique name="unique1"> <selector xpath="path1"></selector> <field xpath="path1"></field> </unique> </element> <!-- Unterstützte Funktion: key --> <element name="element2" type="string"> <key name="key1"> <selector xpath="path1"></selector> <field xpath="path1"></field> </key> </element> <!-- Unterstützte Funktion: keyref --> <element name="element3" type="string"> <keyref name="keyref1" refer="ibm:key1"> <selector xpath="path1"></selector> <field xpath="path1"></field> </keyref> </element> </schema>
Dieses Problem tritt auf, wenn ein XML-Schema mit einem Ziel-Namensbereich ein anderes XML-Schema beinhaltet, das über keinen Ziel-Namensbereich verfügt. Die im Nachrichtenmodell für das "Include" (Einschließen) erstellte Schemaposition gibt lediglich den Dateinamen an. Dabei wird nicht berücksichtigt, dass sich die einschließende und die eingeschlossene Nachrichtendefinitionsdatei in verschiedenen Verzeichnissen innerhalb des Nachrichtenmodells befinden.
Das Problem beheben Sie auf der Workbench im Nachrichtendefinitionseditor auf der Registerkarte Eigenschaften der einschließenden Nachrichtendefinitionsdatei. Löschen Sie den Include-Eintrag mit der falschen Schemaposition, und fügen Sie einen neuen Include-Eintrag mit der richtigen Datei hinzu, die Sie im Dateimenü wählen können.
Je nach Einstellungen auf der Einstellungsseite des XML-Schemaimportprogramms (bzw. in der Importoptionendatei mqsicreatemsgdefs) hat der Benutzer die Wahl, diese Anweisungen zu akzeptieren, zurückzuweisen oder zu ändern.
Wählt der Benutzer für eine solche Anweisung "Zurückweisen" aus, wird der Import angehalten, und der Vorfall wird protokolliert.
Wählt der Benutzer "Ändern"(die Standardeinstellung) aus, wird die ausgegebene Nachrichtendefinitionsdatei wie folgt geändert:
Aus Kompatibilitätsgründen werden im Prinzip keine anderen Änderungen vorgenommen als vom bisherigen Befehl des Version 2.1 XML-Schemaimportprogramms.
Hat der Benutzer "Akzeptieren" angegeben, importiert das Importprogramm eine solche Anweisung, so wie sie ist. Dies kann abhängig von der jeweiligen Anweisung zu Tasklistenfehlern führen, so wie oben für Nachrichtengruppen mit Unterstützung für Namespaces beschrieben.
Nachfolgend finden Sie für jede dieser Anweisungen ein Beispiel:
<?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"> <!-- Unterstützte Funktion: redefine --> <redefine schemaLocation="test.xsd"/> <!-- Unterstützte Funktion: import --> <import schemaLocation="test1.xsd" namespace="http://www.ibm1.com"/> <!-- Unterstützte Funktion: list --> <simpleType name="type1"> <list itemType="string" /> </simpleType> <!-- Unterstützte Funktion: union --> <simpleType name="type2"> <union memberTypes="string" /> </simpleType> <!-- Unterstützte Funktion: abstract complex type --> <complexType name="type3" abstract="true"></complexType> <!-- Unterstützte Funktion: abstract element --> <element name="element" type="string" abstract="true"></element> </schema>
Die Liste der Anweisungen und der auszuführenden Aktionen entspricht der Liste für Nachrichtengruppen mit Unterstützung von Namespaces (siehe Beschreibung oben).
Beim Import eines XML-Schemas in eine Nachrichtengruppe, die keine Namensbereiche unterstützt, werden keine Schemadokumente mit einem Ziel-Namensbereich ohne Präfix importiert. Beispiel:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns="http://www.ibm.com"> </xsd:schema>