簡體   English   中英

Apache CXF解析WSDL Schema xsd:任何類型

[英]Apache CXF parse WSDL Schema xsd:any type

我正在嘗試找到針對肥皂網絡服務問題的最佳且最通用的解決方案。 我需要解決的問題是使用wsdl2java命令將Apache Axis使用給定的WSDL文件生成的代理替換為Apache CXF genereta的代理。 但是,當我使用CXF生成代理並在IDE中打開類時,我意識到我已經:

@XmlAnyElement(lax = true)
    protected List<Object> any;

元素作為“類”字段。 真奇怪 我看了看純wsdl,在complextype屬性之一中有xsd:any元素。 我一直在尋找問題所在,並尋求解決方案。 我發現了這個 看來apache CXF運行時無法確定元素的實際數據類型。 因此,我需要使用DOM解析器手動對其進行解析。

Apache Axis生成以下內容:

private org.apache.axis.message.MessageElement[] _any;

標簽:

<any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" />

我的問題是:解決此問題的最佳方法是什么? 我真的需要DOM解析器嗎? 我有想念的東西嗎? 謝謝。

<xsd:any>用於在模式中允許任何元素。 看到這個鏈接

元素使我們能夠使用架構未指定的元素擴展XML文檔。

因此,CXF的映射是正確的。 JAXB注釋@XmlAnyElement(lax = true)意味着對於該字段,如果包含帶有@XmlRootElement@XmlElementDecl注釋的元素,則如果未將該元素設置為實例,則將使用相應類的實例填充該字段。 org.w3c.dom.Element

在這里查看示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM