0

我准备实施一个解决方法修补程序。我们正在使用一个外部 web 服务,它的客户端是使用 xmlbeans 和一个大的 WSDL 描述生成的。

我需要指定一个未在架构中描述的 xml 节点。我知道我可以去尝试修改 WSDL(这很复杂),但也想看看是否可以不重新生成 java 类。

所以基本上我正在寻找的是这样的东西。我可以将一个 XML 对象放入我的树中,它在序列化为字符串时仅解析为给定的文本。

XmlObject customNode = XmlObject.Factory.newInstance();
customNode.setXML(
  "<myns:MyNode xmlns:mytypes='http://example.com/myschema' xsi:type='mytypes:DoesNotExistOnClientSideXML'"
);
mySchemaConformantNode.setTheNode(customNode);

服务器确实了解类型。我知道这不干净。但在正确的 WSDL 在新版本中交付并就位之前,这是一种解决方法。

4

1 回答 1

0

那应该没问题。您可以使用 XmlBeans 创建您喜欢的任何 XML 结构——根据 WSDL,它只是模式无效。

编辑:对不起,我不明白最初的问题。您可以使用XmlObject#set替换当前 XmlObject 的内容:

XmlObject customNode = XmlObject.Factory.parse("xml...")

mySchemaConformantNode.set(customNode);
于 2013-05-28T16:43:13.837 回答