XMLNSC Validation サンプルの実行

このサンプルを実行するには、サンプル・メッセージ・フローとメッセージ・セットを事前にデプロイしておく必要があります。

サンプルの実行時に問題を検出した場合は、 WebSphere Message Broker 資料の『サンプル実行時の問題の解決』を参照してください。

検証が成功するメッセージを使用してサンプルを実行する

検証が成功するメッセージを使用して XMLNSC Validation サンプルを実行するには、次のようにします。

  1. 「ブローカー開発」ビューで「XMLNSCVALIDATIONMF」メッセージ・フロー・プロジェクトを展開した後、XMLNSCVALIDATIONMF1.mbtest をダブルクリックして、テスト・クライアントで開きます。
  2. 「メッセージ・フロー・テスト・イベント」ペインで「メッセージ・フローの起動」を右クリックして、「起動」をクリックします。
  3. 「本文」フィールドで、「外部ファイルからインポート」を選択し、「ワークスペース」をクリックした後、ワークスペース内の XMLNSCVALIDATIONMF ディレクトリーからファイル ValidMessage.xml にナビゲートします。
  4. 「OK」をクリックします。
  5. 「メッセージの送信」をクリックします。

    入力メッセージの検証は、すべて成功します。 テスト・クライアントでは、XMLNSCVALIDATIONMF1.OUT キューからメッセージが取得されます。また、 テスト・クライアントの「メッセージ」の下には、入力メッセージのコピーが表示されます。

データが欠落しているメッセージを使用してサンプルを実行する

データが欠落しているために入力メッセージの検証が失敗する XMLNSC Validation サンプルを実行するには、次のようにします。

  1. 「メッセージ・フロー・テスト・イベント」ペインで「メッセージ・フローの起動」を右クリックして、「起動」をクリックします。
  2. 「本文」フィールドで、「外部ファイルからインポート」を選択し、「ワークスペース」をクリックした後、ワークスペース内の XMLNSCVALIDATIONMF ディレクトリーからファイル MissingElement.xml にナビゲートします。 このメッセージには、以下の部分が含まれます。
    <Header Title="MissingElement"></Header>
    
  3. 「OK」をクリックします。
  4. 「メッセージの送信」をクリックします。

    入力メッセージの検証が失敗します。テスト・クライアントでは、XMLNSCVALIDATIONMF1.FAIL キューからメッセージが取得され、 例外リストの部分が XML メッセージとして表示されます。この例外リスト・メッセージには、以下の部分が含まれます。

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

    入力メッセージは、SaleListCount という名前のエレメントをヘッダーの子として持つ必要があります。そのために検証が失敗します。この要件は、XML スキーマ SampleMessageValidation.xsd の以下のセクションに定義されています。

    <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>
    

数値フィールドが範囲外のメッセージを使用してサンプルを実行する

数値フィールドが範囲外のために入力メッセージの検証が失敗する XMLNSC Validation サンプルを実行するには、次のようにします。

  1. 「メッセージ・フロー・テスト・イベント」ペインで「メッセージ・フローの起動」を右クリックして、「起動」をクリックします。
  2. 「本文」フィールドで、「外部ファイルからインポート」を選択し、「ワークスペース」をクリックした後、ワークスペース内の XMLNSCVALIDATIONMF ディレクトリーからファイル NumericOutOfRange.xml にナビゲートします。 このメッセージには、以下の部分が含まれます。
    <Quantity>1010</Quantity;>
    
  3. 「OK」をクリックします。
  4. 「メッセージの送信」をクリックします。

    入力メッセージの検証が失敗します。テスト・クライアントでは、XMLNSCVALIDATIONMF1.FAIL キューからメッセージが取得され、 例外リストの部分が XML メッセージとして表示されます。この例外リスト・メッセージには、以下の部分が含まれます。

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

    入力メッセージの「Quantity」の値は 1 から 100 までの範囲の整数 (両端を含む) でなければならないため、検証は失敗しました。この要件は、XML スキーマ SampleMessageValidation.xsd の以下のセクションに定義されています。

    <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>
    

必要なパターンに従わないエレメントを使用してサンプルを実行する

エレメントの値が必要なパターンに従わないために入力メッセージの検証が失敗する XMLNSC Validation サンプルを実行するには、次のようにします。

  1. 「メッセージ・フロー・テスト・イベント」ペインで「メッセージ・フローの起動」を右クリックして、「起動」をクリックします。
  2. 「本文」フィールドで、「外部ファイルからインポート」を選択し、「ワークスペース」をクリックした後、ワークスペース内の XMLNSCVALIDATIONMF ディレクトリーからファイル PatternMismatch.xml にナビゲートします。 このメッセージには、以下の部分が含まれます。
    <Code>0#</Code>
    
  3. 「OK」をクリックします。
  4. 「メッセージの送信」をクリックします。

    入力メッセージの検証が失敗します。テスト・クライアントでは、XMLNSCVALIDATIONMF1.FAIL キューからメッセージが取得され、 例外リストの部分が XML メッセージとして表示されます。この例外リスト・メッセージには、以下の部分が含まれます。

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

    入力メッセージの「Code」の値は英数字でなければなりません。そのために検証が失敗します。この要件は、XML スキーマ SampleMessageValidation.xsd の以下のセクションに定義されています。

    <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>
    

非数値データを含む数値フィールドを使用してサンプルを実行する

数値フィールドに非数値データが含まれるために入力メッセージの検証が失敗する XMLNSC Validation サンプルを実行するには、次のようにします。

  1. 「メッセージ・フロー・テスト・イベント」ペインで「メッセージ・フローの起動」を右クリックして、「起動」をクリックします。
  2. 「本文」フィールドで、「外部ファイルからインポート」を選択し、「ワークスペース」をクリックした後、ワークスペース内の XMLNSCVALIDATIONMF ディレクトリーからファイル StringInNumeric.xml にナビゲートします。 このメッセージには、以下の部分が含まれます。
    <Balance>$00.50</Balance>
    
  3. 「OK」をクリックします。
  4. 「メッセージの送信」をクリックします。

    入力メッセージの検証が失敗します。テスト・クライアントでは、XMLNSCVALIDATIONMF1.FAIL キューからメッセージが取得され、 例外リストの部分が XML メッセージとして表示されます。この例外リスト・メッセージには、以下の部分が含まれます。

    <Text>cvc-datatype-valid.1.2: The value "$00.50" is not a valid value 
    for the "float" datatype.</Text>
    「Balance」の値は浮動小数点でなければならず、ドル記号は浮動小数点データ・タイプの有効な文字ではありません。そのために検証が失敗します。この要件は、XML スキーマ SampleMessageValidation.xsd の以下のセクションに定義されています。
    <xsd:element name="Balance" type="xsd:float"></xsd:element>
    

長すぎるフィールドを使用してサンプルを実行する

フィールドが長すぎるために入力メッセージの検証が失敗する XMLNSC Validation サンプルを実行するには、次のようにします。

  1. 「メッセージ・フロー・テスト・イベント」ペインで「メッセージ・フローの起動」を右クリックして、「起動」をクリックします。
  2. 「本文」フィールドで、「外部ファイルからインポート」を選択し、「ワークスペース」をクリックした後、ワークスペース内の XMLNSCVALIDATIONMF ディレクトリーからファイル StringTooLong.xml にナビゲートします。 このメッセージには、以下の部分が含まれます。
    <Surname>Braithwaaaaaaaaaaaite</Surname>
    
  3. 「OK」をクリックします。
  4. 「メッセージの送信」をクリックします。

    入力メッセージの検証が失敗します。テスト・クライアントでは、XMLNSCVALIDATIONMF1.FAIL キューからメッセージが取得され、 例外リストの部分が XML メッセージとして表示されます。この例外リスト・メッセージには、以下の部分が含まれます。

    <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>
    

    「Surname」の最大長は 20 でなければなりませんが、メッセージでは長さが 21 になっています。そのために検証が失敗します。この要件は、XML スキーマ SampleMessageValidation.xsd の以下のセクションに定義されています。

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

許可値のリストに含まれないエレメント値を使用してサンプルを実行する

エレメント値が許可値のリストに含まれていないために入力メッセージの検証が失敗する XMLNSC Validation サンプルを実行するには、次のようにします。

  1. 「メッセージ・フロー・テスト・イベント」ペインで「メッセージ・フローの起動」を右クリックして、「起動」をクリックします。
  2. 「本文」フィールドで、「外部ファイルからインポート」を選択し、「ワークスペース」をクリックした後、ワークスペース内の XMLNSCVALIDATIONMF ディレクトリーからファイル ValueNotInList.xml にナビゲートします。 このメッセージには、以下の部分が含まれます。
    <Currency>FRF</Currency>
    
  3. 「OK」をクリックします。
  4. 「メッセージの送信」をクリックします。

    入力メッセージの検証が失敗します。テスト・クライアントでは、XMLNSCVALIDATIONMF1.FAIL キューからメッセージが取得され、 例外リストの部分が XML メッセージとして表示されます。この例外リスト・メッセージには、以下の部分が含まれます。

    <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>
    

    「Currency」エレメントには、スキーマで定義された許可値のいずれかが含まれていなければなりません。そのために検証が失敗します。入力メッセージの値は、リストの内のどの値とも一致しません。この要件は、XML スキーマ SampleMessageValidation.xsd の以下のセクションに定義されています。

    <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>
    

ネーム・スペースに誤りがある入力メッセージを使用してサンプルを実行する

入力メッセージのネーム・スペースに誤りがあるために入力メッセージの検証が失敗する XMLNSC Validation サンプルを実行するには、次のようにします。

  1. 「メッセージ・フロー・テスト・イベント」ペインで「メッセージ・フローの起動」を右クリックして、「起動」をクリックします。
  2. 「本文」フィールドで、「外部ファイルからインポート」を選択し、「ワークスペース」をクリックした後、ワークスペース内の XMLNSCVALIDATIONMF ディレクトリーからファイル NamespacedMessage.xml にナビゲートします。 このメッセージには、以下の部分が含まれます。
    <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. 「OK」をクリックします。
  4. 「メッセージの送信」をクリックします。

    入力メッセージの検証が失敗します。テスト・クライアントでは、XMLNSCVALIDATIONMF1.FAIL キューからメッセージが取得され、 例外リストの部分が XML メッセージとして表示されます。この例外リスト・メッセージには、以下の部分が含まれます。

    <Text>Unexpected root tag. Element "samp:SaleListMessage" is not a 
    global element.</Text>
    グローバル・エレメント SaleListMessage には、 スキーマで定義されたターゲット・ネーム・スペースがありません。そのために検証が失敗します。 入力メッセージのインスタンスには、ネーム・スペースを持つ SaleListMessage という名前のルート・タグがあります。そのため、スキーマ定義から期待される内容とは異なっています。この要件は、XML スキーマ SampleMessageValidation.xsd の以下のセクションに定義されています。
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="SaleListMessage" type="RootMessage"></xsd:element>
    

上記の手順が完了すると、XMLNSC Validation サンプルが正常に実行されたことになります。 XMLNSC 妥当性検査例外の構造に関する詳細は、妥当性検査プロパティーを参照してください。

サンプルのホームに戻る