JAXB

JAXB (Java™ Architecture for XML Binding) 는 웹 서비스의 단순화된 개발을 위해 Java 클래스 및 XML 스키마를 맵핑하는 쉽고 편리한 방법을 제공하는 Java 기술입니다. JAXB는 Java 응용프로그램에 XML 스키마를 바인드하는 데 Java 응용프로그램에서 플랫폼 중립적인 XML 데이터의 유연성을 활용하므로 XML 프로그래밍에 대한 폭넓은 지식은 필요하지 않습니다. JAXB는 XML 스키마와 Java 클래스 간에 변환하기 위해 xjc 스키마 컴파일러 도구 및 schemagen 스키마 생성기 도구를 제공합니다.

JAXB는 스키마와 Java 오브젝트 사이, XML 인스턴스 문서와 Java 오브젝트 인스턴스 사이에서 변환을 지원하는 XML 대 Java 바인딩 기술입니다. JAXB는 XML 문서에 대한 액세스를 단순화하는 런타임 API(application programming interface)와 수반되는 도구로 구성됩니다. JAXB는 XML 스키마를 준수하고 유효성 검증하는 XML 문서 빌드에도 사용됩니다. JAX-WS (Java API for XML-Based Web Services) 는 JAXB API및 도구를 Java 오브젝트와 XML 문서 간의 맵핑을 위한 바인딩 기술로 활용합니다. JAX-WS 도구에는 Java 오브젝트와 XML 문서 간의 양방향 맵핑의 기본 데이터 바인딩을 위한 JAXB 도구가 필요합니다.

이 버전의 애플리케이션 서버는 JAXB 2.2 스펙을 지원합니다. JAX-WS 2.2에는 데이터 바인딩을 위한 JAXB 2.2가 필요합니다. JAXB 2.2는 스키마 생성 향상 및 JAX-WS 통합 향상을 위한 어노테이션에 대한 작은 개선사항을 제공합니다.

JAXB는 xjc 스키마 컴파일러 도구, schemagen 스키마 생성기 도구, 런타임 프레임워크를 제공합니다. XSD 스키마에 정의된 요소 및 유형에 맵핑된 일련의 JavaBeans를 작성하기 위해 xjc 스키마 컴파일러 도구를 사용하여 XML 스키마 정의(XSD)를 시작할 수 있습니다. 또한 일련의 JavaBean으로 시작하여 schemagen 스키마 생성기 도구를 사용하여 XML 스키마를 작성할 수도 있습니다. XML 스키마와 Java 클래스 사이의 맵핑이 존재하면, XML 인스턴스 문서는 JAXB 바인딩 런타임 API를 사용하여 Java 오브젝트 사이에서 변환될 수 있습니다. XML 문서로 저장된 데이터는 데이터 구조를 이해하지 않고도 액세스 가능합니다. 그런 후 결과 Java 클래스를 사용하여 웹 서비스 응용프로그램을 어셈블할 수 있습니다.

JAXB 어노테이션이 있는 클래스 및 아티팩트에는 XML 인스턴스 문서 처리를 위해 JAXB 런타임 API에 필요한 모든 정보가 포함됩니다. JAXB 런타임 API는 XML로의 JAXB 오브젝트 마샬링 및 XML 문서에서 JAXB 클래스 인스턴스로의 마샬링 해제를 지원합니다. 선택적으로 JAXB를 사용하여 XML 유효성 검증을 제공하여 수신 및 출력 XML 문서가 XML 스키마에 정의된 XML 제한조건을 준수하도록 할 수 있습니다.

JAXB는 이 제품에서 JAX-WS (Java API for XML Web Services) 도구 및 구현에 사용되는 기본 데이터 바인딩 기술입니다. JAX-WS 애플리케이션 내에서 사용되도록 JAXB 오브젝트를 개뱔할 수도 있습니다.

Java 응용프로그램 내에서 XML을 조작할 XML 데이터 바인딩 기술을 활용하려면 JAX-WS와는 무관하게 JAXB를 사용할 수도 있습니다.

그림 1. JAXB 아키텍처
JAXB 아키텍처는 스키마와 Java 오브젝트 간, 그리고 XML 인스턴스 문서와 Java 오브젝트 인스턴스 간에 변환하기 위한 XML 바인딩 기술을 설명합니다.