WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

XMLNSC: CData の処理

CData セクションを使用すると、XML 文書を別の XML 文書内に埋め込むことができます。

CData セクションとは何か

XML エレメントには、次のようにテキスト・コンテンツを含めることができます。
<element>text content</element>
ただし、そのコンテンツ中に表示できない文字もあります。 特に「<」および「&」は、XML パーサーにとって特別な意味があります。 エレメントのテキスト・コンテント中にそれらが含まれていると、XML 文書の意味が変わります。
例えば、以下は形成が正しくない XML 文書の例です。
<element><text><content></element>
XML を正しく形成するには、以下の 2 とおりの方法があります。
  1. 文字エンティティーを使用する:
    <element>&lt;text&gt;&lt;content&gt;</element>
  2. CData セクションを使用する:
    <element><![CDATA[<text><content>]]></element>

CData セクションが使用可能な目的

CData セクションには、XML マークアップをエレメントの値として含めることができます。 ただし、有効ではない XML 文字を含めることはできません。 バイナリー・データも、CData セクションに含めることはできません。
CData の最も一般的な使用法は、1 つの XML 文書を別の XML 文書の中に埋め込むことです。 以下に例を示します。
<outer>
    <embedXML>
        <![CDATA[<innerMsg></innerMsg>]]>
    </embedXML>
</outer>
XML パーサーは CData セクションのコンテントを構文解析しようとしないため、この方法では形成が正しくない XML 文書であっても埋め込むことが可能です。
<outer>
    <embedXML>
        <![CDATA[<badXML></wrongClosingTag>]]>
    </embedXML>
</outer>
以下の項目は CData セクション内では無効です。 これらの制約があるので、XML 文書に任意のテキストを含めるために CData セクションは使用しないでください。またバイナリー・データを保持するためにも CData セクションは使用しないでください (それが hexBinary または base64Binary としてエンコードされていない限り)。

CData セクションを出力 XML メッセージに追加する方法

次の入力メッセージをご覧ください。

 <TestCase>
    <Folder>
       <Field1>Value1</Field1>
       <Field2>Value2</Field2>
       <Field3>Value3</Field3>
    </Folder>
 </TestCase> 
以下の ESQL は、メッセージ全体を直列化する方法を示しています。
 DECLARE wholeMsgBlob BLOB
   ASBITSTREAM(InputRoot.XMLNSC,
               InputRoot.Properties.Encoding,
               InputRoot.Properties.CodedCharSetId );
  DECLARE wholeMsgChar CHAR 
   CAST(wholeMsgBlob AS CHAR CCSID InputRoot.Properties.CodedCharSetId);
 SET OutputRoot.XMLNSC.Output.(XMLNSC.CDataField)Field1 = wholeMsgChar;

この例では、メッセージ・ツリーの InputRoot.XMLNSC.TestCase.Folder 部分を直列化します。

MQOutput ノードの前の出力メッセージ・ツリーが調べられた場合は、以下のように示されます。

(0x01000010):XML        = (
  (0x01000000):Output = (
    (0x01000000):Field1 = (
      (0x02000001): = '<TestCase><Folder><Field1>Value1</Field1><Field2>Value2</Field2>
                       <Field3>Value3</Field3></Folder><Folder2><Field1>Value1</Field1>
                       <Field2>Value2</Field2><Field3>Value3</Field3><Folder2></TestCase>'
       )
       )
   )  

示されているように、各 CData セクションには、必要な XML メッセージの部分の文字表現である単一のスカラー値が含まれます。

このツリーは、次の XML 出力メッセージを生成します。

<Output>
 <Field1><![CDATA[<TestCase><Folder><Field1>Value 1</Field1>
                                    <Field2>Value 2</Field2>
                                    <Field3>Value 3</Field3></Folder>
                            <Folder2><Field1>Value 1</Field1>
                                     <Field2>Value 2</Field2>
                                     <Field3>Value 3</Field3></Folder2>
                  </TestCase>]]</Field1>
 </Output> 
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:46:13


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | ac67174_