我有一个xsd,其中有替换组。当我尝试使用cxf wsdl2java JAXB生成List>而不是List来生成java类时。我如何避免JAXBElement?我试着用binding.xml但它不工作。请帮我解决这个避免替换组的JAXBElement
谢谢
我有一个xsd,其中有替换组。当我尝试使用cxf wsdl2java JAXB生成List>而不是List来生成java类时。我如何避免JAXBElement?我试着用binding.xml但它不工作。请帮我解决这个避免替换组的JAXBElement
谢谢
使用置换组时,您不能避免的JAXBElement。 JAXBElement创建的原因是没有足够的信息来告诉将哪种类型放入模式中,因为可以用多种类型替换元素。
您仍然可以在运行时使用getDeclaredType检查类型安全性。例如
JAXBContext jc = JAXBContext.newInstance("com.foo");
Unmarshaller u = jc.createUnmarshaller();
File f = new File("src/Sample.xml");
SomeObject d = (SomeObject) u.unmarshal(f);
AnyTypeContainerObject c = d.getBody();
JAXBElement<?> any = (JAXBElement<?>) c.getAny();
if ((AnyTypeObject.class.equals(any.getDeclaredType()))) {
AnyTypeObject value = (AnyTypeObject) any.getValue();
...
}