34.2. 제한 사항에 따라 정의된 간단한 유형

34.2.1. 개요

XML 스키마를 사용하면 다른 기본 유형 또는 간단한 유형에서 새 유형을 파생하여 간단한 유형을 만들 수 있습니다. 간단한 유형은 simpleType 요소를 사용하여 설명합니다.

새 유형은 하나 이상의 facet로 기본 유형을 제한하여 설명합니다. 이러한 facet는 새 유형에 저장할 수 있는 유효한 값을 제한합니다. 예를 들어 간단한 유형인 SSN 을 정의할 수 있습니다. 정확히 9자 문자열입니다.

각 기본 XML 스키마 유형에는 선택적 facet 세트가 있습니다.

34.2.2. 절차

자체 간단한 유형을 정의하려면 다음을 수행합니다.

  1. 새 간단한 유형의 기본 유형을 확인합니다.
  2. 선택한 기본 유형에 대해 사용 가능한 측면을 기반으로 새 유형을 정의하는 제한 사항을 결정합니다.
  3. 이 섹션에 표시된 구문을 사용하여 계약의 유형 섹션에 적절한 simpleType 요소를 입력합니다.

34.2.3. XML 스키마에서 간단한 유형 정의

예 34.1. “간단한 유형 구문” 간단한 유형을 설명하는 구문을 보여줍니다.

예 34.1. 간단한 유형 구문

<simpleType name="typeName">
  <restriction base="baseType">
    <facet value="value" />
    <facet value="value" />
    ...
  </restriction>
</simpleType>

type 설명은 simpleType 요소로 묶여 있으며 name 속성 값으로 식별됩니다. 새로운 단순 유형이 정의되는 기본 유형은 xsd:restriction 요소의 기본 특성에 따라 지정됩니다. 각 facet 요소는 restriction 요소 내에서 지정됩니다. 사용 가능한 facet 및 유효한 설정은 기본 유형에 따라 다릅니다. 예를 들어 xsd:string 은 다음을 포함한 여러 측면이 있습니다.

  • length
  • minLength
  • maxLength
  • 패턴
  • whitespace

예 34.2. “우편 번호 간단한 유형” 미국 상태에 사용되는 두 문자 우편 코드를 나타내는 간단한 유형에 대한 정의를 표시합니다. 두 개의 대문자만 포함할 수 있습니다. TX 는 유효한 값이지만 tx 또는 tX 는 유효하지 않습니다.

예 34.2. 우편 번호 간단한 유형

<xsd:simpleType name="postalCode">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="[A-Z]{2}" />
  </xsd:restriction>
</xsd:simpleType>

34.2.4. Java에 매핑

Apache CXF는 사용자 정의 간단한 유형을 간단한 유형의 기본 유형의 Java 유형에 매핑합니다. 따라서 예 34.2. “우편 번호 간단한 유형” 에 표시된 간단한 유형 mailCode를 사용하는 모든 메시지는 postal Code 의 기본 유형이 xsd:string 이므로 문자열에 매핑됩니다. 예를 들어 예 34.3. “간단한 유형의 신용 요청” 에 표시된 WSDL 조각은 문자열 의 매개변수 postalCode 를 사용하는 Java 메서드 state() 를 생성합니다.

예 34.3. 간단한 유형의 신용 요청

<message name="stateRequest">
  <part name="postalCode" type="postalCode" />
</message>
...
<portType name="postalSupport">
  <operation name="state">
    <input message="tns:stateRequest" name="stateRec" />
    <output message="tns:stateResponse" name="credResp" />
  </operation>
</portType>

34.2.5. facet 강제

기본적으로 Apache CXF는 간단한 유형을 제한하는 데 사용되는 facet를 적용하지 않습니다. 그러나 스키마 검증을 활성화하여 facet를 적용하도록 Apache CXF 엔드포인트를 구성할 수 있습니다.

스키마 유효성 검사를 사용하도록 Apache CXF 끝점을 구성하려면 schema-validation-enabled 속성을 true 로 설정합니다. 예 34.4. “스키마 유효성 검사를 사용하도록 서비스 공급자 구성” 스키마 검증을 사용하는 서비스 공급자에 대한 구성 표시

예 34.4. 스키마 유효성 검사를 사용하도록 서비스 공급자 구성

<jaxws:endpoint name="{http://apache.org/hello_world_soap_http}SoapPort"
                wsdlLocation="wsdl/hello_world.wsdl"
                createdFromAPI="true">
  <jaxws:properties>
    <entry key="schema-validation-enabled" value="BOTH" />
  </jaxws:properties>
</jaxws:endpoint>

스키마 검증 구성에 대한 자세한 내용은 24.3.4.7절. “스키마 유효성 검사 유형 값” 을 참조하십시오.