我正在使用JAXB
调查对象marshaling
和unMarshaling
。 同时注意到有两个选项可以获取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);
,因为您通常要考虑所有相关类,并且不想显式枚举它们。