我使用 Axis2 框架和 XMLBeans 作为数据绑定方法生成了一个客户端。XSD 架构如下:
<xsd:schema>
<xsd:element name="profile" type="anyType"/>
</xsd:schema>
生成的作为 SOAP 请求的一部分的 java 对象包含允许获取和设置配置文件的 getter 和 setter 方法。这是方法签名:
requestDocument.setProfile(XmlObject profile);
问题是,即使我必须传递几个节点作为配置文件而不是有效的 XML 文档,但 XMLObject 需要一个带有根节点的 XML 文档。
我需要通过:
<accounts></accounts>
<payees></payees>
实际上,我使用的服务需要这些节点,但没有将它们限制在模式中。因此,我无法添加另一个根节点,因为即使服务不会引发任何异常,配置文件也将无法使用。
XMLBeans 已经添加了底层的 XML 树,我的意思是请求文档中的配置文件节点。因此,我不能将其用作根节点。如果我添加一个根节点,将创建以下 XML
<profile>
<profile></profile>
</profile>
我希望文档的格式如下:
<profile>
<accounts></accounts>
<payees></payees>
</profile>
我不喜欢修改服务的架构。我想知道 Axis2/XMLBeans 是否有办法解决这个问题。