JAXB
1. 개요
JAXB(Java Architecture for XML Binding)는 XML 스키마를 자바 클래스로 변환하거나, 자바 클래스로부터 XML 스키마를 생성하는 기술이다. `xjc` 도구를 사용하여 XML 스키마를 자바 클래스로 변환하며, 생성된 클래스는 `@XmlRootElement`, `@XmlElement` 등의 어노테이션을 사용하여 XML 구조에 맞게 매핑된다. 또한, `schemagen` 도구를 통해 어노테이션이 적용된 클래스 집합으로부터 XML 스키마를 생성할 수 있다. JAXB는 Java EE 및 Java SE의 일부로 제공되며, XML 스키마 타입과 자바 자료형 간의 매핑을 정의하고 있다. 주요 버전으로는 JAXB 1.0, 2.0, 2.2.3, 2.2.8, 2.3.0 등이 있다.
| 종류 | 자바 기술 |
|---|---|
| 분야 | XML 데이터 바인딩 |
| 최신 버전 | 4.0.2 (2023년 12월 14일) |
| 라이선스 | CDDL 1.1 또는 GPLv2 |
| 개발자 | 오라클 및 자바 커뮤니티 |
|---|---|
| 최초 출시 | 2003년 |
| 프로그래밍 언어 | 자바 |
|---|
| JSR | 31 222 |
|---|---|
| JSR 명칭 | XML 데이터 바인딩 사양 자바 XML 바인딩 아키텍처 2.0 |
-
자바 사양 요청 -
자바 플랫폼, 마이크로 에디션
자바 ME는 임베디드 및 모바일 장치에서 자바 앱을 실행하는 플랫폼으로, 피처폰에서 주로 사용되었으며 다양한 프로파일과 에뮬레이터, 개발 도구를 제공하고 JSR을 통해 기능이 확장된다. -
자바 사양 요청 -
자바 커뮤니티 프로세스
-
자바 플랫폼, 엔터프라이즈 에디션 -
IBM 웹스피어
IBM 웹스피어는 IBM에서 출시한 기업용 소프트웨어 제품군 브랜드로, 다양한 애플리케이션 인프라, 비즈니스 프로세스 통합, 정보 통합 및 개발 도구를 포함한다. -
자바 플랫폼, 엔터프라이즈 에디션 -
자카르타 서버 페이지
자카르타 서버 페이지(JSP)는 웹 애플리케이션 개발에 사용되는 서버 측 스크립팅 기술로, 서블릿으로 변환되어 실행되고 HTML 형태로 결과를 반환하며, 지시어, 스크립틀릿, 표현식, 액션 등의 문법 요소, 표현 언어(EL), JSTL을 통해 동적인 웹 페이지를 구현하고 개발 편의성을 높였다.
2. 사용법
xjc 도구를 사용하여 XML 스키마 및 기타 스키마 파일 유형(Java 1.6부터 RELAX NG, XML DTD, WSDL이 실험적으로 지원됨)을 자바 클래스 표현으로 변환할 수 있다. 생성된 클래스는 javax.xml.bind.annotation.* 네임스페이스의 어노테이션 (예: @XmlRootElement 및 @XmlElement)을 사용하여 XML 구조에 맞게 마크업된다. XML 목록 시퀀스는 java.util.List 유형의 속성으로 표시된다. 자바 객체를 XML로 변환하는 마샬러(marshaller)와 XML을 자바 객체로 변환하는 언마샬러(unmarshaller)는 JAXBContext의 인스턴스를 통해 생성된다.
또한 JAXB에는 어노테이션이 달린 클래스 집합에서 XML 스키마를 생성하는 schemagen 도구가 포함되어 있다. 이는 본질적으로 xjc의 반대 기능을 수행한다.
3. 기본 자료형 바인딩
JAXB는 XML 스키마(XSD)의 자료형을 자바 자료형으로 변환하는 기본적인 매핑 규칙을 가지고 있다. 구체적인 매핑 관계는 아래 'XML 스키마 타입과 자바 자료형 매핑' 섹션의 표에서 확인할 수 있다.
3.1. XML 스키마 타입과 자바 자료형 매핑
다음 표는 XML 스키마(XSD) 자료형을 JAXB의 자바 자료형과 매핑한 것을 나열한 것이다.