java - JaxB 自动从 XML 解析为 Java 类

标签 java xml xml-parsing jaxb

我是 jaxb 的新手。我的问题如下:使用 jaxb,是否可以从 xml 文件自动映射到 java 对象? 从 xml 文件开始,是否有生成带有注释 jaxb relaitve 的 Java 类的东西?

最佳答案

确实可以。但是,您需要 XSD 而不是 XML 文件。有一些工具(例如 Trang)可以从一个或多个示例 XML 文件推断出 XSD。

请注意,如果 XML 示例不完整,或者如果架构无法在单个 XML 文件(独占元素等)中完全表示,则使用工具生成此 XSD 可能会得到不准确的结果。

获得 XSD 后,使用 xjc为了生成编码器/解码器类。

xjc myxsd.xsd

这将生成 JAXB 将用于编码/解码的注释类。请注意,您也可以自己编写这些类的代码。一旦你有了它们,只需在你的代码中使用它们:

File file = new File("myFile.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(MyRootElement.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
MyRootElement element = (MyRootElement) jaxbUnmarshaller.unmarshal(file);

关于java - JaxB 自动从 XML 解析为 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16396753/

相关文章:

java - 多对一(项目-类型关系): identifer was change from x to y

java - 保持数据库连接始终处于 Activity 状态的正确方法

java - 带数组的 Web 服务请求

android - 我可以在 KeyboardView 中放置 GridLayout 吗?

xml - kml 默认命名空间与数据集默认命名空间冲突

java - 如何更改 SOAPBODY 中的子元素

c# - 解析 Web 服务响应返回的 xml

java - 用户输入由空格分隔的整数

java - 是否有扩展 JUnit4 测试类的约定?

java - 如何设置 TableColumnValue JavaFX TableView