java Apache AXIS解析时忽略/跳过其他元素

ahy6op9u  于 2023-04-19  发布在  Java
关注(0)|答案(2)|浏览(112)

我们使用第三方的Web服务。每当他们更新XML模式(如添加新元素)时,我们都会得到以下错误消息。
“SAXException:无效元素...“
在解析XML时,AXIS中是否有任何方法可以要求跳过在XML上接收到的附加元素?
我已经使用AXIS生成了Web服务客户端,之前我使用AXIS接收XML,如下所示

<Flight>
   <AirlineCode>AB</AirlineCode> 
</Flight>

一切都很好,但现在我得到了一个额外的标签作为回应。

<Flight>
   <AirlineCode>AB</AirlineCode> 
   <OtherCode>XX</OtherCode> 
</Flight>

因此,我得到了“无效元素”异常。
谢谢

bxgwgixi

bxgwgixi1#

Apache Axis 2版本1.7.0-SNAPSHOT通过使用-Eiu开关进行编译,可以实现ignore unexpected elements
Downloads for 1.7.0-SNAPSHOT

mbskvtky

mbskvtky2#

丹尼尔的回答应该会有所帮助,但要注意,从Axis2获得的输出与从Axis获得的输出有很大不同,因此您可能必须稍微重写集成。
你将需要整个shebang才能让它工作,这在这里可用,因为在撰写本文时,我找不到任何maven存储库上管理的这个版本:https://repository.apache.org/content/groups/snapshots/org/apache/axis2/axis2/1.7.0-SNAPSHOT/
因为这个版本现在没有在maven中进行管理,所以弄清楚依赖关系是一个很大的痛苦。下面是我使用的gradle依赖关系的快照:

compile 'org.apache.ws.commons.schema:XmlSchema:1.4.7'
compile 'org.apache.ws.commons.axiom:axiom-api:1.2.15'
compile 'org.apache.neethi:neethi:3.0.1'
compile 'axis:axis-wsdl4j:1.6.3'
compile 'commons-logging:commons-logging:1.1.1'
compile files('C:\\temp\\wsdl\\axis2-1.7.0-SNAPSHOT.jar', 'C:\\temp\\wsdl\\axiom.jar')
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'

axiom依赖项是我必须手动下载的东西,因为尝试使用存储库管理版本无法工作,原因我不清楚。
除此之外,如果您没有与Axis技术栈结合,我建议您避免使用它,而是与动态WSDL到Java框架集成,该框架可以适应Schema结构可能更改的Web服务。

相关问题