У меня есть веб-служба, которую я пытаюсь вызвать с помощью продукта интеграции с мэйнфреймом (DataDirect Shadow z / Services), но мой вопрос носит более общий характер. Я хочу знать, как обычно обрабатывается элемент, определенный как minOccurs = "0". Операция в сторонней службе, которую я вызываю, имеет элемент complexType, где все элементы в ней помечены как minOccurs = "0".
Пример из WSDL
<xs:element minOccurs="0" name="Request">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="startDate" type="xs:dateTime"/>
<xs:element minOccurs="0" name="endDate" type="xs:dateTime"/>
<xs:element minOccurs="0" name="requestId" type="tns:ObjectName"/>
<xs:element minOccurs="0" name="reasonCode" type="xs:string"/>
<xs:element minOccurs="0" name="actionType" type="xs:string"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="option" type="xs:string"/>
<xs:element minOccurs="0" name="comments" type="xs:string"/>
<xs:element minOccurs="0" name="Name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
То, как эта служба работает на другом конце, если значение передается службе, , даже если оно пустое или пустое или по умолчанию , значение будет обновлено в сторонней системе. Мне нужен способ пропустить этот элемент в полезной нагрузке на службу . Как это вообще обрабатывается? Я пытался использовать C # в качестве клиента для этой службы, но единственное, что я могу найти, что они предоставляют, это переменная с суффиксом Specified
для не примитивных типов, но я не нашел способа опустить примитивные. Если бы я вызывал этот веб-сервис, просто POST
отправив SOAP-сообщение на сторонний сервер, я мог бы просто опустить XML для значения, которое я не хотел передавать, но мне просто интересно, как различные реализации клиента веб-сервиса обрабатывают это .
Если это поможет, я полагаю, что третья сторона использует Apache Axis и сказала, что может опустить дополнительные аргументы.