2.5.2. 배열 정의
2.5.2.1. 개요
Apache CXF는 계약에서 배열을 정의하는 두 가지 방법을 지원합니다. 첫 번째는 maxOccurs
특성에 값이 1보다 큰 단일 요소를 사용하여 복잡한 형식을 정의합니다. 두 번째는 SOAP 배열을 사용하는 것입니다. SOAP 배열은 다차원 배열을 쉽게 정의하고 스파스로 채워진 배열을 전송할 수 있는 기능과 같은 추가 기능을 제공합니다.
2.5.2.2. 복합 형식 배열
복합 형식 배열은 시퀀스 복잡한 유형의 특수한 경우입니다. 단일 요소로 복잡한 유형을 정의하고 maxOccurs
특성에 대한 값을 지정하기만 하면 됩니다. 예를 들어, 20개의 부동 소수점 숫자로 이루어진 배열을 정의하려면 예 2.9. “복잡한 유형 배열” 에 표시된 것과 유사한 복잡한 유형을 사용합니다.
예 2.9. 복잡한 유형 배열
<complexType name="personalInfo"> <element name="averages" type="xsd:float" maxOccurs="20"/> </complexType>
minOccurs
특성의 값을 지정할 수도 있습니다.You can also specify a value for the minOccurs attribute.
2.5.2.3. SOAP 배열
SOAP 배열은 wsdl:arrayType
요소를 사용하여 SOAP-ENC:Array
기본 형식에서 파생하여 정의됩니다. 이에 대한 구문은 예 2.10. “wsdl:arrayType을 사용하여 파생되는 SOAP 배열의 구문” 에 표시되어 있습니다. definitions
요소가 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
를 선언하는지 확인합니다.
예 2.10. wsdl:arrayType을 사용하여 파생되는 SOAP 배열의 구문
<complexType name="TypeName"> <complexContent> <restriction base="SOAP-ENC:Array"> <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="ElementType<ArrayBounds>"/> </restriction> </complexContent> </complexType>
TypeName 은 이 구문을 사용하여 새로 정의된 배열 유형의 이름을 지정합니다. elementType 은 배열의 요소 형식을 지정합니다. ArrayBounds 배열의 차원 수를 지정합니다. 단일 차원 배열을 지정하려면 []
.2를 사용하여 2 차원 배열을 지정하려면 [][]
또는 [,]
를 사용합니다.
예를 들어 예 2.11. “SOAP 배열의 정의” 에 표시된 SOAP 배열인 SOAPStrings는 1차원 문자열 배열을 정의합니다. wsdl:arrayType
속성은 배열 요소, xsd:string
및 차원의 수를 지정합니다. []
은 하나의 차원을 의미합니다.
예 2.11. SOAP 배열의 정의
<complexType name="SOAPStrings"> <complexContent> <restriction base="SOAP-ENC:Array"> <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/> </restriction> </complexContent> </complexType>
SOAP 1.1 사양에 설명된 대로 간단한 요소를 사용하여 SOAP Array를 설명할 수도 있습니다. 이에 대한 구문은 예 2.12. “요소를 사용하여 파생되는 SOAP 배열의 구문” 에 표시되어 있습니다.
예 2.12. 요소를 사용하여 파생되는 SOAP 배열의 구문
<complexType name="TypeName"> <complexContent> <restriction base="SOAP-ENC:Array"> <sequence> <element name="ElementName" type="ElementType" maxOccurs="unbounded"/> </sequence> </restriction> </complexContent> </complexType>
이 구문을 사용하는 경우 요소의 maxOccurs
특성은 항상 unbounded
로 설정해야 합니다.