有关此任务
使用 JAXB API 和工具在 Java 类和 XML 模式之间建立映射。 XML 模式文档描述了 XML 文档中的数据元素和关系。 在数据映射或绑定存在后,可以在 XML 文档与 Java 对象之间进行转换。 现在不必理解数据结构即可访问 XML 文档中存储的数据。
要使用从现有 JavaBeans 或企业 Bean 开始的自底向上开发方法来开发 Web Service ,请使用
wsgen
工具为 Java API for XML-Based Web Services (JAX-WS) 应用程序生成工件。 生成应用程序的 Java 工件后,可以使用 JAXB 模式生成器
schemagen
命令行工具从现有 Java 应用程序创建表示 Java 应用程序的数据元素的 XML 模式文档。 JAXB 模式生成器处理 Java 源文件或类文件。 Java 类注释提供了定制从现有 Java 类到生成的模式组件的缺省映射的功能。 XML 模式文件以及带注释的 Java 类文件包含 JAXB 运行时解析 XML 文档以进行编组和取消编组所需的所有必需信息。
您可以使用 JAXB 模式生成器
schemagen
命令行工具从表示 Java 应用程序的数据元素的现有 Java 应用程序创建 XML 模式文档。 JAXB 模式生成器处理 Java 源文件或类文件。 Java 类注释提供了定制从现有 Java 类到生成的模式组件的缺省映射的功能。 XML 模式文件以及带注释的 Java 类文件包含 JAXB 运行时解析 XML 文档以进行编组和取消编组所需的所有必需信息。
受支持的配置:
wsimport
,
wsgen
,
schemagen
和
xjc
命令行工具在 z/OS® 平台上不受支持。 此功能由在 z/OS 平台上运行的 WebSphere® Application Server 随附的组装工具提供。 请针对
JAX-WS 应用程序查看这些命令行工具,以更多地了解这些工具。
最佳实践:
WebSphere Application Server 提供 Java API for XML-Based Web Services (JAX-WS) 和 Java XML 绑定体系结构 (JAXB) 工具。
wsimport
、
wsgen
、
schemagen
和
xjc
命令行工具位于完整概要文件的
app_server_root
\bin\ 目录中。
wsimport
和
wsgen
命令位于 Liberty
概要文件中的
app_server_root
\jaxws\bin\ 目录内。
xjc
和
schemagen
命令位于 Liberty 概要文件中的
app_server_root
\jaxb\bin\ 目录中。
Java SE Development Kit (JDK) 6 提供了类似的工具。 在某些情况下,由 WebSphere Application Server 和 JDK 提供的工具生成的工件支持相同的规范级别。 总之,JDK 工具生成的工件可在其他顺应的运行时环境之间移植。 但是,最佳实践是使用本产品随附的工具在 WebSphere Application Server 环境中实现无缝集成,并利用仅在 WebSphere Application Server中受支持的功能部件。 要利用 JAX-WS 和 JAXB V2.2 工具,请使用应用程序服务器附带提供的工具,这些工具位于
app_server_root
\bin\ 目录。
支持的配置:
此产品支持 JAXB 2.2 规范。 JAX-WS 2.2 要求使用 JAXB 2.2 进行数据绑定。
JAXB 提供编译支持,让您可以配置
schemagen
模式生成者,以便它不会自动生成新的模式。 如果要使用公共模式(例如万维网联盟 (W3C)、XML 模式、Web 服务描述语言 (WSDL) 或 WS-Addressing)并且不想为引用的特定包生成新模式,那么此改进很有用。 @XmlSchema 注释上的
location
属性使 schemagen 生成者可以引用现有模式的 URI,而不是生成新的模式。
除了从命令行使用
schemagen
工具外,还可以从 Ant 构建环境中调用此 JAXB 工具。 从 Ant 构建环境中使用
com.sun.tools.jxc.SchemaGenTask
Ant 任务来调用
schemagen
模式生成器工具。 为了使功能正常,此 Ant 任务需要您使用 ws_ant 脚本来调用 Ant。
避免麻烦:
运行
schemagen
工具时,模式生成器无法从 package-info 类文件正确读取 @XmlSchema 注释以派生 targetNamespaces。 请使用下列其中一种方法来取代使用 @XMLSchema 注释: