자카르 XML 바인딩
Jakarta XML Binding리포지토리 | |
---|---|
기록 위치 | 자바 |
웹사이트 | projects |
자카르 XML 바인딩(JAXB, 이전의 자바 아키텍처 for XML 바인딩)은 자카르타 EE 개발자들이 자바 클래스를 XML 표현에 매핑할 수 있도록 하는 소프트웨어 프레임워크다.JAXB는 두 가지 주요 특징을 제공한다: 즉, 자바 객체를 XML로 요약하는 기능과 반대로, 즉, XML을 자바 객체로 되돌리는 것이다.즉, JAXB는 프로그램의 클래스 구조에 대해 XML 로딩 및 저장 루틴의 특정 집합을 구현할 필요 없이 어떤 XML 형식으로도 메모리에 데이터를 저장하고 검색할 수 있다.와 비슷하다xsd.exe
그리고XmlSerializer
…에 있어서NET Framework.
JAXB는 사양이 복잡하고 변경될 때 특히 유용하다.이러한 경우 XML 스키마 정의를 Java 정의와 동기화되도록 정기적으로 변경하는 것은 시간이 많이 걸리고 오류가 발생하기 쉽다.
JAXB는 자카르타 EE 플랫폼(이전의 자바 EE)의 API 중 하나로, Java Web Services Development Pack(JWSDP)의 일부분이며 WSIT의 기반 중 하나이다.또한 Java SE 플랫폼(버전 Java SE 6-10)의 일부였다.자바 SE 11을 기준으로 JAXB가 제거되었다.자세한 내용은 JEP 320을 참조하십시오.
JAXB 1.0은 JSR 31로 Java Community Process에 따라 개발되어 2003년에 출시되었다.[1]2006년 JAXB 2.0은 JSR 222와 2009년 12월에 출시된 Maintenance Release 2에 따라 출시되었다.[2]이 규격에 대한 참조 구현은 java.net의 CDDL 오픈 소스 라이센스에 따라 제공되었다.
사용법
툴 "xjc"는 XML 스키마 및 기타 스키마 파일 형식(Java 1.6, REACE NG, XML DTD 및 WSDL은 실험적으로 지원됨)을 클래스 표현으로 변환하는 데 사용할 수 있다.[3]클래스는 javax.xml.bind.notation의 주석을 사용하여 표시된다.* 네임스페이스(예: @XmlRootElement 및 @XmlElement)XML 목록 시퀀스는 java.util 유형의 속성으로 표현된다.리스트. 마샬러와 언마샬러는 JAXBContext의 인스턴스를 통해 만들어진다.
또한, JAXB에는 "xjc"의 역수를 본질적으로 수행할 수 있는 "schemagen" 도구가 포함되어 있어 주석 처리된 클래스 집합에서 XML 스키마를 만든다.
기본 데이터 유형 바인딩
아래 표에는 JAXB의 자바 데이터 유형에 대한 XML 스키마(XSD) 데이터 유형의 매핑이 나열되어 있다.[4]
XML 스키마 유형 | Java 데이터 유형 |
---|---|
xsd:string | java.lang.String |
xsd:integer | java.math.BigInteger |
xsd:positiveInteger | java.math.BigInteger |
xsd:int | int |
xsd:long | long |
xsd:short | short |
xsd:decimal | java.math.BigDecimal |
xsd:float | float |
xsd:double | double |
xsd:boolean | boolean |
xsd:byte | byte |
xsd:QName | javax.xml.namespace.QName |
xsd:dateTime | javax.xml.datatype.XMLGregorianCalendar |
xsd:base64Binary | byte[] |
xsd:hexBinary | byte[] |
xsd:unsignedInt | long |
xsd:unsignedShort | int |
xsd:unsignedByte | short |
xsd:unsignedLong | java.math.BigDecimal |
xsd:time | javax.xml.datatype.XMLGregorianCalendar |
xsd:date | javax.xml.datatype.XMLGregorianCalendar |
xsd:g | javax.xml.datatype.XMLGregorianCalendar |
xsd:anySimpleType [5] | java.lang.Object |
xsd:anySimpleType [6] | java.lang.String |
xsd:duration | javax.xml.datatype.Duration |
xsd:NOTATION | javax.xml.namespace.QName |
버전
- Java SE 9: JAXB 2.3.0(모듈 내)
java.xml.bind
; 이 모듈은 사용되지 않는 것으로 표시됨 ) - Java SE 8: JAXB 2.2.8 [9]
- Java SE 7: JAXB 2.2.3 (JSR 222, 유지보수 릴리즈 2)
- Java SE 6: JAXB 2.0(JSR 222)
참고 항목
- XML 데이터 바인딩
- JiBX – 가장 빠른 XML 데이터 바인더 중 하나
- XMLBeans – Apache Software Foundation의 JAXB와 유사하고 보완적인 기술
- TopLink – 관계형 객체 및 JAXB 1.0을 지원하는 오라클의 XML 매퍼에 객체
- EclipseLink MOXy – Eclipse Foundation에서 JAXB 및 객체 XML 매핑 서비스의 오픈 소스 구현
- Liquid XML Studio – XML 데이터 바인딩 코드 생성을 위한 상용 도구
- 단순 XML 직렬화 – JAXB의 대안으로서 XML 구성 및 통신 시스템의 신속한 개발 가능
참조
- ^ "JSRs: Java Specification Requests. JSR 31: XML Data Binding Specification". Retrieved 2011-02-15.
- ^ "JSRs: Java Specification Requests. JSR 222: Java Architecture for XML Binding (JAXB) 2.0". Retrieved 2011-02-15.
- ^ "xjc - Java Architecture for XML Binding". Retrieved 2011-02-15.
- ^ "Using JAXB Data Binding: Standard Data Type Mapping".
- ^ 을 위해
xsd:element
이런 유형의 - ^ 을 위해
xsd:attribute
이런 유형의 - ^ "Which JAXB RI is included in which JDK?".
- ^ "Deprecated module java.xml.bind".
- ^ "Jaxb 2.2.8 (JDK 8)". Retrieved 2015-03-01.
- ^ "Java SE 7: Java XML Technology Enhancements". Retrieved 2012-03-21.
- ^ "Java SE 6: Features and Enhancements". Retrieved 2012-03-21.
- ^ Dennis Sosnoski. "XML and Java technologies: Data binding, Part 2: Performance". Retrieved 2011-02-15.
- ^ "XML Binding Frameworks in the Context of Service-Oriented Architecture". Retrieved 2011-02-15.
외부 링크
- Project GlassFish 공식 웹사이트 참조 구현
- 이전 JAXB 홈 페이지
- 원본 JAXB 홈 페이지
- 볼프강 세탁의 JAXB 자습서
- JSR 222 (JAXB 2.0)
- JSR 31(JAXB 1.0)
- Java EE 5 자습서 - Java EE 5 자습서의 XML 스키마와 JAXB 장 사이의 바인딩
- JAXB 마법사
- JAXB 자습서