Jaxb 当使用 jaxb.index 文件时



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

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

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

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

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

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

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

最新更新