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


xsi:type을 사용하여 유니온 직렬화 및 직렬화 해제

XSD에서 유니온은 구성원으로 알려진 여러 단순 데이터 유형의 렉시칼 영역을 병합하는 방법입니다.

다음 XSD 예제는 정수 및 날짜 구성원을 가진 유니온을 표시합니다.

<xsd:simpleType name="integerOrDate">
	<xsd:union memberTypes="xsd:integer xsd:date"/>
</xsd:simpleType>

이러한 다중 입력은 직렬화 해제 중 및 데이터 조작 시 혼란을 일으킬 수 있습니다.

비즈니스 오브젝트는 SDO가 직렬화 시 xsi:type을 사용하도록 지원하며 XML 데이터에 xsi:type이 없는 경우에는 직렬화 해제 시 유형을 판별하는 데 사용되는 것과 동일한 알고리즘을 따릅니다.

데이터(다음 예제의 숫자 "42")가 정수로 직렬화 해제되도록 하기 위해 입력 XML에 지정된 xsi:type을 사용할 수 있습니다. 문자열 앞에 정수가 위치하도록 XSD의 유니온 구성원 목록의 순서를 지정할 수도 있습니다. 다음 예는 두 가지 메소드를 구현하는 방법을 표시합니다.

<integerOrString xsi:type="xsd:integer">42</integerOrString>

<xsd:simpleType name="integerOrString">
	<xsd:union memberTypes="xsd:integer xsd:string"/>
</xsd:simpleType>

이와 마찬가지로 데이터를 문자열로 직렬화 해제하려는 경우에는 다음과 같이 변경하면 됩니다.

<integerOrString xsi:type="xsd:string">42</integerOrString>

<xsd:simpleType name="integerOrString">
	<xsd:union memberTypes="xsd:string xsd:integer"/>
</xsd:simpleType>

유니온의 첫 번째 구성원이 문자열 유형인 경우에는 정보가 전혀 유실되지 않습니다. xsi:type이 아닌 알고리즘으로 항상 선택되는 모든 데이터도 보존할 수 있습니다. 문자열 이외의 유형을 사용하려면 XML에서 xsi:type을 사용하거나 XSD에서 구성원 유형을 다시 정렬하여 다른 구성원이 데이터를 승인할 수 있게 해야 합니다.


concept 개념 주제

이용약관 | 피드백


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


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/doc/cbo_union.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
이 Information Center는 Eclipse 기술을 기반으로 합니다(http://www.eclipse.org 웹 사이트 참조).