【发布时间】:2011-05-18 18:08:07
【问题描述】:
我有一个 xml 文件格式,我想使用该 xml 创建序列化和反序列化该 xml 所需的骨架类。我为此使用 Java 和 XStream。
.net 世界中有使用 xml 创建类的工具。 Java世界里有没有类似的东西?
【问题讨论】:
标签: java xml-serialization xstream xml-deserialization
我有一个 xml 文件格式,我想使用该 xml 创建序列化和反序列化该 xml 所需的骨架类。我为此使用 Java 和 XStream。
.net 世界中有使用 xml 创建类的工具。 Java世界里有没有类似的东西?
【问题讨论】:
标签: java xml-serialization xstream xml-deserialization
我自己没有使用过 XStream,所以这个解决方案可能不是 100% 适合你。但是,Java 中最简单的方法是使用 Java 的 XML 架构绑定 (JAXB) API 和工具。 JAXB 作为 Java 6 版本的一部分包含在 JDK 中。要从 XML 模式生成 Java 代码,您可以使用 JDK 附带的xjc 命令。这是一个例子:
> xjc schemas\my-schema.xsd -d src\java -p com.company.model
此代码生成方法将创建包含 JAXB 特定注释的 Java 对象,Marshaller 使用这些注释将 Java 对象映射到其 XML 格式,反之亦然。它还将包含许多警告,说明代码是自动生成的,不应修改。只要您不尝试自动使代码与您的 XML 保持同步,您就可以忽略这些消息。
现在,正如我所提到的,这种技术确实会生成 JAXB 注释类,但是,生成的代码可能仍然与 XStream 兼容,因为我相信 XStream 使用简单的属性名称 -> xml 节点名称转换逻辑。
【讨论】: