XML 데이터 바인딩에 JAXB 사용
JAXB(Java™ Architecture for XML Binding)는 단순화된 웹 서비스 개발을 위해 Java 클래스 및 XML 스키마를 맵핑하는 쉽고 편리한 방법을 제공하는 Java 기술입니다. JAXB는 XML 문서를 Java 오브젝트로(부터) 마샬링(marshalling)하고 역마샬링(unmarshalling)하는 것을 지원하기 위한 xjc 스키마 컴파일러, schemagen 스키마 생성기 및 런타임 프레임워크를 제공합니다.
이 태스크 정보
JAXB는 스키마와 Java 오브젝트 그리고 XML 인스턴스 문서와 Java 오브젝트 인스턴스 사이에 변환을 사용으로 설정하는 XML-to-Java 바인딩 기술입니다. JAXB 기술은 XML 문서에 대한 액세스를 단순화하는 런타임 API 및 동반 도구로 구성됩니다. Java 클래스와 XML 스키마 사이에 맵핑을 설정하기 위해 JAXB API와 도구를 사용할 수 있습니다. XML 스키마는 데이터 요소와 XML 문서의 구조를 정의합니다. JAXB 기술은 사용자가 자신의 XML 문서를 Java 오브젝트로(부터) 변환할 수 있도록 하는 도구를 제공합니다. XML 문서에 저장된 데이터는 XML 데이터 구조를 이해할 필요 없이 액세스 가능합니다.
JAXB는 이 제품 내의 JAX-WS(Java API for XML Web Services) 도구 및 구현에서 사용되는 기본 데이터 바인딩 기술입니다. JAX-WS 애플리케이션에서 사용할 JAXB 오브젝트를 개발할 수 있습니다. 또한 Java 애플리케이션에서 XML을 조작하기 위해 XML 데이터 바인딩 기술을 레버리징하는 편리한 방법으로 JAXB를 JAX-WS와는 독립적으로 사용할 수도 있습니다.


JAXB는 xjc 스키마 컴파일러 도구, schemagen 스키마 생성기 도구, 런타임 프레임워크를 제공합니다. xjc 스키마 컴파일러 도구로 XSD(XML Schema Definition)를 시작하여 XSD 스키마에서 정의된 요소 및 유형에 맵핑하는 JavaBeans 세트를 작성할 수 있습니다. JavaBeans 세트로 시작하고 schemagen 스키마 생성기 도구를 사용하여 XML 스키마를 작성할 수도 있습니다. 스키마 컴파일러 또는 스키마 생성기 명령행 도구를 사용하면 Java 오브젝트로(부터) XML 문서를 변환할 수 있으며 결과로 발생하는 Java 클래스를 사용하여 웹 서비스 애플리케이션을 어셈블할 수 있습니다.
명령행에서 도구를 사용하는 것 외에도 Ant 빌드 환경에서 이러한 JAXB 도구를 호출할 수 있습니다. Ant 빌드 환경 내에서 com.sun.tools.xjc.XJCTask Ant 태스크를 사용하여 xjc 스키마 컴파일러 도구를 호출하십시오. Ant 빌드 환경에서 com.sun.tools.jxc.SchemaGenTask Ant 태스크를 사용하여 schemagen 스키마 생성기 도구를 호출하십시오. 이러한 Ant 태스크에서는 com.ibm.jaxb.tools.jar 및 com.ibm.jaxws.tools.jar 파일이 클래스 경로에 있어야 합니다.
JAXB 어노테이션이 있는 클래스 및 아티팩트에는 JAXB 런타임 API에서 XML 인스턴스 문서를 처리하는 데 필요한 모든 정보가 들어 있습니다. JAXB 런타임 API를 사용하여 JAXB 오브젝트를 XML 파일로 마샬링(marshalling)하고 XML 문서를 다시 JAXB 클래스 인스턴스로 역마샬링(unmarshalling)할 수 있습니다. JAXB 바인딩 패키지 javax.xml.bind는 컨텐츠 클래스에서 직접 사용되는 인터페이스와 추상 클래스를 정의합니다. 또한 패키지는 마샬링(marshalling) 및 역마샬링(unmarshalling) API를 정의합니다.
JAXB 바인딩 사용자 정의를 선택적으로 사용하여 기본적으로 생성된 유형 맵핑을 대체할 수 있습니다. 소스 스키마에서 인라인 어노테이션을 사용하거나 Java 유형 맵핑을 제어하기 위해 JAXB 바인딩 컴파일러 xjc에 사용자 정의를 전달하는 외부 바인딩 사용자 정의를 사용하여 JAXB 바인딩을 사용자 정의할 수 있습니다. 또는 Java 어노테이션을 기존 Java 클래스에 추가하여 스키마 또는 XML 유형 맵핑을 제어하기 위해 스키마 생성기 schemagen에 전달할 수 있습니다. 바인딩 사용자 정의 옵션 및 Java 어노테이션과 관련된 정보에 대해서는 JAXB 스펙을 참조하십시오.
JAXB를 사용하여, 다음과 같은 방법으로 데이터 오브젝트를 조작할 수 있습니다.
프로시저
- Java 클래스로부터 XML 스키마를 생성하십시오. 스키마 생성기 schemagen 명령을 사용하여 Java 클래스에서 XML 스키마를 생성하십시오.
- XML 스키마에서 Java 클래스를 생성하십시오. 스키마 컴파일러 xjc 명령을 사용하여 XML 스키마로부터 JAXB 어노테이션이 있는 일련의 Java 클래스를 작성하십시오.
- XML 문서를 마샬링(marshalling) 및 역마샬링(unmarshalling)하십시오. XML 스키마와 Java 클래스 간에 맵핑이 있는 경우 JAXB 바인딩 런타임을 사용하여 Java 오브젝트로(부터) XML 인스턴스 문서를 변환하십시오.