【问题标题】:Castor and JAXB MarshallerCastor 和 JAXB 编组器
【发布时间】:2010-01-12 02:27:05
【问题描述】:

目前我正在使用 Castor 框架将对象编组为 xml 文件,效果很好

Writer writer = new FileWriter("D:/out.xml");
Marshaller.marshal(test, writer);

但现在我使用 javax.xml.bind 来做同样的事情。

            Writer writer = new FileWriter("D:/out.xml");
        JAXBContext context =
            JAXBContext.newInstance(test.getClass());
        Marshaller marshaller = context.createMarshaller();
        marshaller.marshal(test, writer);

然后我点击此错误消息:

无法将类型“package1.Testing”编组为元素,因为它缺少 @XmlRootElement 注释]

【问题讨论】:

    标签: java jaxb castor


    【解决方案1】:

    添加XmlRootElement 注释,您将不会再收到错误消息。这应该添加到顶级或“根”类中。

    【讨论】:

    • 感谢您的回答,您能否大致向我解释一下为什么使用 castor 可以,但 jaxb 需要添加 XmlRootElement
    • 这只是语义。 Castor 和 JAXB API 不同,JAXB 需要注解,而 Castor 不需要。
    • 这是否意味着 JAXB 需要知道要查看哪个类,所以在我的测试文件中我必须放入 @XmlRootElement?
    • “test”类是你的例子应该有@XmlRootElement。
    • 我知道要在@XmlRootElement中添加只是想知道为什么需要添加。感谢您的回答我解决了问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2011-11-24
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    相关资源
    最近更新 更多