node-soap客户端中的数组字段的名称空间(Node.js)

如何为数组configurationnode-soap客户端集名称空间不仅用于对象?

我的“sendPatient”方法的参数:

params = { patientCard: { patient: { firstName: 'test', lastName: 'test' }, identifiers: { code: "123456789", codeType: 1 } } }; client.sendPatient(params, ...) 

节点肥皂产生:

 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://xxx/patient/api/" xmlns:bi="http://xxx/base/info/build/"> <soap:Header></soap:Header> <soap:Body> <tns:sendPatient xmlns:tns="http://xxx/patient/api/" xmlns="http://xxx/patient/api/"> <tns:patientCard> <ns1:patient xmlns:ns1="http://xxx/patient/"> <ns1:firstName>test</ns1:firstName> <ns1:lastName>test</ns1:lastName> </ns1:patient> <ns1:identifiers xmlns:ns1="http://xxx/patient/"> <ns1:code>123456789</ns1:code> <ns1:codeType>1</ns1:codeType> </ns1:identifiers> </tns:patientCard> </tns:sendPatient> </soap:Body> </soap:Envelope> 

它的工作原理,但我需要发送标识符数组,不仅一个,所以当我把数组

 params = { patientCard: { patient: { firstName: 'test', lastName: 'test' }, identifiers: [ { code: "123456789", codeType: 1 }, { code: "987654321", codeType: 2 } ] } }; 

节点肥皂产生:

 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://xxx/patient/api/" xmlns:bi="http://xxx/base/info/build/"> <soap:Header></soap:Header> <soap:Body> <tns:sendPatient xmlns:tns="http://xxx/patient/api/" xmlns="http://xxx/patient/api/"> <tns:patientCard> <ns1:patient xmlns:ns1="http://xxx/patient/"> <ns1:firstName>test</ns1:firstName> <ns1:lastName>test</ns1:lastName> </ns1:patient> <ns1:identifiers> <ns1:code>00100180035</ns1:code> <ns1:codeType>1</ns1:codeType> </ns1:identifiers> <ns1:identifiers> <ns1:code>00100180035</ns1:code> <ns1:codeType>1</ns1:codeType> </ns1:identifiers> </tns:patientCard> </tns:sendPatient> </soap:Body> </soap:Envelope> 

而我从服务器获取<ns1:identifiers>部分的错误

 `[com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "ns1" at [row,col {unknown-source}]: [17,25]]` 

我究竟做错了什么? 我可以以某种方式将xmlns:ns1="http://xxx/patient/"<soap:Envelope>标记或configurationnode-soap以将其添加到数组(也不仅用于简单对象)? PS对不起,我的英语

在Github上发布临时解决scheme

之后createClient补丁wsdl的定义

 soap.createClient(wsdl, options, function(err, client) { client.wsdl.definitions.xmlns.ns1 = 'http://xxx/patient/' client.wsdl.xmlnsInEnvelope = client.wsdl._xmlnsMap() //works now client.sendPatient(...) });