jaxbjaxb 시작하기


비고

이 절에서는 jaxb의 개념과 개발자가 왜 그것을 사용하고 싶어하는지에 대한 개요를 제공합니다.

또한 jaxb 내의 큰 주제를 언급하고 관련 주제와 연결됩니다. jaxb의 문서는 새롭기 때문에 관련 항목의 초기 버전을 만들어야 할 수도 있습니다.

XSD에서 코드 생성

JAXB는 XSD에 정의 된 모델로부터 클래스를 생성하는 데 사용할 수 있습니다. 그런 다음이 XSD에 대해 작성된 XML 문서를 Java 인스턴스로 직접 읽고이 인스턴스를 XML 문서로 역으로 저장할 수 있습니다.

SimpleModel.xsd라는 파일에 저장된 다음 XSD를 가져옵니다.

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://myCorp/schemas/simpleModel"
 xmlns:simple="http://myCorp/schemas/simpleModel"
 elementFormDefault="qualified"
 attributeFormDefault="unqualified">
 
 <complexType name="Person">
     <sequence>
         <element name="FirstName" type="string"/>
         <element name="LastName" type="string"/>
         <element name="DateOfBirth" type="dateTime"/>
     </sequence>
 </complexType>
 
</schema>
 

JAXB를 사용하여이 명령 줄을 사용하여이 XSD와 일치하는 클래스를 자동으로 생성 할 수 있습니다 (JDK의 bin 폴더가 경로에있는 경우)

xjc SimpleModel.xsd
 

그러면 다음 클래스를 사용하여 XSD의 네임 스페이스 (여기서는 mycorp.schemas.simplemodel)를 기반으로 패키지가 생성됩니다.

  • ObjectFactory.java
  • package-info.java
  • Person.java

ObjectFactory 는 생성 된 클래스의 인스턴스를 만드는 데 사용됩니다. 어떤 경우에는 이것은 사소한 래퍼처럼 보인다.

new Person();
 

그러나 좀 더 복잡한 경우에는 인스턴스와 관련된 적절한 래퍼 를 만들어 누락 된 링크를 제공하여 객체를 XML과 적절하게 마샬링언 마샬링 합니다.

package-info.java 는 일반적으로 XSD에 대한 정보를 포함합니다.

다른 모든 파일은 XSD에 설명 된 모델에서 파생 된 클래스입니다. 우리 모델에는 단 하나의 객체가 있기 때문에 여기에는 Person.java 만 있습니다.

다른 명령 행 인자 Jaxb와 XJC를 사용하면 생성 된 코드에 엄청난 힘을 줄 것이다. XJC는 또한 beyoond로 이동하고 다음과 같은 일을하기 위해 플러그인을 사용하거나 만드는 방법을 제공합니다 :

  • 생성 된 코드에 인터페이스를 구현하거나 클래스를 확장하십시오.
  • toString, hashcode, equals 등을 클래스와 자동으로 생성합니다.
  • XML 유형 (단순 또는 복합)과 JavaType간에 자동으로 맵핑합니다.
  • 생성 된 코드에서 사용자 정의 코드 또는 주석을 삽입하십시오.

그리고 훨씬 더

또한 다른 도구를 사용하여 xjc (Maven 플러그인) (4 개 이상은 알고 있음), Ant 태스크 등과 상호 작용할 수 있습니다. 종종 이러한 도구는 참조 구현 과정에서 얻지 못하는 일들을 수행 할 수 있습니다. .

설치 또는 설정

JAXB 참조 구현 (JAXB-RI)은 JDK 6 업데이트 3 이후 Java Development Kit에 포함되어 있습니다.

특정 버전의 JDK에 포함 된 JAXB-RI 버전에 대한 자세한 내용은 비공식 JAXB 가이드 를 참조하십시오.