strong node easy createclient xml node.js soap wsdl

xml - node - strong soap



Node-soap: ¿Cómo crear un mensaje complejo con atributos específicos? (1)

Este es el mensaje que necesito enviar a wsdl :

<?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://WSDLPROVIDER" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:enqueue> <domain xsi:type="xsd:string">STH</domain> <messageBodies SOAP-ENC:arrayType="xsd:string[1]" xsi:type="SOAP-ENC:Array"> <item xsi:type="xsd:string">STHE</item> </messageBodies> <recipientNumbers SOAP-ENC:arrayType="xsd:string[2]" xsi:type="SOAP-ENC:Array"> <item xsi:type="xsd:string">09xxxxxxxx</item> <item xsi:type="xsd:string">09xxxxxxxx</item> </recipientNumbers> <senderNumbers SOAP-ENC:arrayType="xsd:string[1]" xsi:type="SOAP-ENC:Array"> <item xsi:type="xsd:string">3000xxxxx</item> </senderNumbers> <encodings xsi:nil="true" xsi:type="SOAP-ENC:Array" /> <udhs xsi:nil="true" xsi:type="SOAP-ENC:Array" /> <messageClasses xsi:nil="true" xsi:type="SOAP-ENC:Array" /> <priorities xsi:type="SOAP-ENC:Array" /> <checkingMessageIds SOAP-ENC:arrayType="xsd:long[2]" xsi:type="SOAP-ENC:Array"> <item xsi:type="xsd:long">100</item> <item xsi:type="xsd:long">101</item> </checkingMessageIds> </ns1:enqueue> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Y hasta ahora, he hecho esto:

var args = { domain: ''STHE'', messageBodies: { item: { attributes: { ''xsi:type'': ''xsd:string'' }, $value: "hi" } }, "recipientNumbers": { attributes:{ "SOAP-ENC:arrayType": "xsd:string[2]", "xsi:type": "SOAP-ENC:Array" }, "item": { attributes:{ "xsi:type": "xsd:string" }, $value: "09xxxxxx" } }, "senderNumbers": { attributes:{ "SOAP-ENC:arrayType": "xsd:string[1]", "xsi:type": "SOAP-ENC:Array" }, "item": { attributes: { "xsi:type": "xsd:string" }, $value: "30xxxxx" }

Lo que resulta esto:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:impl="WSDLPROVIDER" xmlns:intf="WSDLPROVIDER" xmlns:tns1="urn:SOAPSmsQueue"> <soap:Header></soap:Header> <soap:Body> <impl:enqueue> <domain>STHE</domain> <messageBodies> <item xsi:type="xsd:string">hi</item> </messageBodies> <recipientNumbers> <item xsi:type="xsd:string">09xxxxxx</item> </recipientNumbers> <senderNumbers> <item xsi:type="xsd:string">30xxxxx</item> </senderNumbers> </impl:enqueue> </soap:Body> </soap:Envelope>

Traté de usar atributos en la parte messageBodies , pero cualquier combinación que utilicé falló sin cambios en la salida.

¿Hay alguna manera de pasar el mensaje en XML en lugar de la interfaz de Json ?

Cualquier ayuda será apreciada.


Suponiendo que enqueue es un método SOAP definido en el WSDL y lo está llamando desde el cliente creado por el nodo-soap, iría con algo como:

args: { attributes: { ''xmlns:xsd'':''http://www.w3.org/2001/XMLSchema'', ''xmlns:xsi'':''http://www.w3.org/2001/XMLSchema-instance'', ''xmlns:SOAP-ENC'':''http://schemas.xmlsoap.org/soap/encoding/'' }, $value: { ''domain'': { attributes: {''xsi:type'':''xsd:string''}, $value: ''STH'' }, ''messageBodies'': { attributes: { ''SOAP-ENC:arrayType'':''xsd:string[1]'', ''xsi:type'':''SOAP-ENC:Array'' }, $value: { ''item'': { attributes: {''xsi:type'':''xsd:string''}, $value: [ ''STHE'' ] } } }, ''recipientNumbers'': { attributes: { ''SOAP-ENC:arrayType'':''xsd:string[2]'', ''xsi:type'':''SOAP-ENC:Array'' }, $value: { ''item'': { attributes: {''xsi:type'':''xsd:string''}, $value: [ ''09xxxxxxxx'', ''09xxxxxxxx'' ] } } }, ''senderNumbers'': { attributes: { ''SOAP-ENC:arrayType'':''xsd:string[1]'', ''xsi:type'':''SOAP-ENC:Array'' }, $value: { ''item'': { attributes: {''xsi:type'':''xsd:string''}, $value: [ ''3000xxxxx'' ] } } }, ''encodings'': { attributes: { ''xsi:nil'':''true'', ''xsi:type'':''SOAP-ENC:Array'' } }, ''udhs'': { attributes: { ''xsi:nil'':''true'', ''xsi:type'':''SOAP-ENC:Array'' } }, ''messageClasses'': { attributes: { ''xsi:nil'':''true'', ''xsi:type'':''SOAP-ENC:Array'' } }, ''priorities'': { attributes: { ''xsi:type'':''SOAP-ENC:Array'' } }, ''checkingMessageIds'': { attributes: { ''SOAP-ENC:arrayType'':''xsd:long[2]'', ''xsi:type'':''SOAP-ENC:Array'' }, $value: { ''item'': { attributes: {''xsi:type'':''xsd:long''}, $value: [ ''100'', ''101'' ] } } } } }