Я использую node-soap
для связи со службой, которая ожидает заголовок с элементами в разных пространствах имен.
При использовании такого инструмента, как SoapUI
, заголовок должен выглядеть следующим образом:
```xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tcorHeaders="http://www.tcore.com/TcoreHeaders.xsd" xmlns:tcorTypes="http://www.tcore.com/TcoreTypes.xsd">
<soapenv:Header>
<tcorHeaders:sessionHeader>
<tcorHeaders:sessionToken>
<tcorTypes:primary>token1</tcorTypes:primary>
<tcorTypes:secondary>token2</tcorTypes:secondary>
<tcorTypes:expiration>2018-09-19T03:35:19.478Z</tcorTypes:expiration>
</tcorHeaders:sessionToken>
</tcorHeaders:sessionHeader>
</soapenv:Header>
```
Но если я сделаю:
client.addSoapHeader({
sessionHeader : {
sessionToken: {
primary : 'token1',
secondary: 'token2',
expiration : '2018-09-19T03:35:19.478Z' }},
'', 'types', 'http://www.tcore.com/TcoreTypes.xsd');
Тогда результат будет выглядеть следующим образом:
```xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:headers="http://www.tcore.com/TcoreHeaders.xsd" xmlns:types="http://www.tcore.com/TcoreTypes.xsd">
<soap:Header>
<types:sessionHeader xmlns:types="http://www.tcore.com/TcoreTypes.xsd" xmlns="http://www.tcore.com/TcoreTypes.xsd">
<types:sessionToken>
<types:primary>token1</types:primary>
<types:secondary>token2</types:secondary>
<types:expiration>2018-09-19T03:35:19.478Z</types:expiration>
</types:sessionToken>
</types:sessionHeader>
</soap:Header>
```
Со всем, что назначено types
, и ничего не назначено headers
.
Как установить заголовок, содержащий объект с 2 различными пространствами имен?