Eine Nachrichtenmodellschemadatei oder Nachrichtendefinitionsdatei kann die in einer anderen Datei definierten Nachrichtenmodellobjekte wiederverwenden.
Es gibt zwei Mechanismen, die XML Schema zur Wiederverwendung von Nachrichtendefinitionsdateien bereitstellt: import und include. Die Namespaces der beiden Dateien bestimmen, ob import oder include verwendet wird:
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.
In eine Nachrichtenmodellschemadatei kann eine andere Datei eingefügt oder importiert werden, die sich in derselben Anwendung oder Bibliothek oder in einer anderen Nachrichtenbrokerbibliothek befindet. In eine Nachrichtendefinitionsdatei dagegen kann nur eine Datei eingefügt oder importiert werden, die sich in derselben Nachrichtengruppe befindet.
XML Schema stellt eine Variante von 'xsd:include' mit der Bezeichnung 'xsd:redefine' bereit, die bei Verwendung von Nachrichtenmodellschemadateien, nicht jedoch bei der Verwendung von Nachrichtendefinitionsdateien unterstützt wird. Bei der Verwendung von Nachrichtendefinitionsdateien steht eine Schnellkorrektur zur Verfügung, um Vorkommen von 'xsd:redefine' in 'xsd:include' zu konvertieren.