검색

34.4. lists

download PDF

34.4.1. 개요

XML 스키마는 공백으로 구분된 단순 형식 목록인 데이터 형식을 정의하는 메커니즘을 지원합니다. 목록 유형을 사용하는 요소 primeList 의 예는 예 34.7. “목록 유형 예” 에 표시되어 있습니다.

예 34.7. 목록 유형 예

<primeList>1 3 5 7 9 11 13<\primeList>

XML Schema 목록 유형은 일반적으로 Java List<T> 오브젝트에 매핑됩니다. 이 패턴과 유일한 변형은 메시지 부분이 XML Schema 목록 유형의 인스턴스에 직접 매핑되는 경우입니다.

34.4.2. XML 스키마에서 목록 유형 정의

XML Schema 목록 유형은 간단한 유형이며, 이러한 유형은 simpleType 요소를 사용하여 정의됩니다. 목록 유형을 정의하는 데 사용되는 가장 일반적인 구문은 예 34.8. “XML 스키마 목록 형식 구문” 에 표시되어 있습니다.

예 34.8. XML 스키마 목록 형식 구문

<simpleType name="listType">
  <list itemType="atomicType">
    <facet value="value" />
    <facet value="value" />
    ...
  </list>
</simpleType>

atomicType 에 대해 제공되는 값은 목록에 있는 요소의 유형을 정의합니다. xsd:int 또는 xsd:string 또는 목록이 아닌 사용자 정의 단순 형식처럼 XML 스키마 원자성 유형으로만 빌드될 수 있습니다.It can only be one of the built in XML Schema atomic types, such as xsd:int or xsd:string, or a user-defined simple type that is not a list.

목록 유형에 나열된 요소 유형을 정의하는 것 외에도 facets를 사용하여 목록 유형의 속성을 추가로 제한할 수도 있습니다. 표 34.3. “유형 Facets 나열” 목록 유형에서 사용하는 facet를 보여줍니다.

표 34.3. 유형 Facets 나열
facet효과

길이

목록 형식의 인스턴스에 있는 요소 수를 정의합니다.Defines the number of elements in an instance of the list type.

minLength

목록 형식의 인스턴스에 허용되는 최소 요소 수를 정의합니다.

maxLength

목록 형식의 인스턴스에 허용되는 최대 요소 수를 정의합니다.Defines the maximum number of elements allowed in an instance of the list type.

enumeration

목록 형식의 인스턴스에 있는 요소에 허용되는 값을 정의합니다.Defines the allowable values for elements in an instance of the list type.

패턴

목록 형식의 인스턴스에 있는 요소의 어휘 형식을 정의합니다.Defines the lexical form of the elements in an instance of the list type. 패턴은 정규식을 사용하여 정의됩니다.

예를 들어 예 34.7. “목록 유형 예” 에 표시된 simpleList 요소에 대한 정의는 예 34.9. “목록 유형 정의” 로 표시됩니다.

예 34.9. 목록 유형 정의

<simpleType name="primeListType">
  <list itemType="int"/>
</simpleType>
<element name="primeList" type="primeListType"/>

예 34.8. “XML 스키마 목록 형식 구문” 에 표시된 구문 외에도 예 34.10. “목록 유형의 대체 구문” 에 표시된 덜 일반적인 구문을 사용하여 목록 유형을 정의할 수도 있습니다.

예 34.10. 목록 유형의 대체 구문

<simpleType name="listType">
  <list>
    <simpleType>
      <restriction base="atomicType">
        <facet value="value"/>
        <facet value="value"/>
        ...
      </restriction>
    </simpleType>
  </list>
  </simpleType>

34.4.3. 목록 유형 요소를 Java에 매핑

요소가 목록 유형을 정의하면 목록 유형이 컬렉션 속성에 매핑됩니다. 컬렉션 속성은 Java List<T> 개체입니다. List<T> 에서 사용하는 템플릿 클래스는 목록의 기본 유형에서 매핑되는 래퍼 클래스입니다. 예를 들어 예 34.9. “목록 유형 정의” 에 정의된 목록 유형은 List<Integer> 에 매핑됩니다.

래퍼 유형 매핑에 대한 자세한 내용은 “래퍼 클래스” 을 참조하십시오.

34.4.4. Java에 목록 유형 매개변수 매핑

메시지 파트가 목록 유형으로 정의되거나 목록 유형의 요소에 매핑되는 경우 결과 메서드 매개 변수는 List<T> 개체 대신 배열에 매핑됩니다.When a message part is defined as a list type, or is mapped to an element of a list type, the resulting method parameter is mapped to an array instead of a List<T > object. 배열의 기본 유형은 목록 유형의 기본 클래스의 래퍼 클래스입니다.

예를 들어 예 34.11. “목록 유형 메시지 파트가 있는 WSDL” 의 WSDL 조각은 예 34.12. “목록 유형 매개 변수가 있는 Java 메서드” 로 표시된 메서드 서명이 생성됩니다.

예 34.11. 목록 유형 메시지 파트가 있는 WSDL

<definitions ...>
  ...
  <types ...>
    <schema ... >
      <simpleType name="primeListType">
        <list itemType="int"/>
      </simpleType>
      <element name="primeList" type="primeListType"/>
    </schemas>
  </types>
  <message name="numRequest"> <part name="inputData" element="xsd1:primeList" /> </message>
  <message name="numResponse">;
    <part name="outputData" type="xsd:int">
  ...
  <portType name="numberService">
    <operation name="primeProcessor">
      <input name="numRequest" message="tns:numRequest" />
      <output name="numResponse" message="tns:numResponse" />
    </operation>
    ...
  </portType>
  ...
</definitions>

예 34.12. 목록 유형 매개 변수가 있는 Java 메서드

public interface NumberService {

    @XmlList
    @WebResult(name = "outputData", targetNamespace = "", partName = "outputData")
    @WebMethod
    public int primeProcessor(
        @WebParam(partName = "inputData", name = "primeList", targetNamespace = "...") java.lang.Integer[] inputData
    );
}
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.