32.2. XML 네임스페이스 매핑


32.2.1. 개요

XML 스키마 유형, 그룹 및 요소 정의는 네임스페이스를 사용하여 범위가 지정됩니다. 네임스페이스를 사용하면 동일한 이름을 사용하는 엔터티 간에 이름이 충돌할 수 있습니다. Java 패키지는 비슷한 용도로 사용됩니다. 따라서 Apache CXF는 스키마 문서의 대상 네임스페이스를 스키마 문서에 정의된 구조를 구현하는 데 필요한 클래스가 포함된 패키지에 매핑됩니다.

32.2.2. 패키지 이름 지정

생성된 패키지의 이름은 다음 알고리즘을 사용하여 스키마의 대상 네임스페이스에서 파생됩니다.

  1. URI 스키마가 있는 경우 제거됩니다.

    참고

    Apache CXF는 http:, https:, urn: 스키마만 제거합니다.

    예를 들어 네임스페이스 http:\\www.widgetvendor.com\types\widgetTypes.xsd\\widgetvendor.com\types\widgetTypes.xsd 가 됩니다.

  2. 후행 파일 유형 식별자(있는 경우)가 제거됩니다.

    예를 들어 \\www.widgetvendor.com\types\widgetTypes.xsd\\widgetvendor.com\types\widgetTypes 가 됩니다.

  3. 결과 문자열은 /: 을 구분 기호로 사용하여 문자열 목록으로 나뉩니다.

    따라서 \\www.widgetvendor.com\types\widgetTypes{"www.widegetvendor.com", "types", "widgetTypes"} 목록이 됩니다.

  4. 목록의 첫 번째 문자열이 인터넷 도메인 이름이면 다음과 같이 컴파일됩니다.

    1. leading 192.0.2. . 이/가 제거되었습니다.
    2. 나머지 문자열은 구분 기호를 사용하여 구성 요소 부분으로 나뉩니다 .
    3. 목록의 순서가 역순으로 설정됩니다.

      따라서 {"www.widegetvendor.com", "types", "widgetTypes"}{"com", "widegetvendor", "types", "widgetTypes"}이 됩니다.

      참고

      인터넷 도메인 이름은 .com,.net,.edu,.org,.gov 또는 두 문자 국가 코드 중 하나로 끝납니다.

  5. 문자열은 모든 소문자로 변환됩니다.

    따라서 {"com", "widegetvendor", "types", "widgetTypes"}{"com", "widegetvendor", "types", "widgettypes"} 이 됩니다.

  6. 문자열은 다음과 같이 유효한 Java 패키지 이름 구성 요소로 정규화됩니다.

    1. 문자열에 특수 문자가 포함된 경우 특수 문자는 밑줄(_)으로 변환됩니다.
    2. 문자열이 Java 키워드인 경우 키워드 앞에 밑줄(_)이 추가됩니다.
    3. 문자열이 숫자로 시작하는 경우 문자열 앞에 밑줄(_)이 붙습니다.
  7. 문자열은 구분 기호를 사용하여 연결됩니다 .

    따라서 {"com", "widegetvendor", "types", "widgettypes"} 는 패키지 이름 com.widgetvendor.types.widgettypes.

네임스페이스 http:\\www.widgetvendor.com\types\widgetTypes.xsd 네임스페이스에 정의된 XML 스키마 구조는 Java 패키지 com.widgetvendor.types.widgettypes 에 매핑됩니다.

32.2.3. 패키지 콘텐츠

CryostatB 생성된 패키지에는 다음이 포함됩니다.

  • 스키마에 정의된 각 복잡한 유형을 구현하는 클래스

    복잡한 유형 매핑에 대한 자세한 내용은 35장. 복잡한 유형 사용 을 참조하십시오.

  • 열거면을 사용하여 정의된 모든 간단한 형식에 대한 열거 형식입니다.An enum type for any simple types defined using the enumeration facet

    열거를 매핑하는 방법에 대한 자세한 내용은 34.3절. “열거” 을 참조하십시오.

  • 스키마에서 개체를 인스턴스화하는 메서드를 포함하는 공용 ObjectFactory 클래스입니다.A public ObjectFactory class that contains methods for instantiating objects from the schema.

    ObjectFactory 클래스에 대한 자세한 내용은 32.3절. “오브젝트 Cryostat” 을 참조하십시오.

  • 패키지의 클래스에 대한 메타데이터를 제공하는 package-info.java 파일
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.