使用 JAXB xjc 工具根据 XML 模式文件生成 JAXB 类

使用 Java XML 绑定体系结构 (JAXB) xjc 工具将 XML 模式文件编译为完全注释的 Java 类。

开始之前

开发或获取 XML 模式文件。

关于此任务

可以使用 JAXB API 和工具在 XML 模式和 Java 类之间建立映射。XML 模式描述 XML 文档中的数据元素和关系。在数据映射或绑定存在后,可以在 XML 文档与 Java 对象之间进行转换。现在不必理解数据结构即可访问 XML 文档中存储的数据。

要从现有的 web 服务描述语言 (WSDL) 文件着手使用自顶向下式开发方法来开发 Web Service,请在从 WSDL 文件着手时使用 wsimport 工具为 Java API for XML-Based Web Services (JAX-WS) 应用程序生成工件。为应用程序生成 Java 工件后,可以通过使用 JAXB 模式编译器 xjc 命令行工具根据 XML 模式文件生成完全注释的 Java 类。 生成的带注释 Java 类包含 JAXB 运行时解析 XML 以进行编组和取消编组所需的所有必需信息。可以在 Java API for XML Web Services (JAX-WS) 应用程序或其他 Java 应用程序中使用生成的 JAXB 类以处理 XML 数据。

最佳实践 最佳实践: WebSphere® Application Server 提供 Java™ API for XML-Based Web Services (JAX-WS) 和 Java XML 绑定体系结构 (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 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 任务,那么您必须使用 destdir 参数而不是 target 选项来指定目标目录。使用 xjc Ant 任务时,指定 target 选项将导致发生错误。gotcha

过程

  1. 使用 JAXB 模式编译器 xjc 命令来生成 JAXB 注释 Java 类。 模式编译器位于 app_server_root\bin\ 目录中。模式编译器根据编译时使用的绑定选项生成一组包含 Java 源文件和 JAXB 属性文件的包。
  2. (可选)使用定制绑定声明来更改缺省 JAXB 映射。 在 XML 模式文件或单独绑定文件中定义绑定声明。可通过将 -b 选项与 xjc 命令配合使用来传递定制绑定文件。
  3. 编译生成的 JAXB 对象。 要编译生成的工件,请将 Thin Client for JAX-WS with WebSphere Application Server 添加到类路径。

结果

在生成 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 内容。

请参阅 JAXB 引用实现文档以获取有关 xjc 命令的更多信息。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxbschema2java
文件名:twbs_jaxbschema2java.html