Informationen zum Mustercode 'XMLNSC Namespaces'

Sie können XML-Nachrichten verwenden, die Namensbereiche in WebSphere Message Broker verwenden oder nicht.

Nachfolgend finden Sie ein Beispiel für eine Nachricht, die keine Namensbereiche verwendet:

<?xml version="1.0" encoding="UTF-8"?>    
<SaleListMessage>  
     <SaleEnvelope> 
         <Header> 
          <SaleListCount>1</SaleListCount> 
         </Header> 
     <SaleList> 
      <Invoice>  
 .....     
</SaleList> 
     <Trailer>     
  <CompletionTime>2000-01-0100:00:01.000000</CompletionTime>     
</Trailer>   
</SaleEnvelope></SaleListMessage> 

Nachfolgend finden Sie ein Beispiel für eine Nachricht, die Namensbereiche verwendet:

<?xml version="1.0" encoding="UTF-8"?>   
<samp:SaleListMessage  
xmlns:samp="http://www.samplemessage.broker.hursley.ibm.com"    
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xsi:schemaLocation="http://www.samplemessage.broker.hursley.ibm.com/SampleMessageNamespace1.xsd">
 <SaleEnvelope>      <Header>          <SaleListCount>1</SaleListCount>         </Header>     <SaleList>      <Invoice> .....  </SaleList>     <Trailer>      <CompletionTime>2000-01-0100:00:01.000000</CompletionTime>    </Trailer>  </SaleEnvelope> </samp:SaleListMessage>

Dieser Mustercode enthält einen Nachrichtensatz und drei Nachrichtenflüsse.

Nachrichtensatzinformationen

Der Nachrichtensatz CHANGENAMESPACEMS verfügt über die Laufzeitdomäne XMLNSC und enthält Nachrichtendefinitionsdateien, die auf Basis von drei XML-Schemas generiert werden:

Die Nachrichtendefinitionsdateien modellieren alle die Nachricht 'SaleListMessage', die in vielen WebSphere Message Broker-Mustercodes verwendet wird. Diese Nachrichtendefinitionen sind bis auf ihre Namensbereiche identisch. Die Schemas sind zur Auswertung der Nachrichten beim Eintritt in die Nachrichtenflüsse und beim Verlassen der Nachrichtenflüsse erforderlich.

Nachrichtenflussinformationen

Das Nachrichtenbrokerprojekt CHANGENAMESPACEMF enthält folgende Nachrichtenflüsse:

  1. Hinzufügen eines Namensbereichs: ADDNAMESPACEMF
  2. Ändern eines bestehenden Namensbereichs: CHANGENAMESPACEMF
  3. Löschen eines Namensbereichs: DELETENAMESPACEMF

Beschreibungen dieser Nachrichtenflüsse:

Nachrichtenfluss 'ADDNAMESPACEMF'

Dieser Nachrichtenfluss besteht aus MQInput-, Rechen- und MQOutput-Knoten.

Der Nachrichtenfluss empfängt eine XML-Nachricht über das WebSphere MQ-Protokoll und gibt eine XML-Antwortnachricht unter Verwendung von WebSphere MQ aus. Der XMLNSC-Parser wird vom Nachrichtenfluss verwendet, und die Auswertung ist aktiv.

Die WebSphere MQ-Eingabenachricht enthält keine Elemente mit Namensbereichen. Der Nachrichtenfluss fügt dem Stammelement der Nachricht einen Namensbereich hinzu. Die WebSphere MQ-Eingabenachricht kann einen MQRFH2-Header für die dynamische Angabe des Zielnamensbereichs enthalten. Der Header muss folgende Angaben im Element NameValueData enthalten:

<usr>
<targetNamespace>URL2</targetNamespace> 
<targetSchemaLocation>URL3</targetSchemaLocation> 
</usr>

Das Element 'targetSchemaLocation' ist optional.

Wenn kein MQRFH2-Header vorhanden ist, oder wenn der MQRFH2-Header nicht verarbeitet werden kann, wird der Namensbereich gemäß der folgenden Werte geändert:

Der Rechenknoten ruft eine ESQL-Funktion namens 'ChangeNamespaceInOutputRoot' auf. Weitere Informationen zur ESQL-Funktion finden Sie unter Mustercode 'XMLNSC Namespaces' erstellen.

Nachrichtenfluss 'CHANGENAMESPACEMF'

Dieser Nachrichtenfluss besteht aus MQInput-, Rechen- und MQOutput-Knoten.

Der Nachrichtenfluss empfängt eine XML-Nachricht über das WebSphere MQ-Protokoll und gibt eine XML-Antwortnachricht unter Verwendung von WebSphere MQ aus. Der XMLNSC-Parser wird vom Nachrichtenfluss verwendet und die Auswertung ist aktiv.

Die WebSphere MQ-Eingabenachricht enthält Elemente mit Namensbereichen und kann Elemente aus mehreren Namensbereichen enthalten. Der Nachrichtenfluss kann einen der bestehenden Namensbereiche ändern. Die WebSphere MQ-Eingabenachricht kann auch einen MQRFH2-Header enthalten, mit dem Quelle, Ziel oder beide Namensbereiche dynamisch angegeben werden. Der Header enthält folgende Angaben im Element 'NameValueData':

<usr>
<sourceNamespace>URL1</sourceNamespace>
<targetNamespace>URL2</targetNamespace>
<targetSchemaLocation>URL3</targetSchemaLocation>
</usr>

Das Element 'targetSchemaLocation' ist optional.

Wenn kein MQRFH2-Header vorhanden ist, oder wenn der MQRFH2-Header nicht verarbeitet werden kann, wird der Namensbereich gemäß der folgenden Werte geändert:

Wenn Quelle oder Ziel keinen Namensbereich enthalten, geben Sie NONAMESPACE als sourceNamespace, targetNamespace oder beides an.

<usr>
<sourceNamespace>URL1</sourceNamespace>
<targetNamespace>NONAMESPACE</targetNamespace>
</usr>

Der Rechenknoten ruft eine ESQL-Funktion namens 'ChangeNamespaceInOutputRoot' auf. Weitere Informationen zur ESQL-Funktion finden Sie unter Mustercode 'XMLNSC Namespaces' erstellen.

Nachrichtenfluss 'DELETENAMESPACEMF'

Dieser Nachrichtenfluss besteht aus MQInput-, Rechen- und MQOutput-Knoten.

Dieser Nachrichtenfluss empfängt eine XML-Nachricht über das WebSphere MQ-Protokoll und gibt eine XML-Antwortnachricht unter Verwendung von WebSphere MQ aus. Der XMLNSC-Parser wird vom Nachrichtenfluss verwendet und die Auswertung ist aktiv.

Die WebSphere MQ-Eingabenachricht enthält Elemente mit Namensbereichen und kann Elemente aus mehreren Namensbereichen enthalten. Dieser Nachrichtenfluss löscht Verweise auf einen der vorhandenen Namensbereiche.

Die WebSphere MQ-Eingabenachricht kann einen MQRFH2-Header für die dynamische Angabe des Quellennamensbereichs enthalten. Der Header muss folgende Angaben im Element NameValueData enthalten:

<usr>
<sourceNamespace>URL1</sourceNamespace>
</usr>

Wenn kein MQRFH2-Header vorhanden ist, oder wenn der MQRFH2-Header nicht verarbeitet werden kann, wird der Namensbereich gemäß der folgenden Werte geändert:

Der Rechenknoten ruft eine ESQL-Funktion namens 'ChangeNamespaceInOutputRoot' auf. Weitere Informationen zur ESQL-Funktion finden Sie unter Mustercode 'XMLNSC Namespaces' erstellen.

Detaillierte Erläuterungen zur Ausführung der einzelnen Mustercodes finden Sie unter Mustercode 'XMLNSC Namespaces' ausführen.

Zurück zum Beginn des Mustercodes