WebSphere Enterprise Service Bus, 버전 6.2.0 운영 체제: AIX, HP-UX, i5/OS, Linux, Solaris, Windows


DataObject에 순서가 있는지 알아야 하는 이유

순서가 있는 DataObject에 대해 작업 중인 경우 데이터가 설정된 순서를 알아야 합니다. 이 때문에 값이 설정된 순서에 주의를 기울여야 합니다.

순서가 지정되지 않은 DataObject에서는 임의의 순서로 설정에 액세스할 수 있습니다. 이는 모든 키가 동일한 값으로 설정된 맵과 같이 작동합니다. 키가 설정된 순서는 중요하지 않으며 맵의 데이터는 서로 같고 XML에 동일하게 직렬화됩니다.

DataObject에 순서가 지정된 경우 목록에 데이터를 추가하는 것과 마찬가지로 데이터가 설정된 순서가 순서(Sequence)에 레코드됩니다. 이로 인해 이름/값 쌍별(DataObject API) 및 데이터가 설정된 순서별(Sequence API)의 두 가지 방법으로 데이터에 액세스할 수 있습니다. DataObject set(...) 또는 Sequence add(...) API를 사용하여 구조를 유지할 수 있습니다. 이러한 순서 지정은 XML을 직렬화하는 방법에 영향을 미칩니다.

예를 들면, 아래 <all/> 태그 XSD와 같습니다. 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)의 순서를 변경해야 하는 경우에는 순서 클래스에 있는 기본 add, remove 및 move 메소드를 사용하여 사용자가 순서를 변경할 수 있습니다.


concept 개념 주제

이용약관 | 피드백


시간소인 아이콘 마지막 갱신 날짜: 2010년 7월 7일 수요일


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.
이 Information Center는 Eclipse 기술을 기반으로 합니다(http://www.eclipse.org 웹 사이트 참조).