Red Hat Training

A Red Hat training course is available for Red Hat Fuse

32.2. XML 네임스페이스 매핑

32.2.1. 개요

XML Schema 유형, 그룹 및 요소 정의는 네임스페이스를 사용하여 범위가 지정됩니다. 네임스페이스는 동일한 이름을 사용하는 엔터티 간에 충돌할 수 있는 기능을 방지합니다. 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. 파일 형식 식별자가 있는 경우 제거됩니다.The trailing file type identifier, if present is removed.

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

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

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

  4. 목록의 첫 번째 문자열이 인터넷 도메인 이름인 경우 다음과 같이 분해됩니다.

    1. 선행 www. 는 제거됩니다.
    2. 나머지 문자열은 . 을 구분 기호로 사용하여 해당 구성 요소로 나뉩니다.
    3. 목록의 순서는 역순으로 정렬됩니다.

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

      참고

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

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

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

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

    1. 문자열에 특수 문자가 포함된 경우 특수 문자는 밑줄(_)으로 변환됩니다.
    2. 문자열이 Java 키워드인 경우 키워드 앞에 밑줄(_)이 붙습니다.
    3. 문자열이 numeral로 시작하는 경우 문자열 앞에 밑줄(_)이 붙습니다.
  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. 패키지 콘텐츠

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

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

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

  • 열거형 facet를 사용하여 정의된 모든 단순 형식에 대한 열거형 유형

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

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

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

  • package-info.java 파일은 패키지의 클래스에 대한 메타데이터를 제공합니다.