我有一個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();
...
}