32.2. XML 네임스페이스 매핑
32.2.1. 개요
XML 스키마 유형, 그룹 및 요소 정의는 네임스페이스를 사용하여 범위가 지정됩니다. 네임스페이스를 사용하면 동일한 이름을 사용하는 엔터티 간에 이름이 충돌할 수 있습니다. Java 패키지는 비슷한 용도로 사용됩니다. 따라서 Apache CXF는 스키마 문서의 대상 네임스페이스를 스키마 문서에 정의된 구조를 구현하는 데 필요한 클래스가 포함된 패키지에 매핑됩니다.
32.2.2. 패키지 이름 지정
생성된 패키지의 이름은 다음 알고리즘을 사용하여 스키마의 대상 네임스페이스에서 파생됩니다.
URI 스키마가 있는 경우 제거됩니다.
참고Apache CXF는 http:, https:, urn: 스키마만 제거합니다.
예를 들어 네임스페이스
http:\\www.widgetvendor.com\types\widgetTypes.xsd
는\\widgetvendor.com\types\widgetTypes.xsd
가 됩니다.후행 파일 유형 식별자(있는 경우)가 제거됩니다.
예를 들어
\\www.widgetvendor.com\types\widgetTypes.xsd
는\\widgetvendor.com\types\widgetTypes
가 됩니다.결과 문자열은
/
및:
을 구분 기호로 사용하여 문자열 목록으로 나뉩니다.따라서
\\www.widgetvendor.com\types\widgetTypes
는{"www.widegetvendor.com", "types", "widgetTypes"}
목록이 됩니다.목록의 첫 번째 문자열이 인터넷 도메인 이름이면 다음과 같이 컴파일됩니다.
-
leading 192.0.2.
.
이/가 제거되었습니다. -
나머지 문자열은 구분 기호를 사용하여 구성 요소 부분으로 나뉩니다
.
목록의 순서가 역순으로 설정됩니다.
따라서
{"www.widegetvendor.com", "types", "widgetTypes"}
는{"com", "widegetvendor", "types", "widgetTypes"}
이 됩니다.참고인터넷 도메인 이름은
.com
,.net
,.edu
,.org
,.gov
또는 두 문자 국가 코드 중 하나로 끝납니다.
-
leading 192.0.2.
문자열은 모든 소문자로 변환됩니다.
따라서
{"com", "widegetvendor", "types", "widgetTypes"}
는{"com", "widegetvendor", "types", "widgettypes"}
이 됩니다.문자열은 다음과 같이 유효한 Java 패키지 이름 구성 요소로 정규화됩니다.
-
문자열에 특수 문자가 포함된 경우 특수 문자는 밑줄(
_
)으로 변환됩니다. -
문자열이 Java 키워드인 경우 키워드 앞에 밑줄(
_
)이 추가됩니다. -
문자열이 숫자로 시작하는 경우 문자열 앞에 밑줄(
_
)이 붙습니다.
-
문자열에 특수 문자가 포함된 경우 특수 문자는 밑줄(
문자열은 구분 기호를 사용하여 연결됩니다
.
따라서
{"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
파일