XMLNSC-Validierungsmustercode ausführen

Bevor Sie den Mustercode ausführen können, müssen Sie den Beispielnachrichtenfluss und die Beispielnachrichtengruppe implementieren.

Sollten bei der Ausführung des Mustercodes Probleme auftreten, lesen Sie den Abschnitt Resolving problems when running samples (Probleme beim Ausführen von Mustercodes beheben) in der WebSphere Message Broker-Dokumentation.

Mustercode mit einer Nachricht ausführen, die eine Validierung weitergibt

So führen Sie den XMLNSC-Validierungsmustercode mit einer Nachricht aus, die eine Validierung weitergibt:

  1. Erweitern Sie in der Ansicht 'Brokerentwicklung' das Nachrichtenflussobjekt XMLNSCVALIDATIONMF und klicken Sie anschließend doppelt auf die Datei XMLNSCVALIDATIONMF1.mbtest, um sie im Testclient zu öffnen.
  2. Klicken Sie mit der rechten Maustaste im Fenster Nachrichtenflusstestereignisse auf Nachrichtenfluss aufrufen und klicken Sie dann auf Aufrufen.
  3. Wählen Sie im Feld Hauptteil die Option Aus externer Datei importieren aus, klicken Sie auf Arbeitsbereich und navigieren Sie zur Datei ValidMessage.xml im Verzeichnis XMLNSCVALIDATIONMF Ihres Arbeitsbereichs.
  4. Klicken Sie auf OK.
  5. Klicken Sie auf Nachricht senden.

    Die Eingabenachricht gibt alle Gültigkeitsprüfungen weiter. Im Testclient wird eine Nachricht aus der Warteschlange XMLNSCVALIDATIONMF1.OUT abgerufen, und eine Kopie der Eingabenachricht wird im Testclient unter Nachricht angezeigt.

Mustercode mit einer Nachricht ausführen, in der Daten fehlen

So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht aufgrund fehlender Daten fehlschlägt:

  1. Klicken Sie mit der rechten Maustaste im Fenster Nachrichtenflusstestereignisse auf Nachrichtenfluss aufrufen und klicken Sie dann auf Aufrufen.
  2. Wählen Sie im Feld Hauptteil die Option Aus externer Datei importieren aus, klicken Sie auf Arbeitsbereich und navigieren Sie zur Datei MissingElement.xml im Verzeichnis XMLNSCVALIDATIONMF Ihres Arbeitsbereichs. Diese Nachricht enthält folgenden Teil:
    <Header Title="MissingElement"></Header>
    
  3. Klicken Sie auf OK.
  4. Klicken Sie auf Nachricht senden.

    Die Validierung der Eingabenachricht ist fehlgeschlagen. Im Testclient wird eine Nachricht aus der Warteschlange XMLNSCVALIDATIONMF1.FAIL abgerufen, und ein Teil der Ausnahmeliste wird als XML-Nachricht angezeigt. Diese Ausnahmeliste-Nachricht enthält folgenden Teil:

    <Text>Unexpected end element event.
    The content of element 'Header' is not complete.</Text>
    

    Fehler bei der Gültigkeitsprüfung, da die Eingabenachricht ein Element namens 'SaleListCount' als untergeordnetes Objekt des Headers enthalten muss. Im folgenden Abschnitt des XML-Schemas SampleMessageValidation.xsd wird die Anforderung definiert:

    <xsd:complexType name="Header">
    <xsd:sequence>
    <xsd:element name="SaleListCount" type="xsd:int"></xsd:element>
    </xsd:sequence>
    <xsd:attribute name="Title" type="xsd:string" use="optional"></xsd:attribute>
    </xsd:complexType>
    

Mustercode mit einer Nachricht ausführen, in der ein numerisches Feld außerhalb des gültigen Bereichs liegt

So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht fehlschlägt, da ein numerisches Feld außerhalb des gültigen Bereichs liegt:

  1. Klicken Sie mit der rechten Maustaste im Fenster Nachrichtenflusstestereignisse auf Nachrichtenfluss aufrufen und klicken Sie dann auf Aufrufen.
  2. Wählen Sie im Feld Hauptteil die Option Aus externer Datei importieren aus, klicken Sie auf Arbeitsbereich und navigieren Sie zur Datei NumericOutOfRange.xml im Verzeichnis XMLNSCVALIDATIONMF Ihres Arbeitsbereichs. Die Nachricht enthält folgenden Teil:
    <Quantity>1010</Quantity;>
    
  3. Klicken Sie auf OK.
  4. Klicken Sie auf Nachricht senden.

    Die Validierung der Eingabenachricht ist fehlgeschlagen. Im Testclient wird eine Nachricht aus der Warteschlange XMLNSCVALIDATIONMF1.FAIL abgerufen, und ein Teil der Ausnahmeliste wird als XML-Nachricht angezeigt. Diese Ausnahmeliste-Nachricht enthält folgenden Teil:

    <Text>cvc-maxInclusive-valid: The value "1010" is not valid with 
    respect to the maxInclusive facet with value "100" for type "#Anonymous".</Text>
    

    Fehler bei der Gültigkeitsprüfung, da der Wert für "Quantity" in der Eingabenachricht eine ganze Zahl von 1 bis 100 sein muss. Im folgenden Abschnitt des XML-Schemas SampleMessageValidation.xsd wird die Anforderung definiert:

    <xsd:element name="Quantity">
    	<xsd:simpleType>
    		<xsd:restriction base="xsd:int">
       			<xsd:minInclusive value="1"/>
      			<xsd:maxInclusive value="100"/>
      		</xsd:restriction>
    	</xsd:simpleType>
    </xsd:element>
    

Mustercode mit einem Element ausführen, das nicht mit dem erforderlichen Muster übereinstimmt:

So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht fehlschlägt, da der Wert eines Elements nicht mit dem erforderlichen Muster übereinstimmt:

  1. Klicken Sie mit der rechten Maustaste im Fenster Nachrichtenflusstestereignisse auf Nachrichtenfluss aufrufen und klicken Sie dann auf Aufrufen.
  2. Wählen Sie im Feld Hauptteil die Option Aus externer Datei importieren aus, klicken Sie auf Arbeitsbereich und navigieren Sie zur Datei PatternMismatch.xml im Verzeichnis XMLNSCVALIDATIONMF Ihres Arbeitsbereichs. Die Nachricht enthält folgenden Teil:
    <Code>0#</Code>
    
  3. Klicken Sie auf OK.
  4. Klicken Sie auf Nachricht senden.

    Die Validierung der Eingabenachricht ist fehlgeschlagen. Im Testclient wird eine Nachricht aus der Warteschlange XMLNSCVALIDATIONMF1.FAIL abgerufen, und ein Teil der Ausnahmeliste wird als XML-Nachricht angezeigt. Diese Ausnahmeliste-Nachricht enthält folgenden Teil:

    <Text>cvc-pattern-valid: The value "0#" is not valid with respect to 
    the pattern facet for type "#Anonymous".</Text>
    

    Fehler bei der Gültigkeitsprüfung, da der Wert für "Code" in der Eingabenachricht alphanumerisch sein muss. Im folgenden Abschnitt des XML-Schemas SampleMessageValidation.xsd wird die Anforderung definiert:

    <xsd:element maxOccurs="3" minOccurs="3" name="Code">
    	<xsd:simpleType>
    		<xsd:restriction base="xsd:string">
    			<xsd:pattern value="[0-9a-zA-Z]{2}"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    

Mustercode mit einem numerischen Feld ausführen, das nicht-numerische Daten enthält:

So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht fehlschlägt, da ein numerisches Feld nicht-numerische Daten enthält:

  1. Klicken Sie mit der rechten Maustaste im Fenster Nachrichtenflusstestereignisse auf Nachrichtenfluss aufrufen und klicken Sie dann auf Aufrufen.
  2. Wählen Sie im Feld Hauptteil die Option Aus externer Datei importieren aus, klicken Sie auf Arbeitsbereich und navigieren Sie zur Datei StringInNumeric.xml im Verzeichnis XMLNSCVALIDATIONMF Ihres Arbeitsbereichs. Die Nachricht enthält folgenden Teil:
    <Balance>$00.50</Balance>
    
  3. Klicken Sie auf OK.
  4. Klicken Sie auf Nachricht senden.

    Die Validierung der Eingabenachricht ist fehlgeschlagen. Im Testclient wird eine Nachricht aus der Warteschlange XMLNSCVALIDATIONMF1.FAIL abgerufen, und ein Teil der Ausnahmeliste wird als XML-Nachricht angezeigt. Diese Ausnahmeliste-Nachricht enthält folgenden Teil:

    <Text>cvc-datatype-valid.1.2: The value "$00.50" is not a valid value 
    for the "float" datatype.</Text>
    Fehler bei der Gültigkeitsprüfung, da der Wert für die Auslastung eine Gleitkommazahl sein muss und das Dollarsymbol kein gültiges Zeichen für den Datentyp "Gleitkommazahl" ist. Im folgenden Abschnitt des XML-Schemas SampleMessageValidation.xsd wird die Anforderung definiert:
    <xsd:element name="Balance" type="xsd:float"></xsd:element>
    

Mustercode mit einem Feld ausführen, das zu lang ist:

So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht fehlschlägt, da ein Feld zu lang ist:

  1. Klicken Sie mit der rechten Maustaste im Fenster Nachrichtenflusstestereignisse auf Nachrichtenfluss aufrufen und klicken Sie dann auf Aufrufen.
  2. Wählen Sie im Feld Hauptteil die Option Aus externer Datei importieren aus, klicken Sie auf Arbeitsbereich und navigieren Sie zur Datei StringTooLong.xml im Verzeichnis XMLNSCVALIDATIONMF Ihres Arbeitsbereichs. Die Nachricht enthält folgenden Teil:
    <Surname>Braithwaaaaaaaaaaaite</Surname>
    
  3. Klicken Sie auf OK.
  4. Klicken Sie auf Nachricht senden.

    Die Validierung der Eingabenachricht ist fehlgeschlagen. Im Testclient wird eine Nachricht aus der Warteschlange XMLNSCVALIDATIONMF1.FAIL abgerufen, und ein Teil der Ausnahmeliste wird als XML-Nachricht angezeigt. Diese Ausnahmeliste-Nachricht enthält folgenden Teil:

    <Text>cvc-maxLength-valid: The length of value "Braithwaaaaaaaaaaaite" 
    is "21" which is not valid with respect to maxLength facet with value "20" 
    for type "#Anonymous".</Text>
    

    Fehler bei der Gültigkeitsprüfung, da die maximale Länge von "Nachname" 20 sein muss, während die Länge der Nachricht 21 beträgt. Im folgenden Abschnitt des XML-Schemas SampleMessageValidation.xsd wird die Anforderung definiert:

    <xsd:element name="Surname">
    	<xsd:simpleType>
    		<xsd:restriction base="xsd:string">
    			<xsd:maxLength value="20"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    </xsd:element>
    

Mustercode mit dem Wert eines Elements ausführen, das nicht in der Liste mit den zulässigen Werten aufgeführt ist:

So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht fehlschlägt, da der Wert eines Elements nicht in der Liste mit den zulässigen Werten aufgeführt ist:

  1. Klicken Sie mit der rechten Maustaste im Fenster Nachrichtenflusstestereignisse auf Nachrichtenfluss aufrufen und klicken Sie dann auf Aufrufen.
  2. Wählen Sie im Feld Hauptteil die Option Aus externer Datei importieren aus, klicken Sie auf Arbeitsbereich und navigieren Sie zur Datei ValueNotInList.xml im Verzeichnis XMLNSCVALIDATIONMF Ihres Arbeitsbereichs. Die Nachricht enthält folgenden Teil:
    <Currency>FRF</Currency>
    
  3. Klicken Sie auf OK.
  4. Klicken Sie auf Nachricht senden.

    Die Validierung der Eingabenachricht ist fehlgeschlagen. Im Testclient wird eine Nachricht aus der Warteschlange XMLNSCVALIDATIONMF1.FAIL abgerufen, und ein Teil der Ausnahmeliste wird als XML-Nachricht angezeigt. Diese Ausnahmeliste-Nachricht enthält folgenden Teil:

    <Text>cvc-enumeration-valid: The value "FRF" is not valid with respect 
    to the enumeration facet for type "#Anonymous". It must be a value from the 
    enumeration.</Text>
    

    Fehler bei der Gültigkeitsprüfung, da das Element "Währung" einen der im Schema definierten zulässigen Werte enthalten muss. Der Wert in der Eingabenachricht stimmt mit keinem in der Liste aufgeführten Werte überein. Im folgenden Abschnitt des XML-Schemas SampleMessageValidation.xsd wird die Anforderung definiert:

    <xsd:element name="Currency">
    	<xsd:simpleType>
    		<xsd:restriction base="xsd:string">
    			<xsd:enumeration value="USD"/>
    			<xsd:enumeration value="GBP"/>
    			<xsd:enumeration value="Sterling"/>
    			<xsd:enumeration value="EUR"/>
    			<xsd:enumeration value="Euros"/>
    			<xsd:enumeration value="JPY"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    </xsd:element>
    

Mustercode mit einer Eingabenachricht mit falschem Namensbereich ausführen

So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht aufgrund eines falschen Namensbereichs fehlschlägt:

  1. Klicken Sie mit der rechten Maustaste im Fenster Nachrichtenflusstestereignisse auf Nachrichtenfluss aufrufen und klicken Sie dann auf Aufrufen.
  2. Wählen Sie im Feld Hauptteil die Option Aus externer Datei importieren aus, klicken Sie auf Arbeitsbereich und navigieren Sie zur Datei NamespacedMessage.xml im Verzeichnis XMLNSCVALIDATIONMF Ihres Arbeitsbereichs. Die Nachricht enthält folgenden Teil:
    <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">
    
  3. Klicken Sie auf OK.
  4. Klicken Sie auf Nachricht senden.

    Die Validierung der Eingabenachricht ist fehlgeschlagen. Im Testclient wird eine Nachricht aus der Warteschlange XMLNSCVALIDATIONMF1.FAIL abgerufen, und ein Teil der Ausnahmeliste wird als XML-Nachricht angezeigt. Diese Ausnahmeliste-Nachricht enthält folgenden Teil:

    <Text>Unexpected root tag. Element "samp:SaleListMessage" is not a 
    global element.</Text>
    Fehler bei der Gültigkeitsprüfung, da das globale Element "SaleListMessage" über keinen im Schema definierten Zielnamensbereich verfügt. Die Instanz in der Eingabenachricht verfügt über einen Ziel-Tag namens "SaleListMessage" mit einem Namensbereich und weicht dadurch von der Erwartung der Schemadefinition ab. Im folgenden Abschnitt des XML-Schemas SampleMessageValidation.xsd wird die Anforderung definiert:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="SaleListMessage" type="RootMessage"></xsd:element>
    

Nach Ausführung dieser Schritte haben Sie den XMLNSC-Validierungsmustercode erfolgreich ausgeführt. Informationen zur Struktur von XMLNSC-Überprüfungsausnahmen finden Sie im Abschnitt Überprüfungseigenschaften.

Zurück zum Beginn des Mustercodes