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.
So führen Sie den XMLNSC-Validierungsmustercode mit einer Nachricht aus, die eine Validierung weitergibt:
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.
So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht aufgrund fehlender Daten fehlschlägt:
<Header Title="MissingElement"></Header>
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>
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:
<Quantity>1010</Quantity;>
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>
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:
<Code>0#</Code>
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>
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:
<Balance>$00.50</Balance>
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>
So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht fehlschlägt, da ein Feld zu lang ist:
<Surname>Braithwaaaaaaaaaaaite</Surname>
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>
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:
<Currency>FRF</Currency>
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>
So führen Sie den Mustercode zur XMLNSC-Validierung aus, bei dem die Validierung der Eingabenachricht aufgrund eines falschen Namensbereichs fehlschlägt:
<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">
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.