asp.net – Web服务互操作性 – wsdl复杂类型扩展
假设我们有一个使用WSDL复杂类型扩展的Web服务.考虑下面的(有效的WSDL)示例,其中Vechicle是抽象的.汽车和自行车两种类型继承自:
<xs:complexType name="Vehicle" abstract="true"> <xs:sequence> <xs:element name="common1" type="xs:string" minOccurs="0"/> <xs:element name="common2" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="Car"> <xs:complexContent> <xs:extension base="tns:Vehicle"> <xs:sequence> <xs:element name="carValue1" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> <xs:complexType name="Bike"> <xs:complexContent> <xs:extension base="tns:Vehicle"> <xs:sequence> <xs:element name="bikeValue1" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> 以及使用Vehicle类型作为其元素的类型Transport: <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是抽象的.很容易在Java Metro堆栈中生成以上内容. Blaise Doughan’s blogs在这里给了我一些宝贵的意见. 我的问题是这将如何在Web服务互操作性方面起作用,特别是与WS-I Basic Profile相关.我能否确定符合WS-I的Web服务框架能够使用这样的Web服务?据我所知,WS-I基本上只指定了WSDL中允许的子集.我已经尝试阅读WS-I规范来理解这个问题,但没有真正的运气.这种语言对我来说太难了.我发现article from 2004引起了一些担忧: 这种担忧的根本原因是扩展的使用 …但那是在2004年,显然与WS-I Basic Profile v1.0有关.从那时起,WS-I Basic配置文件1.1,1.2和2.0规范已经发布. 所以问题是:使用WSDL值类型扩展功能的Web服务(即< xs:complexType name =“xxx”abstract =“true”>和< xs:extension base =“xxx”>)是否正常工作在所有声称符合WS-I Basic Profile标准的框架中?他们可以使用这种网络服务吗? 解决方法
WS-I Basic Profile说下面关于xml:
因此它将XML Schema引用为它所基于的东西. In there,you’ll find:
此外,it defines构造<扩展基数=“QName”>该文件有很多话要说. 但所有这些都是概念层面的,不一定直接将它与对象继承联系起来.虽然制作这样的映射可能并不太困难(并且您的链接确实显示了这一点),但它也没有严格定义.我猜这是他们在提出问题时所谈论的内容. 从技术和语法上讲,构造是标准的一部分,但实现可能会以不可预见的方式处理它.另一方面,遵循标准的工具应该能够接受和输出有效的WS-I XML,并执行XML standard中规定的验证. 总而言之,我会说任何无法以某种方式处理构造的工具都不是有效的WS-I实现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC5将项目添加到列表中
- asp.net – 从Application_BeginRequest()中设置后,AsyncLo
- asp.net-mvc – 从Visual Studio 2015 Update 1 RC恢复
- asp.net-mvc – 如何从用户友好的URL中删除不必要的信息,然
- 在文件ASP.NET C#中写入并且之后不锁定它们
- 像ASP.NET WebControls一样,在dll中可重用的ASP.NET MVC组件
- asp.net-mvc – 使用MVC为iPhone应用构建RESTful API – 如
- asp.net – 对于每个循环都有控件并在MVC 4中提交表单(Html
- asp.net – 如何在AJAX中显示状态描述?
- asp.net – MVC 3,(razor)加载部分与验证
- asp.net – 检查site.master页面中的条件
- asp.net – 如何从url中删除returnurl?
- asp.net-mvc – 新ASP.NET MVC 6身份中AspNetUse
- asp.net-core – 如何在.NET Core 2.0中使用Prin
- asp.net – 我的C#Web应用程序项目中缺少Identit
- razor – 如何定义在asp.net核心中返回html的函数
- asp.net-mvc – 将解决方案分成不同的项目
- 谈谈ASP.NET Core中的ResponseCaching
- asp.net – Web用户控件通过XML填充项目
- Asp.Net中ajax+ashx使用详解