Я хотел настроить генерацию мыльных заголовков в файле WSDL. Для добавления заголовков я сделал следующее в файле WSDL:
1) Добавил элемент в файл WSDL для заголовка безопасности:
<xsd:element name="Security">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="wsse:SecurityHeaderType">
<xsd:sequence>
<xsd:element ref="wsse:UsernameToken"/>
<xsd:element ref="wsse:Password"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
2) Добавил следующее сообщение, котороеотносится к добавленному выше элементу:
<wsdl:message name="Header">
<wsdl:part element="ns1:Security" name="Security"/>
</wsdl:message>
3) И следующее в заголовке под:
<wsdl:input>
<soap:body use="literal" />
<soap:header use="literal" message="ns1:Header" part="Security"/> // line A
</wsdl:input>
Разница в ожидаемом и сгенерированном результате:
Как видите, у меня неправильное пространство имен для заголовка безопасности. Я установил его на строку, помеченную как строка A. Если я установлю message = "wsse: Header", то я не получу элемент, определенный в пространстве имен ns1. У меня также есть проблема с заголовком UsernameToken. Элемент пароля должен быть внутри него, но я не нахожу способа настроить это, поскольку я имею в виду wsse: UsernameToken.