Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Web服务互操作性—wsdl复杂类型扩展_Asp.net_Web Services_Jax Ws_Axis2_Java Metro Framework - Fatal编程技术网

Asp.net Web服务互操作性—wsdl复杂类型扩展

Asp.net Web服务互操作性—wsdl复杂类型扩展,asp.net,web-services,jax-ws,axis2,java-metro-framework,Asp.net,Web Services,Jax Ws,Axis2,Java Metro Framework,假设我们有一个使用WSDL复杂类型扩展的Web服务。考虑下面的(有效的WSDL)示例,其中代码> >文件> 是抽象的。两种类型,汽车和自行车,继承自它: 以及使用车辆类型作为其元素之一的类型运输: <xs:complexType name="Transport"> <xs:sequence> <xs:choice> <xs:element ref="tns:Car"/> <xs:elemen

假设我们有一个使用WSDL复杂类型扩展的Web服务。考虑下面的(有效的WSDL)示例,其中代码> >文件> <代码>是抽象的。两种类型,
汽车
自行车
,继承自它:


以及使用
车辆
类型作为其元素之一的类型
运输

<xs:complexType name="Transport">
  <xs:sequence>
      <xs:choice>
        <xs:element ref="tns:Car"/>
        <xs:element ref="tns:Bike"/>
      </xs:choice>
    <xs:element name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>

请注意,
Vehicle
本身并不是
Transport
中可能的类型,这当然是因为
Vehicle
是抽象的。在JavaMetro堆栈中很容易生成上述内容。在这里给了我一些有价值的意见

我的问题是,这将如何在web服务互操作性方面发挥作用,特别是在与web服务相关的方面我能否确保符合WS-I的web服务框架能够使用此类web服务?。我知道WS-I基本上只指定WSDL中允许的内容的子集。我尝试阅读WS-I规范来理解这个问题,但没有真正的运气。语言对我来说太难了。我发现了一个令人担忧的问题:

这种担心的基本原因是扩展的使用 值对象继承的机制不在WS-I basic中 配置文件,但未明确排除在外。目前有 没有提到在WS-I基本概要文件中使用扩展构造 此外,WS-I合规性测试套件并未涵盖这一点 案例

…但那是在2004年,显然与WS-I基本概要v1.0有关。从那时起,WS-I基本概要1.1、1.2和2.0规范已经发布

所以问题是:使用WSDL值类型扩展特性(即
)的web服务能否在所有声称兼容的框架中工作?他们可以使用这样的web服务吗?

对xml说了以下几点:

该概要文件使用Web服务描述语言(WSDL)将服务描述为对消息进行操作的端点集。本节通过引用纳入了以下规范(…):

因此,它引用XML模式作为其基础:

抽象复杂类型可以用作{base type definition},甚至可以用作元素声明的{type definition},只要在每种情况下都使用一个具体的派生类型定义进行·验证·,即通过xsi:type(§2.6.1)或替换组的操作

此外,文档中还有很多要说明的结构

但所有这些都是在概念层面上,不一定与对象继承直接相关。虽然制作这样的映射可能不太困难(您的链接正好显示了这一点),但它也没有严格定义。我想这就是他们提出问题时所说的

因此,从技术和语法上讲,构造是标准的一部分,但实现可能以无法预见的方式处理它。另一方面,遵循该标准的工具应该能够接受和输出有效的WS-I XML,并按照中的规定执行验证

总之,我要说的是,任何不能以某种方式处理您的构造的工具都不是有效的WS-I实现