32장. 기본 데이터 바인딩 개념


초록

Apache CXF가 유형 매핑을 처리하는 방법에 적용되는 몇 가지 일반 항목이 있습니다.

32.1. 스키마 정의 포함 및 가져오기

32.1.1. 개요

Apache CXF는 include 및 import 스키마 태그를 사용하여 스키마 정의의 포함 및 가져오기 를 지원합니다. 이러한 태그를 사용하면 외부 파일 또는 리소스의 정의를 스키마 요소의 범위에 삽입할 수 있습니다. 포함과 가져오기의 주요 차이점은 다음과 같습니다.

  • 포함에는 포함된 스키마 요소와 동일한 대상 네임스페이스에 속하는 정의가 포함됩니다.
  • 가져오기는 스키마 요소에서 다른 대상 네임스페이스에 속하는 정의를 가져옵니다.Importing comes in definitions that belong to a different target namespace from the enclosing schema element.

32.1.2. XSD:include 구문

include 지시문에는 다음 구문이 있습니다.

<include schemaLocation="anyURI" />

anyURI 에서 제공하는 참조된 스키마는 포함 스키마와 동일한 대상 네임스페이스에 속하거나 모든 대상 네임스페이스에 속하지 않아야 합니다. 참조된 스키마가 대상 네임스페이스에 속하지 않으면 포함된 스키마의 네임스페이스로 자동으로 채택됩니다.

예 32.1. “다른 스키마를 포함하는 스키마의 예” 다른 XML 스키마 문서를 포함하는 XML 스키마 문서의 예를 보여줍니다.

예 32.1. 다른 스키마를 포함하는 스키마의 예

<definitions targetNamespace="http://schemas.redhat.com/tests/schema_parser"
             xmlns:tns="http://schemas.redhat.com/tests/schema_parser"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <schema targetNamespace="http://schemas.redhat.com/tests/schema_parser"
            xmlns="http://www.w3.org/2001/XMLSchema">
      <include schemaLocation="included.xsd"/>
      <complexType name="IncludingSequence">
        <sequence>
          <element name="includedSeq" type="tns:IncludedSequence"/>
        </sequence>
      </complexType>
    </schema>
  </types>
  ...
</definitions>

예 32.2. “포함 스키마의 예” 포함된 스키마 파일의 내용을 보여줍니다.

예 32.2. 포함 스키마의 예

<schema targetNamespace="http://schemas.redhat.com/tests/schema_parser"
        xmlns="http://www.w3.org/2001/XMLSchema">
  <!-- Included type definitions -->
  <complexType name="IncludedSequence">
    <sequence>
      <element name="varInt" type="int"/>
      <element name="varString" type="string"/>
    </sequence>
  </complexType>
</schema>

32.1.3. XSD:import 구문

import 지시문에는 다음 구문이 있습니다.

<import namespace="namespaceAnyURI"
        schemaLocation="schemaAnyURI" />

가져온 정의는 namespaceAnyURI 대상 네임스페이스에 속해야 합니다. namespaceAnyURI 가 비어 있거나 지정되지 않은 상태로 남아 있는 경우 가져온 스키마 정의는 정규화되지 않습니다.

예 32.3. “다른 스키마를 가져오는 스키마의 예” 다른 XML 스키마를 가져오는 XML 스키마의 예를 보여줍니다.

예 32.3. 다른 스키마를 가져오는 스키마의 예

<definitions targetNamespace="http://schemas.redhat.com/tests/schema_parser"
             xmlns:tns="http://schemas.redhat.com/tests/schema_parser"
             xmlns:imp="http://schemas.redhat.com/tests/imported_types"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <schema targetNamespace="http://schemas.redhat.com/tests/schema_parser"
            xmlns="http://www.w3.org/2001/XMLSchema">
      <import namespace="http://schemas.redhat.com/tests/imported_types"
              schemaLocation="included.xsd"/>
      <complexType name="IncludingSequence">
        <sequence>
          <element name="includedSeq" type="imp:IncludedSequence"/>
        </sequence>
      </complexType>
    </schema>
  </types>
  ...
</definitions>

예 32.4. “가져온 스키마의 예” 가져온 스키마 파일의 내용을 표시합니다.

예 32.4. 가져온 스키마의 예

<schema targetNamespace="http://schemas.redhat.com/tests/imported_types"
        xmlns="http://www.w3.org/2001/XMLSchema">
  <!-- Included type definitions -->
  <complexType name="IncludedSequence">
    <sequence>
      <element name="varInt" type="int"/>
      <element name="varString" type="string"/>
    </sequence>
  </complexType>
</schema>

32.1.4. 참조되지 않은 스키마 문서 사용

서비스의 WSDL 문서에서 참조되지 않는 스키마 문서에 정의된 유형을 사용하는 것은 3단계 프로세스입니다.

  1. xsd2wsdl 툴을 사용하여 스키마 문서를 WSDL 문서로 변환합니다.
  2. 생성된 WSDL 문서에서 wsdl2java 툴을 사용하여 유형에 대해 Java를 생성합니다.

    중요

    wsdl2java 툴에서 WSDL 문서에서 서비스를 정의하지 않는다는 경고가 표시됩니다. 이 경고를 무시할 수 있습니다.

  3. 생성된 클래스를 classpath에 추가합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.