Using JAXB xjc tooling to generate JAXB classes from an XML schema file

Use Java Architecture for XML Binding (JAXB) xjc tooling to compile an XML schema file into fully annotated Java classes.

Before you begin

Develop or obtain an XML schema file.

About this task

Use JAXB APIs and tools to establish mappings between an XML schema and Java classes. XML schemas describe the data elements and relationships in an XML document. After a data mapping or binding exists, you can convert XML documents to and from Java objects. You can now access data stored in an XML document without the need to understand the data structure.

To develop web services using a top-down development approach starting with an existing Web Services Description Language (WSDL) file, use the wsimport tool to generate the artifacts for your Java API for XML-Based Web Services (JAX-WS) applications when starting with a WSDL file. After the Java artifacts for your application are generated, you can generate fully annotated Java classes from an XML schema file by using the JAXB schema compiler, xjc command-line tool. The resulting annotated Java classes contain all the necessary information that the JAXB runtime requires to parse the XML for marshaling and unmarshaling. You can use the resulting JAXB classes within Java API for XML Web Services (JAX-WS) applications or other Java applications for processing XML data.

最佳作法 最佳作法: WebSphere® Application Server 提供 Java™ API for XML-Based Web Services (JAX-WS) 和 Java Architecture for XML Binding (JAXB) 工具。 wsimportwsgenschemagenxjc 指令行工具位於 WebSphere Application Server 傳統版app_server_root\bin\ 目錄中。 xjcschemagen 指令位於 Liberty 設定檔的 app_server_root\jaxb\bin\ 目錄中。 在某些情況下,WebSphere Application Server 和 JDK 提供的工具所產生的構件,支援相同層次的規格。一般而言,JDK 工具所產生的構件可以在其他標準執行時期環境之間轉移。 不過,最好的作法是利用這個產品所提供的工具來實現在 WebSphere Application Server 環境內的緊密整合,以及使用可能只在 WebSphere Application Server 環境內受到支援的特性。 如果要利用 JAX-WS 和 JAXB 2.2 版工具,請使用在 app_server_root\bin\ 目錄內之應用程式伺服器所提供的工具。bprac
支援的配置 支援的配置: This product supports the JAXB 2.2 specification. JAX-WS 2.2 requires JAXB 2.2 for data binding. sptcfg

In addition to using the xjc tool from the command-line, you can invoke this JAXB tool from within the Ant build environments. Use the com.sun.tools.xjc.XJCTask Ant task from within the Ant build environment to invoke the xjc schema compiler tool. To function properly, this Ant task requires that you invoke Ant using the ws_ant script.

避免困難 避免困難: If you are using the xjc Ant task, you must use the destdir parameter to specify the destination directory instead of the target option. Specifying the target option when using the xjc Ant task causes an error. gotcha

Procedure

  1. Use the JAXB schema compiler, xjc command to generate JAXB-annotated Java classes. The schema compiler is located in the app_server_root\bin\ directory. The schema compiler produces a set of packages containing Java source files and JAXB property files depending on the binding options used for compilation.
  2. (Optional) Use custom binding declarations to change the default JAXB mappings. Define binding declarations either in the XML schema file or in a separate bindings file. You can pass custom binding files by using the -b option with the xjc command.
  3. Compile the generated JAXB objects. To compile generated artifacts, add the Thin Client for JAX-WS with WebSphere Application Server to the classpath.

Results

Now that you have generated JAXB objects, you can write Java applications using the generated JAXB objects and manipulate the XML content through the generated JAXB classes.

Example

The following example illustrates how JAXB tooling can generate Java classes when starting with an existing XML schema file.
  1. Copy the following bookSchema.xsd schema file to a temporary directory.
      <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. Open a command prompt.
  3. Run the JAXB schema compiler, xjc command from the directory where the schema file is located. The xjc schema compiler tool is located in the app_server_root\bin\ directory.
    [Windows]
    app_server_root\bin\xjc.bat bookSchema.xsd
    [Linux][AIX][HP-UX][Solaris]
    app_server_root/bin/xjc.sh bookSchema.xsd
    Running the xjc command generates the following JAXB Java files:
    generated\Bookdata.java
    generated\CatalogdData.java
    generated\ObjectFactory.java
  4. Use the generated JAXB objects within a Java application to manipulate XML content through the generated JAXB classes.

Refer to the JAXB Reference implementation documentation for additional information about the xjc command.


指出主題類型的圖示 作業主題



時間戳記圖示 前次更新: July 9, 2016 11:18
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxbschema2java
檔名:twbs_jaxbschema2java.html