在我的wsdl:消息中,我有两个参数,firstname和lastname:
<message name="setName">
<part name="firstname" type="xsd:string"></part>
<part name="lastname" type="xsd:string"></part>
</message>
我想根据需要定义“firstname”部分,并将“lastname”部分定义为可选。 我该怎么做?
答案 0 :(得分:18)
在WSDL中,部件不能是可选的。他们总是需要的。如果您需要可选部件,则必须创建一个引用XSD complexType的部件,然后该部件可以包含可选元素。
答案 1 :(得分:5)
您可以将 nullable 添加到 lastname ,因此 firstname 是必需的:
<message name="setName">
<part name="firstname" type="xsd:string"></part>
<part name="lastname" xsi:nil="true" type="xsd:string"></part>
</message>
如果您这样做,您的肥皂体看起来像(空或填充的姓氏):
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:user="http://www.example.com/MyService/">
<soapenv:Header/>
<soapenv:Body>
<user:setName>
<firstname>John</firstname>
<lastname></lastname>
</user:setName>
</soapenv:Body>
</soapenv:Envelope>
甚至没有姓氏:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:user="http://www.example.com/MyService/">
<soapenv:Header/>
<soapenv:Body>
<user:setName>
<firstname>John</firstname>
</user:setName>
</soapenv:Body>
</soapenv:Envelope>