Возьмите wsdl tripservice из по этой ссылке В этом wsdl я заменил элемент from следующим (добавлен nillable как true и добавлено ограничение минимальной длины и максимальной длины).
<xs:element minOccurs="0" name="from" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="12"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Теперь в моем клиенте vb.net я вызвал службу, добавив ссылку на службу, wsdl сохранен в локальной папке.
Dim objproxy As New Tripservice.TripPriceServiceFacadeClient
Dim gh As New Tripservice.trip
gh.adults = 9
gh.duration = 8
gh.rooms = 8
gh.to = "p"
objproxy.getTripPrice(gh)
Будет выброшена исключительная ситуация для конечной точки, однако меня интересует запрос xml. Я включил трассировку и обнаружил, что генерируется приведенный ниже запрос.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<getTripPrice xmlns="http://trip.price.service">
<trip xmlns="">
<adults>9</adults>
<duration>8</duration>
<from xsi:nil="true"/>
<rooms>8</rooms>
<to>p</to>
</trip>
</getTripPrice>
</s:Body>
</s:Envelope>
Элемент из xsi: nil = "true" генерируется, хотя я не касаюсь элемента в своем коде vb.net для генерации запроса. Элемент необязателен согласно wsdl (min происходит = 0). Как я могу отправить запрос без имени элемента from, даже переданного в запросе?