我有一个xml文件格式并使用该xml我想创建序列化和反序列化该xml所需的框架类。我正在使用Java和XStream。
.net世界中有一个工具,它使用xml创建类。 Java世界中有类似的东西吗?
答案 0 :(得分:2)
我自己没有使用过XStream,所以这个解决方案可能不会100%为你服务。但是,Java中最简单的方法是使用Java的Architectural Binding for XML(JAXB)API和工具。随着Java 6的发布,JAXB作为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节点名称转换逻辑。