JAXB xjc 도구를 사용하여 XML 스키마 파일에서 JAXB 클래스 생성

JAXB(Java Architecture for XML Binding) xjc 도구를 사용하여 XML 스키마 파일을 전체 어노테이션이 있는 Java 클래스로 컴파일할 수 있습니다.

시작하기 전에

XML 스키마 파일을 개발하거나 얻으십시오.

이 태스크 정보

JAXB API 및 도구를 사용하여 XML 스키마와 Java 클래스 간 맵핑을 설정하십시오. XML 스키마는 XML 문서에서 데이터 요소 및 관계에 대해 설명합니다. 데이터 맵핑 또는 바인딩이 존재하면 XML 문서를 Java 오브젝트로(부터) 변환할 수 있습니다. 이제 데이터 구조를 이해하지 못해도 XML 문서에 저장된 데이터에 액세스할 수 있습니다.

기존 WSDL(Web Services Description Language) 파일부터 시작하는 하향식 개발 접근법을 사용하여 웹 서비스를 개발하려면 WSDL 파일에서 시작할 때 wsimport 도구를 사용하여 JAX-WS(Java API for XML-Based Web Service) 애플리케이션에 대한 아티팩트를 생성하십시오. 애플리케이션에 대한 Java 아티팩트가 생성된 후에는 JAXB 스키마 컴파일러인 xjc 명령행 도구를 사용하여 XML 스키마 파일에서 전체 어노테이션이 있는 Java 클래스를 생성할 수 있습니다. 결과적으로 생성되는 어노테이션이 있는 Java 클래스는 JAXB 런타임이 마샬링(marshalling) 및 역마샬링(unmarshalling)을 위해 XML을 구문 분석하는 데 필요로 하는 모든 필요한 정보를 포함합니다. JAX-WS(Java API for XML Web Service) 애플리케이션 또는 다른 Java 애플리케이션에서 XML 데이터를 처리하기 위해 이 결과 JAXB 클래스를 사용할 수 있습니다.

우수 사례 우수 사례: WebSphere® Application Server는 JAX-WS(Java™ API for XML-Based Web Services)와 JAXB(Java Architecture for XML Binding) 도구를 제공합니다. wsimport, wsgen, schemagenxjc 명령행 도구는 WebSphere Application Server Traditionalapp_server_root\bin\ 디렉토리에 있습니다. xjcschemagen 명령은 Liberty 프로파일의 app_server_root\jaxb\bin\ 디렉토리에 있습니다. 일부 경우에 WebSphere Application Server 및 JDK에서 제공된 두 가지 도구로 생성된 아티팩트는 동일한 레벨의 스펙을 지원합니다. 일반적으로 JDK 도구가 생성한 아티팩트는 부합하는 다른 런타임 환경에 이식 가능합니다. 그러나 WebSphere Application Server 환경 내에서 완벽한 통합을 하고 WebSphere Application Server에서만 지원되는 기능을 이용하려면 이 제품과 함께 제공되는 도구를 사용하는 것이 가장 좋습니다. JAX-WS 및 JAXB V2.2 도구를 활용하려면 app_server_root\bin\ 디렉토리에 있는 애플리케이션 서버와 함께 제공된 도구를 사용하십시오. bprac
지원된 구성 지원된 구성: 이 제품은 JAXB 2.2 스펙을 지원합니다. JAX-WS 2.2에는 데이터 바인딩을 위한 JAXB 2.2가 필요합니다. sptcfg

명령행에서 xjc 도구를 사용하는 것 외에도 Ant 빌드 환경에서 이 JAXB 도구를 호출할 수 있습니다. Ant 빌드 환경 내에서 com.sun.tools.xjc.XJCTask Ant 태스크를 사용하여 xjc 스키마 컴파일러 도구를 호출하십시오. 적절하게 작용하려면, 이 Ant 태스크는 ws_ant 스크립트를 사용하여 Ant를 호출할 것을 요청합니다.

문제점 방지 문제점 방지: xjc Ant 태스크를 사용 중인 경우 target 옵션 대신 대상 디렉토리를 지정하기 위해 destdir 매개변수를 사용해야 합니다. xjc Ant 태스크를 사용할 때 target 옵션을 지정하는 것은 오류를 야기합니다. gotcha

프로시저

  1. JAXB 스키마 컴파일러인 xjc 명령을 사용하여 JAXB 어노테이션이 있는 Java 클래스를 생성하십시오. 스키마 컴파일러는 app_server_root\bin\ 디렉토리에 있습니다. 스키마 컴파일러는 컴파일에 사용되는 바인딩 옵션에 따라 JAXB 특성 파일 및 Java 소스 파일을 포함하는 일련의 패키지를 생성합니다.
  2. (선택사항) 사용자 정의 바인딩 선언을 사용하여 기본 JAXB 맵핑을 변경하십시오. XML 스키마 파일에서 또는 개별 바인딩 파일에서 바인딩 선언을 정의하십시오. xjc 명령으로 -b 옵션을 사용하여 사용자 정의 바인딩 파일을 전달할 수 있습니다.
  3. 생성된 JAXB 오브젝트를 컴파일하십시오. 생성된 아티팩트를 컴파일하려면 WebSphere Application Server에서 JAX-WS용 씬 클라이언트를 클래스 경로에 추가하십시오.

결과

JAXB 오브젝트를 생성했으므로 생성된 JAXB 오브젝트를 사용하여 Java 애플리케이션을 작성하고 생성된 JAXB 클래스를 통해 XML 컨텐츠를 조작할 수 있습니다.

다음 예에서는 기존의 XML 스키마 파일을 시작할 때 JAXB 도구로 Java 클래스를 생성하는 방법을 보여줍니다.
  1. 다음 bookSchema.xsd 스키마 파일을 임시 디렉토리로 복사하십시오.
      <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">                                          
         <xsd:element name="CatalogData">                                                               
           <xsd:complexType>
             <xsd:sequence>
               <xsd:element name="books" type="bookdata" minOccurs="0" 
    						maxOccurs="unbounded" />
             </xsd:sequence>
           </xsd:complexType>
         </xsd:element>
         <xsd:complexType name="bookdata">                                                              
           <xsd:sequence>
             <xsd:element name="author" type="xsd:string"/>                                         
             <xsd:element name="title" type="xsd:string"/>                                          
             <xsd:element name="genre" type="xsd:string"/>                                          
             <xsd:element name="price" type="xsd:float"/>                                           
             <xsd:element name="publish_date" type="xsd:dateTime"/>                                 
             <xsd:element name="description" type="xsd:string"/>                                    
           </xsd:sequence>
           <xsd:attribute name="id" type="xsd:string"/>                                               
         </xsd:complexType>
       </xsd:schema>
  2. 명령 프롬프트를 여십시오.
  3. 스키마 파일이 있는 디렉토리에서 JAXB 스키마 컴파일러인 xjc 명령을 실행하십시오. xjc 스키마 컴파일러 도구는 app_server_root\bin\ 디렉토리에 있습니다.
    [Windows]
    app_server_root\bin\xjc.bat bookSchema.xsd
    [Linux][AIX][HP-UX][Solaris]
    app_server_root/bin/xjc.sh bookSchema.xsd
    xjc 명령을 실행하면 다음 JAXB Java 파일이 생성됩니다.
    generated\Bookdata.java
    generated\CatalogdData.java
    generated\ObjectFactory.java
  4. Java 애플리케이션에서 생성된 JAXB 오브젝트를 사용하여 생성된 JAXB 클래스를 통해 XML 컨텐츠를 조작할 수 있습니다.

xjc 명령에 대한 추가 정보는 JAXB 참조 구현 문서를 참조하십시오.


주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxbschema2java
파일 이름:twbs_jaxbschema2java.html