多个wsdl和xsd文件。。。转换为单个wsdl

多个wsdl和xsd文件。。。转换为单个wsdl,xsd,wsdl,Xsd,Wsdl,可能是一个直截了当的问题:您知道将多个wsdl+xsd文件组合成单个wsdl的工具吗 多谢各位 Edit1: 该服务是一个WCF服务,我想为PHP提供一个wsdl(作为客户端) Edit2: 太糟糕了,我需要使用.NET4.0,而不是4.5。也许我可以借用一个新的MS工具?你知道哪一个吗?svcutil.exe是负责的工具吗?如果是,他的依赖性是什么?因为我现在还不想跳转到.Net 4.5。您可以构建一个可以生成平面wsdl的小应用程序。我们确实在C#中以编程方式生成平面wsdl,以构建可互操作

可能是一个直截了当的问题:您知道将多个wsdl+xsd文件组合成单个wsdl的工具吗

多谢各位

Edit1: 该服务是一个WCF服务,我想为PHP提供一个wsdl(作为客户端)

Edit2:
太糟糕了,我需要使用.NET4.0,而不是4.5。也许我可以借用一个新的MS工具?你知道哪一个吗?svcutil.exe是负责的工具吗?如果是,他的依赖性是什么?因为我现在还不想跳转到.Net 4.5。

您可以构建一个可以生成平面wsdl的小应用程序。我们确实在C#中以编程方式生成平面wsdl,以构建可互操作的WCF服务。请参阅关于如何生成平面wsdl的

希望看到代码后,您可以构建一个为您实现这一点的工具


否则,您可以使用Altova Xml Spy手动执行此操作,并用xsd模式定义替换xsd导入属性。

当然,我可以建议您将多个xsd文件合并到可能的最小集合中(我在这里有偏见,因为我编写了它)。如果您有大量的文件、许多名称空间,或者两者都有,那么这本身就是一项繁重的任务。根据您可能配置的一些参数,将多个wsdl合并为一个wsdl可能会变得更加棘手;例如,从逻辑上讲,是一个WSDL编写在三个层上,维护消息-端口类型-服务的分离,还是多个WSDL?您必须确保的一件事是,所有子系统共享相同的类型,操作等方面没有冲突。但即使这是一项可以完成的任务,我也可以轻松地推出一个插件。。。如果这是您经常看到的XML模式和wsdl的重构,请告诉我。

我们想要一个wsdl文件来利用一些工具在PHP端自动生成soap代理。但我们最终还是手工编写了DTO层


如果您在.NET4.5中有wcf服务,您可以很容易地只获得一个wsdl文件(wcf框架的内置功能)

我尝试了WCFExtras,但不起作用,因为它只需要一个wsdl文件,而且我有不同名称空间的嵌套服务。例如:ConcreteService:IService,哪个IService:IServiceBase。。。IService和IServiceBase具有不同的名称空间。你认为这个“FlatWsdl”在我的情况下有效吗?顺便说一句,我需要这个,以便从PHPIf使用它。如果你使用的是.NET 4.5,你有一个WCF框架的内置功能来生成单个wsdl文件。否则,您需要建立自己的定制服务工厂。关于接口的不同名称空间,如果可以使用.NET客户端调用相同名称空间,那么生成单个平面wsdl也应该可以。当您希望非.NET客户端使用WCF服务时,需要使用平面WSDL。“当您希望非.NET客户端使用WCF服务时,需要平面WSDL”不一定正确;例如,基于Java的工具能够使用任何有效的WSDL,无论涉及多少WSDL和外部XSD文件。@PetruGardea:是的,我同意这并不总是正确的,但使用平面WSDL会使大多数客户机(某种程度上)都能使用您的服务。好的,我会尝试一下(顺便说一句,你的网站很慢,需要我注册?)@Cristi,是的,它确实需要注册以获得支持和自动更新;至于速度慢,可能是一个小故障,现在看起来还可以。我注意到你在那之后发布了需要从PHP使用它的帖子……我的是一个在桌面上运行的独立应用程序。看看这个,了解一下XSD重构的想法;如果你想继续而不注册,sen我会用网站上的支持地址给我发一封电子邮件,我会在你不注册的情况下设置一个下载链接。你指的是WCF自动生成的WSDL?还是“合同优先”,这些文件来自其他地方?是的,是WCF创建的WSDL文件。