JAXB
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
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 등이 있다.
더 읽어볼만한 페이지
- 자바 사양 요청 - 자바 플랫폼, 마이크로 에디션
자바 ME는 임베디드 및 모바일 장치에서 자바 앱을 실행하는 플랫폼으로, 피처폰에서 주로 사용되었으며 다양한 프로파일과 에뮬레이터, 개발 도구를 제공하고 JSR을 통해 기능이 확장된다. - 자바 사양 요청 - 자바 커뮤니티 프로세스
자바 커뮤니티 프로세스는 자바 기술 명세의 개발 및 관리를 담당하는 조직으로, 자바 기술 표준화와 발전에 기여해왔으나 운영 방식에 대한 비판과 여러 논란에 직면해 있다. - 자바 플랫폼, 엔터프라이즈 에디션 - IBM 웹스피어
IBM 웹스피어는 IBM에서 출시한 기업용 소프트웨어 제품군 브랜드로, 다양한 애플리케이션 인프라, 비즈니스 프로세스 통합, 정보 통합 및 개발 도구를 포함한다. - 자바 플랫폼, 엔터프라이즈 에디션 - 자카르타 서버 페이지
자카르타 서버 페이지(JSP)는 웹 애플리케이션 개발에 사용되는 서버 측 스크립팅 기술로, 서블릿으로 변환되어 실행되고 HTML 형태로 결과를 반환하며, 지시어, 스크립틀릿, 표현식, 액션 등의 문법 요소, 표현 언어(EL), JSTL을 통해 동적인 웹 페이지를 구현하고 개발 편의성을 높였다.
JAXB | |
---|---|
개요 | |
종류 | 자바 기술 |
분야 | XML 데이터 바인딩 |
최신 버전 | 4.0.2 (2023년 12월 14일) |
라이선스 | CDDL 1.1 또는 GPLv2 |
개발 | |
개발자 | 오라클 및 자바 커뮤니티 |
최초 출시 | 2003년 |
기술 정보 | |
프로그래밍 언어 | 자바 |
표준 | |
JSR | 31 222 |
JSR 명칭 | XML 데이터 바인딩 사양 자바 XML 바인딩 아키텍처 2.0 |
2. 사용법
xjc 도구를 사용하여 XML 스키마 및 기타 스키마 파일 유형(Java 1.6부터 RELAX NG, XML DTD, WSDL이 실험적으로 지원됨)을 자바 클래스 표현으로 변환할 수 있다.[3] 생성된 클래스는 javax.xml.bind.annotation.* 네임스페이스의 어노테이션 (예: @XmlRootElement 및 @XmlElement)을 사용하여 XML 구조에 맞게 마크업된다. XML 목록 시퀀스는 java.util.List 유형의 속성으로 표시된다. 자바 객체를 XML로 변환하는 마샬러(marshaller)와 XML을 자바 객체로 변환하는 언마샬러(unmarshaller)는 JAXBContext의 인스턴스를 통해 생성된다.
JAXB는 XML 스키마(XSD)의 자료형을 자바 자료형으로 변환하는 기본적인 매핑 규칙을 가지고 있다. 구체적인 매핑 관계는 아래 'XML 스키마 타입과 자바 자료형 매핑' 섹션의 표에서 확인할 수 있다.[13]
또한 JAXB에는 어노테이션이 달린 클래스 집합에서 XML 스키마를 생성하는 schemagen 도구가 포함되어 있다. 이는 본질적으로 xjc의 반대 기능을 수행한다.
3. 기본 자료형 바인딩
3. 1. XML 스키마 타입과 자바 자료형 매핑
다음 표는 XML 스키마(XSD) 자료형을 JAXB의 자바 자료형과 매핑한 것을 나열한 것이다.[13]
4. 버전 역사
JAXB는 Java EE 및 Java SE 플랫폼의 일부로 포함되어 발전해왔다. 초기 버전인 JAXB 1.0은 JSR 31 명세를 따랐으며, 이후 Java EE 5 및 Java SE 6에 포함된 JAXB 2.0부터는 JSR 222 명세를 기반으로 한다.[11] 이후 Java SE 버전이 올라가면서 JAXB도 업데이트되었으며, Java SE 9에서는 JAXB 2.3.0[7]이 포함되었으나 해당 모듈(java.xml.bind
)은 더 이상 사용되지 않음(deprecated)으로 표시되었다.[8]
4. 1. 주요 버전
wikitextJAXB 버전 | 관련 Java 플랫폼 | 관련 JSR / 특징 |
---|---|---|
1.0 | - | JSR 31 |
2.0 | Java EE 5, Java SE 6 [11] | JSR 222 |
2.2.3 | Java SE 7 [10] | JSR 222, 유지보수 릴리스 2 |
2.2.8 | Java SE 8 [9] | - |
2.3.0 | Java SE 9 [7] | 모듈 java.xml.bind (더 이상 사용되지 않음으로 표시됨 [8]) |
참조
[1]
웹사이트
JSRs: Java Specification Requests. JSR 31: XML Data Binding Specification
http://jcp.org/en/js[...]
2011-02-15
[2]
웹사이트
JSRs: Java Specification Requests. JSR 222: Java Architecture for XML Binding (JAXB) 2.0
http://jcp.org/en/js[...]
2011-02-15
[3]
웹사이트
xjc - Java Architecture for XML Binding
http://download.orac[...]
2011-02-15
[4]
웹사이트
Using JAXB Data Binding: Standard Data Type Mapping
http://download.orac[...]
[5]
문서
for xsd:element
of this type
[6]
문서
for xsd:attribute
of this type
[7]
웹사이트
Which JAXB RI is included in which JDK?
https://javaee.githu[...]
[8]
웹사이트
Deprecated module java.xml.bind
https://docs.oracle.[...]
[9]
웹사이트
Jaxb 2.2.8 (JDK 8)
http://java.net/jira[...]
2015-03-01
[10]
웹사이트
Java SE 7: Java XML Technology Enhancements
http://docs.oracle.c[...]
2012-03-21
[11]
웹사이트
Java SE 6: Features and Enhancements
http://www.oracle.co[...]
2012-03-21
[12]
뉴스
The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 222
https://jcp.org/en/j[...]
2019-02-16
[13]
웹인용
Using JAXB Data Binding: Standard Data Type Mapping
http://download.orac[...]
[14]
문서
for xsd:element
of this type
[15]
문서
for xsd:attribute
of this type
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com