如何定义和xsd元素可以使用以下soap请求格式(其中'MyOption'是可选的,可能不存在)?
请求1:
<sdf:MyElement>true</sdf:MyElement>
或
请求2:
<sdf:MyElement>
<sdf:MyOption>xxx</sdf:MyOption>
<sdf:Value>true</sdf:Value>
</<sdf:MyElement>
我试过这个,但它只适用于Request 2格式:
<xs:element name="MyElement" default="false" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attribute name="MyOption" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
答案 0 :(得分:0)
很抱歉,这不是您问题的严格答案,但我必须指出这一点。在wsdl模式中创建这样的元素并不容易。
看起来似乎没有合理的服务合同设计来提供这两种选择。它违反了SOA服务设计的原则,所以我强烈反对它。原因如下:
我的建议 - 只保留某种形式的Request 2格式,并选择Option。我想通过添加一个简单的元素序列来实现这一点,正如Martin Honnen在他的评论中指出的那样。