我正在使用一个第三方Web服务,其定义和实现超出了我的控制范围。这个Web服务将来会发生变化。
应该使用Web服务生成一个XML文件,其中包含与Web服务相同的一些数据(由相同的XSD类型表示),以及程序生成的一些额外信息。
我的方法:
1. 创建自己的XSD,引用调用Web服务的WSDL的XSD定义(此XSD还包括显然的额外信息的XSD类型)。 2. 使用Java XML数据绑定框架(如ADB或JiXB)从步骤1中的自己的XSD文件生成数据绑定类。 3. 使用与相同数据绑定框架的Java SOAP框架(如Axis2或CXF)从WSDL生成数据绑定类(这将使我能够直接在生成XML时使用从Web服务检索到的对象)。
我将在自己的XSD文件中使用的XSD类型,但在WSDL中定义,可能会发生变化。每当它们更改时,我希望自动处理XSD和WSDL数据绑定。 (如果更改足够重要,则可能会触发一些开发工作。 (但通常不会。))
我的问题:
在步骤1中,我需要一个引用Web服务使用的相同类型的XSD。
WSDL引用另一个WSDL,后者引用另一个WSDL等。最终有一个包含所需内联XSD类型的WSDL。据我所知,没有直接从XSD引用WSDL中的内联XSD类型的方法。
我认为最可行的方法是在自动处理(数据绑定之前)中包含一个额外的步骤,该步骤将内联XSD从WSDL提取到其他XSD文件中。然后,我的XSD文件可以引用这些其他XSD文件。
我想避免的事情:
手动复制内联XSD到XSD文件中(我正在寻找自动过程)。 任何手动步骤。(例如手动确定包含内联类型的WSDL。(该WSDL的位置也会更改。)) 在我的XSD中使用xsd:any。我希望我的XSD文件是正确的。 使用非Java技术(如.NET) 大量的实现(但欢迎关于如何实现此类提取的提示)
PS:我发现了一些类似的问题,但它们都有像“你为什么要那样做?”这样的回答。这就是我背景故事相当大的原因。
应该使用Web服务生成一个XML文件,其中包含与Web服务相同的一些数据(由相同的XSD类型表示),以及程序生成的一些额外信息。
我的方法:
1. 创建自己的XSD,引用调用Web服务的WSDL的XSD定义(此XSD还包括显然的额外信息的XSD类型)。 2. 使用Java XML数据绑定框架(如ADB或JiXB)从步骤1中的自己的XSD文件生成数据绑定类。 3. 使用与相同数据绑定框架的Java SOAP框架(如Axis2或CXF)从WSDL生成数据绑定类(这将使我能够直接在生成XML时使用从Web服务检索到的对象)。
我将在自己的XSD文件中使用的XSD类型,但在WSDL中定义,可能会发生变化。每当它们更改时,我希望自动处理XSD和WSDL数据绑定。 (如果更改足够重要,则可能会触发一些开发工作。 (但通常不会。))
我的问题:
在步骤1中,我需要一个引用Web服务使用的相同类型的XSD。
WSDL引用另一个WSDL,后者引用另一个WSDL等。最终有一个包含所需内联XSD类型的WSDL。据我所知,没有直接从XSD引用WSDL中的内联XSD类型的方法。
我认为最可行的方法是在自动处理(数据绑定之前)中包含一个额外的步骤,该步骤将内联XSD从WSDL提取到其他XSD文件中。然后,我的XSD文件可以引用这些其他XSD文件。
我想避免的事情:
手动复制内联XSD到XSD文件中(我正在寻找自动过程)。 任何手动步骤。(例如手动确定包含内联类型的WSDL。(该WSDL的位置也会更改。)) 在我的XSD中使用xsd:any。我希望我的XSD文件是正确的。 使用非Java技术(如.NET) 大量的实现(但欢迎关于如何实现此类提取的提示)
PS:我发现了一些类似的问题,但它们都有像“你为什么要那样做?”这样的回答。这就是我背景故事相当大的原因。