【问题标题】:Jaxb when use jaxb.index file使用 jaxb.in​​dex 文件时的 Jaxb
【发布时间】:2017-04-10 19:11:29
【问题描述】:

我正在使用JAXB 调查对象marshalingunMarshaling。同时注意到有两个选项可以获取JAXBContext 的实例。

  • 一个基于类:JAXBContext context = JAXBContext.newInstance(ex.getClass());
  • 另一种基于包名:JAXBContext context = JAXBContext.newInstance(ex.getClass().getPackage().getName());

对于第二种方式,您必须提供jaxb.index 文件,其中包含 bean 类名列表。

也许有人可以解释一下,这两种获取JAXBContext实例的方法有什么区别?哪个更好用?什么时候用?

【问题讨论】:

标签: java xml jaxb


【解决方案1】:

对于第二种方式,您必须提供jaxb.index 文件,其中包含 bean 类名列表。

这是不正确的。在 JAXB2 中,这在没有 jaxb.index 的情况下也可以工作,类通过 ObjectFactory@XmlSeeAlso “识别”。

通常的方法是使用JAXBContext context = JAXBContext.newInstance("my.package:my.another.package);,因为您通常希望考虑所有相关类并且不想显式枚举它们。

【讨论】:

  • 但是,jaxb.index 的目的是什么以及何时创建它?
  • @Bublik 您可以创建它而不是 ObjectFactory。如果您手动编写 JAXB 类(而不是从模式生成它们),这可能会更方便。
猜你喜欢
  • 1970-01-01
  • 2016-05-19
  • 2010-11-05
  • 2019-01-29
  • 2013-12-30
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
相关资源
最近更新 更多