XML メッセージ・ツリーを構成するときには、ツリー内のフィールドの順序を考慮してください。
メッセージ・ツリー中のフィールドの順序
Compute ノードで XML 出力メッセージを作成する場合、メッセージ・エレメントはコーディングした順序で作成されるので、ESQL コードの行の順序は重要です。
<Order>
<ItemNo>1</ItemNo>
<Quantity>2</Quantity>
</Order>
これに DocType 宣言を追加する場合には、入力メッセージを出力メッセージにコピーする前に DocType 宣言を挿入します。
SET OutputRoot.XMLNS.(XML.XmlDecl) = '';
SET OutputRoot.XMLNS.(XML.XmlDecl).(XML.Version) = '1.0';
SET OutputRoot.XMLNS.(XML.DocTypeDecl)Order ='';
SET OutputRoot.XMLNS.(XML.DocTypeDecl).(XML.SystemId) = 'NewDtdName.dtd';
SET OutputRoot = InputRoot;
-- more ESQL --
XML-specific の特定のステートメントの前に最新のステートメントを置いて入力メッセージをコピーする場合には、次の XML が出力メッセージ用に生成されます。
<Order>
<ItemNo>1</ItemNo>
<Quantity>2</Quantity>
</Order>
<?xml version="1.0"?>
これは正しい形式でないばかりか、出力ノードでメッセージ・ツリーからビット・ストリームに書き込まれる際にエラーが発生します。
フィールド・タイプの設定
メッセージ・ツリーを、ドメインを変えずに入力から出力にコピーする場合、大部分の構文エレメントはパーサー (XMLNSC または XMLNS) によって作成されるので、フィールド・タイプは正しいものになります。 ただし、メッセージ・ツリーをデータベース照会や、他のパーサーのメッセージ・ツリーから構成する場合、各構文エレメントをそのフィールド・タイプを使用して正しく識別していることを確認する必要があります。 XMLNSC および XMLNS で使用されるフィールド・タイプ定数の総合的な詳細は、以下のトピックに記載されています。