Eine Nachrichtendefinitionsdatei kann Nachrichtenmodellobjekte wiederverwenden, die in einer anderen Nachrichtendefinitionsdatei definiert sind. Es gibt zwei Mechanismen, die das XML-Schema hierfür bereitstellt: import und include. Die Namespaces der beiden Dateien bestimmen, ob import oder include verwendet werden sollte:
Zieldatei hat einen Ziel-Namespace | Zieldatei hat einen 'notarget'-Ziel-Namespace | |
---|---|---|
Übergeordnete Datei hat einen Ziel-Namespace | xsd:import | xsd:include1 |
Übergeordnete Datei hat einen 'notarget'-Ziel-Namespace | xsd:import | xsd:include |
Wenn import oder include verwendet wird, können globale Objekte von der Zieldatei in der übergeordneten Datei benutzt werden. Beispiel: Einem Element in der übergeordneten Datei kann ein komplexer Typ verliehen werden, der in der Zieldatei definiert ist.
Der Namespace von Objekten in der Zieldatei wird in der übergeordneten Datei beibehalten werden, mit der Ausnahme, die in der vorherigen Tabelle einer Ziel-Namespacedatei (einschließlich einer 'notarget'-Namespace-Datei) verzeichnet ist. Diese Ausnahme wird manchmal als Effekt mit getarntem Namespace bezeichnet.
Getarnte Namespaces werden nur beschränkt unterstützt, wenn sie in der MRM-Domäne verwendet werden. Wenn die Objekte in der übergeordneten Datei referenziert werden, erscheinen die Objekte in der Zieldatei im Namespace der übergeordneten Datei, aber sie bekommen standardmäßige Informationen zum physischen Format zugewiesen. Mit anderen Worten sind die Informationen zum physischen Format, die in der Zieldatei definiert sind, nicht für die Verwendung in der übergeordneten Datei verfügbar. Verwenden Sie getarnte Namespaces in der MRM-Domäne nur, um XML-Nachrichten zu modellieren, bei denen Informationen zum physischen Format sich nicht vom Standard unterscheiden.
Das XML-Schema stellt eine Variation von 'xsd:include' bereit: 'xsd:redefine'. Dies wird nicht vom WebSphere Message Broker unterstützt. Die Verwendung von 'xsd:redefine' wird zu einem Tasklistenfehler führen. Es steht eine Schnellkorrektur zur Verfügung, um Vorkommen von 'xsd:redefine' in 'xsd:include' zu konvertieren.