Axis2与XMLBeans数据绑定-从具有anyType的XSD模式生成的java客户端存在问题
我已经使用Axis2框架生成了一个客户机,该框架使用XMLBeans作为数据绑定方法。 XSD架构如下所示:Axis2与XMLBeans数据绑定-从具有anyType的XSD模式生成的java客户端存在问题,java,xsd,axis2,xmlbeans,Java,Xsd,Axis2,Xmlbeans,我已经使用Axis2框架生成了一个客户机,该框架使用XMLBeans作为数据绑定方法。 XSD架构如下所示: 作为SOAP请求的一部分生成的java对象包含允许获取和设置概要文件的getter和setter方法。以下是方法签名: requestDocument.setProfile(XmlObject配置文件) 问题是,即使我必须传递多个节点作为概要文件,而不是有效的XML文档,但XMLObject需要一个带有根节点的XML文档 我需要通过: 实际上,我使用的服务需要这些节点,但没有在
作为SOAP请求的一部分生成的java对象包含允许获取和设置概要文件的getter和setter方法。以下是方法签名:
requestDocument.setProfile(XmlObject配置文件)代码>
问题是,即使我必须传递多个节点作为概要文件,而不是有效的XML文档,但XMLObject需要一个带有根节点的XML文档
我需要通过:
实际上,我使用的服务需要这些节点,但没有在模式中约束它们。因此,我不能添加另一个根节点,因为即使服务不会抛出任何异常,配置文件也不可用
XMLBeans已经添加了底层XML树,我指的是请求文档中的概要文件节点。因此,我不能将其用作根节点。如果添加根节点,将创建以下XML
我希望文档的格式如下:
我不希望修改服务的模式。我想知道Axis2/XMLBeans是否有办法解决这个问题。我找到了一个解决方案,它可能是一种变通方法,而不是应该采用的干净方法。
而不是使用XMLObject
如下设置配置文件:
requestDocument.setProfile(XmlObject配置文件)代码>
我使用org.w3c.dom.Node
对象来创建概要文件内容。见下文:
1.创建要添加到概要文件中的元素org.w3c.dom.Element
:
Element accountsElt=profileDocument.createElement(“accounts”)代码>
Element payeselt=profileDocument.createElement(“收款人”)代码>
2.在要发送到服务的文档中创建一个空配置文件,注意该对象是自动生成的:
requestDocument.addNewProfile()代码>
3.获取空配置文件并将子节点添加到其根节点:
requestDocument.getProfile().getDomNode().appendChild(accountsElt)代码>
requestDocument.getProfile().getDomNode().appendChild(payeselt)代码>
我希望有帮助