3
我需要在我的xsd中使用<any>
元素來提供可伸縮性。所以我使用瞭如下所示的xsd。如何在CXF中爲JAXBContext添加其他類
<complexType name="AddInput">
<sequence>
<element name="First" type="int"></element>
<element name="Sec" type="int"></element>
<any processContents="lax" namespace="##any" minOccurs="0" maxOccurs="unbounded"></any>
</sequence>
</complexType>
我已經定義了一個複雜的對象放入<any>
佔位符,用了ObjectFactory(@XMLRegistry,@XmlElementDecl),但仍然如果我運行下面的代碼,我得到
org.apache。 xerces.dom.ElementNSImpl
而不是JAXBElementObject。我在谷歌搜索,我看到JAXBContext應該知道模式。但我不確定,如何讓JAXBContext知道我的複雜對象。任何想法都會有所幫助。
List<Object> elemList = (List<Object>)input.getAny();
for(Object elem : elemList){
System.out.println(elem.getClass());
}
我使用RAD,以生成JAXB類。我沒有使用任何外部綁定文件。首先,xml如何轉換爲CXF中的對象。如何使用cxf使用的上下文來轉換對象。我沒有從你給的鏈接中理解。 – Manoj
@Manoj - 我已經更新了我的答案,嘗試使其更加清晰。 –
對不起,我的無知。我仍然無法明白這一點。當CXF數據綁定將知道模式中定義的所有類時。爲什麼它只知道上面的「AddInput」而不知道另一個。 – Manoj