[英]How do I get the owner JAXBContext for an XmlAdapter?
我需要为特定的XmlAdapter
安装DefaultValidationEventHandler
。 根据我的阅读,您只能这样做:
JAXBContext context = JAXBContext.newInstance(MyAdapter.class);
Unmarshaller um = context.createUnmarshaller();
um.setEventHandler(new DefaultValidationEventHandler());
但是,这是不可能的,因为JAXBContext
是全局的,并且是在我们的应用程序中隐式创建的(由Spring?)。 有什么办法可以让我的session
获取JAXBContext
吗?
如何获得XmlAdapter的所有者JAXBContext?
默认情况下,仅将需要转换的对象传递给XmlAdapter
的实现。 如果希望XmlAdapter
保持状态,则可以在Marshaller
/ Unmarshaller
上设置其实例,然后使用该实例代替创建新实例。
XmlAdapter myAdapter = new MyAdapter(jaxbContext);
unmarshaller.setAdapter(myAdapter);
我需要为特定的XmlAdapter安装DefaultValidationEventHandler
这可能不是您想要的。 如果要对某些对象进行特殊处理,则可以创建一个扩展Unmarshaller.Listener
并实现ValidationEventHander
。 并在Unmarshaller
上相应地设置此实例。 然后,您将在进行验证时知道正在处理哪个对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.