我准备实施一个解决方法修补程序。我们正在使用一个外部 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 在新版本中交付并就位之前,这是一种解决方法。