Web services WSDL-XSD元素序列

Web services WSDL-XSD元素序列,web-services,soap,xsd,wsdl,Web Services,Soap,Xsd,Wsdl,XSD元素的顺序对客户端应用程序有重大影响吗 假设一个clinet应用程序被赋予了不同的顺序。这会对它产生任何影响吗 此外,客户机应用程序读取的顺序与XSD读取的顺序不同,这是一种特殊情况吗 谢谢,这取决于“合同”是怎么写的。。。使用哪种XSD“合成器”(顺序、选择和全部): 顺序:元素必须按照基数约束确定的准确顺序和重复显示。根据需要重复 选择:对于选择的任何出现,选项粒子中可能正好出现一个。如果选择是可重复的,则意味着这些选项可以重复,但没有特定的顺序 全部:元素可以以任何顺序出现;在XS

XSD元素的顺序对客户端应用程序有重大影响吗

假设一个clinet应用程序被赋予了不同的顺序。这会对它产生任何影响吗

此外,客户机应用程序读取的顺序与XSD读取的顺序不同,这是一种特殊情况吗

谢谢,这取决于“合同”是怎么写的。。。使用哪种XSD“合成器”(顺序、选择和全部):

  • 顺序:元素必须按照基数约束确定的准确顺序和重复显示。根据需要重复
  • 选择:对于选择的任何出现,选项粒子中可能正好出现一个。如果选择是可重复的,则意味着这些选项可以重复,但没有特定的顺序
  • 全部:元素可以以任何顺序出现;在XSD1.0版本中,每个元素最多只能出现一次;XSD1.1放松了这个约束,这意味着可能会发生更多相同的情况
如果为客户端应用程序提供的元素使用的顺序不同于使用关联的
xsd:sequence
指定的顺序,那么xsd验证器必须将XML标记为无效。它不应该对xsd:all或重复选择有影响

2) 如果使用XMLAPI处理XML,那么客户机应用程序读取的顺序始终是XML实例中的顺序(而不是XSD)。如果您使用某种XSD到代码绑定技术(如JAXB或.NET中的XML序列化)处理XML,那么只要XML有效,“排序”的概念就会受到影响。。。列表中的相应引用仍将反映XML文件中遇到的引用;然而,在面向对象中,类定义中没有字段的顺序(专有注释/标记仍然可以将其捕获为元数据,以便将其正确序列化,但这只是一种绑定技术“ism”,而不是OO概念)

然后是非常糟糕的XSD契约,元素的语义由元素在父节点集合中的相对位置暗示(例如,第一个客户是“主体”,第二个是“共同申请人”,等等),这使得讨论更加模糊