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


비즈니스 오브젝트의 배열

요소가 데이터 인스턴스를 두 개 이상 포함할 수 있도록 비즈니스 오브젝트에서 요소의 배열을 정의할 수 있습니다.

목록 유형을 사용하여 비즈니스 오브젝트에 이름 지정된 단일 요소의 배열을 작성할 수 있습니다. 이 경우 해당 요소를 사용하여 데이터의 다중 인스턴스를 포함할 수 있습니다. 예를 들어, 배열을 사용하여 비즈니스 오브젝트 랩퍼에 문자열로 정의되어 있는 telephone이라는 요소 안에 여러 개의 전화 번호를 저장할 수 있습니다. 또한 maxOccurs 값을 사용하는 데이터 인스턴스 수를 지정하여 배열의 크기를 정의할 수 있습니다. 다음 예제 코드는 해당 요소의 데이터에 대해 세 개의 인스턴스를 보유하는 배열의 작성 방법을 표시합니다.
<xsd:element name="telephone" type="xsd:string" maxOccurs="3"/>
이 결과로 최대 세 개의 데이터 인스턴스를 보유할 수 있는 요소 telephone의 목록 색인이 작성됩니다. 또한 배열에 항목을 하나만 포함하려는 경우 값 minOccurs를 사용할 수 있습니다.
결과 배열은 다음 두 항목으로 구성됩니다.
하지만 이 배열을 작성하기 위해서는 랩퍼를 정의하여 중간 단계를 수행해야 합니다. 이 랩퍼는 사실상 요소의 특성을 배열 오브젝트로 바꿉니다. 위 예제에서 ArrayOfTelephone 오브젝트를 작성하여 요소 telephone을 배열로 정의할 수 있습니다. 다음 코드 예제는 이 타스크를 수행하는 방법을 보여줍니다.
<?xml version="1.0" encoding="UTF-8"?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 	 	  <xsd:element name="Customer">
 		<xsd:complexType>
 			<xsd:sequence>
 <xsd:element name="name" type="xsd:string"/>
 	        <xsd:element name="ArrayOfTelephone" type="ArrayOfTelephone"/>
 	  </xsd:sequence>
 		</xsd:complexType>
 	</xsd:element>

 	  <xsd:complexType name="ArrayOfTelephone">
 <xsd:sequence maxOccurs="3">
 	      <xsd:element name="telephone" type="xsd:string" nillable="true"/>
 	  </xsd:sequence>
 		</xsd:complexType>
</xsd:schema>

telephone 요소는 이제 ArrayOfTelephone 랩퍼 오브젝트의 하위로 표시됩니다.

위 예제에서 telephone 요소가 nillable이라는 특성을 포함한다는 점에 유의하십시오. 배열 색인의 특정 항목에 데이터를 포함하지 않으려면 이 특성을 true로 설정할 수 있습니다. 다음 예제 코드는 배열에 데이터를 나타낼 수 있는 방법을 표시합니다.
<Customer>
	  <name>Bob</name>
	  <ArrayOfTelephone>
	    <telephone>111-1111</telephone>
	    <telephone xsi:nil="true"/>
	    <telephone>333-3333</telephone>
	  </ArrayOfTelephone>
	</Customer>
이 경우, telephone 요소의 배열 색인에서 첫 번째 및 세 번째 항목은 데이터를 포함하고 두 번째 항목은 데이터를 포함하지 않습니다. telephone 요소에 대해 nillable 특성을 사용하지 않은 경우 처음 두 요소에 데이터가 포함되어 있어야 합니다.
비즈니스 오브젝트 배열의 순서를 처리할 대체 메소드로 WebSphere® Process Server에 서비스 데이터 오브젝트(SDO) 순서 API를 사용할 수 있습니다. 다음 예제 코드는 위에 표시된 것과 동일한 데이터로 telephone 요소의 배열을 작성합니다.
	DataObject customer = ...
	customer.setString("name", "Bob");
	 
	DataObject tele_array = customer.createDataObject("ArrayOfTelephone");
	Sequence seq = tele_array.getSequence();  // The array is sequenced
	seq.add("telephone", "111-1111");
	seq.add("telephone", null);
	seq.add("telephone", "333-3333");
아래 예제와 유사한 코드를 사용하여 주어진 요소 배열 색인의 데이터를 리턴할 수 있습니다.
String tele3 = tele_array.get("telephone[3]");  // tele3 = "333-3333"
이 예제에서 tele3이라는 문자열은 데이터 "333-3333"을 리턴합니다.

JMS 또는 MQ 메시지 큐에 놓인 분리된 데이터 또는 고정 너비를 사용하여 목록 색인에 배열의 데이터 항목을 채울 수 있습니다. 또한 올바르게 형식화된 데이터를 포함하는 일반 텍스트 파일을 사용하여 이 타스크를 수행할 수 있습니다.


concept 개념 주제

이용약관 | 피드백


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


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