如何递归地“扩展”所有包含在XML / XSD中?

时间:2012-04-10 13:43:16

标签: xml delphi xsd wsdl

是否有任何应用程序可以使用XML文件(实际上是wsdl)与一些包含和递归浏览这些包含来制作最终的XML(确实很大),目标包括合并到其中?

说明:BDS 2006 WSDL Importer,无法处理包含和导入的xsd中定义的某些数据类型未导入,因此我收到编译错误。当我将所有引用的XSD文件递归替换为一个大的XML时,WSDL Importer工作正常,但手动执行此替换是非常困难且耗时的。有一些应用程序可以帮我吗?

提前致谢!

3 个答案:

答案 0 :(得分:4)

我认为QTAssistant做得更好(我在这里偏爱),至少与@Nick在评论中描述的步骤相比较;这里假设的一件事是只有一个XSD;如果涉及多个命名空间,则方法是单独复制每个文件,同时确保删除schemaLocation属性。无论如何,似乎有很多小小的参与。

在QTAssistant中,“工具”选项卡下有一个按钮,内部化XSD ;它的工作是提示您输入WSDL文件位置,以及复制结果的文件夹。

QTAssistant WSDL Internalize XSD command

填写这两个字段,按加载,然后按确定

QTAssistant WSDL Internalize XSDs prompt

然后打开重构的WSDL文件以供查看。

enter image description here

您也可以按验证按钮按WS-I BP 1.1规则运行它,以及XSD架构集验证。

答案 1 :(得分:2)

我认为OxygenXml可以做到这一点。

我不是delphi开发人员。我假设您正在尝试创建一个整合的具体WSDL供Delphi中的某种代理生成器使用,是吗?

答案 2 :(得分:-3)

我的WSDL存​​在一些问题。所有答案都是很好的答案,但没有一个是有效的。谢谢大家的尝试