WebSphere Enterprise Service Bus バージョン 6.2.0 オペレーティング・システム: AIX、HP-UX、i5/OS、Linux、Solaris、Windows


なぜ DataObject に Sequence があることを知っていなければならないのか

Sequence がある DataObject に対して作業をする場合、データが設定される順序を知ることが重要です。そのため、値が設定される順序に注意する必要があります。

順序付けされていない DataObject では、ランダムな順序での設定アクセスができます。これは、すべてのキーが同じ値に設定される Map のように機能します。キーが設定された順序は問題ではなく、マップ内のデータは同じものであり、XML へも完全に同じようにシリアライズされます。

DataObject が順序付けされている場合、データが設定された順序は、List へのデータの追加と同様に、Sequence 内に記録されます。これは、データへの 2 とおりのアクセス方法を提供します。名前/値のペアによるアクセス (DataObject API) と、設定された順序によるアクセス (Sequence API) です。DataObject set(...) API または Sequence add(...) API を使用して、構造を保存できます。この順序付けは、XML がシリアライズされる方法に影響を及ぼします。

例として、以下の <all/> タグを考えてみます。set メソッドが以下の順序で呼び出された場合、シリアライズされると、以下の XML が生成されます。

	DataObject all = ...
	all.set("element1", "foo");
	all.set("element2", "bar");

<?xml version="1.0" encoding="UTF-8"?>
<p:All xsi:type="p:All" 
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance 
 xmlns:p="http://All">
  <element1>foo</element1>
  <element2>bar</element2>
</p:All>

代わりに、set メソッドが逆の順序で呼び出された場合は、このビジネス・オブジェクトがシリアライズされると、以下の XML が生成されます。

	DataObject all = ...
	all.set("element2", "bar");
	all.set("element1", "foo");

<?xml version="1.0" encoding="UTF-8"?>
<p:All xsi:type="p:All" 
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance 
 xmlns:p="http://All">
  <element2>bar</element2>
  <element1>foo</element1>
</p:All>

Sequence の順序を変更する必要がある場合、Sequence クラスにはユーザーが Sequence の順序を変更できるよう、基本的な add、remove、および move メソッドがあります。


concept 概念トピック

ご利用条件 | フィードバック


タイムスタンプ・アイコン 最終更新: 2010/07/05


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/doc/cbo_whydatasequence.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています (http://www.eclipse.org)。