我是 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/