2017-06-27 47 views
1

我正在使用模塊strong-soapNode.js我試圖發送請求RPC到Web服務。如何從soap參數中省略/設置xmlns:xsd屬性?

我創建選項的客戶端:

var wsdlOptions = { 
    attributesKey: '$attributes', 
    valueKey: '$value' 
}; 

我設置的參數如下所示:

var args = { 
     'para': { 
      $attributes: { 
       $xsiType: "xsd:string" 
      }, 
      $value: 'a' 
     }, 
     'parb': { 
      $attributes: { 
       $xsiType: "xsd:string" 
      }, 
      $value: 'b' 
     }, 
     'parc': { 
      $attributes: { 
       $xsiType: "xsd:string" 
      }, 
      $value: 'c' 
     } 
    }; 

然而,當我調用該方法,它產生的XML(信封):

<ns1:query xmlns:ns1="http://<host>"> 
     <para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="" xsi:type="xsd:string">a</para> 
     <parb xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="" xsi:type="xsd:string">b</parb> 
     <parc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="" xsi:type="xsd:string">c</parc> 
    </ns1:query> 

我得到一個錯誤信息:

屬性「prefix =」xmlns「,localpart =」xsd「,rawname =」xmlns:xsd「」的值無效。前綴名稱空間綁定可能不爲空。

我沒有看到任何方法來設置或從方法調用中刪除此參數。 當我在參數中設置$ xsiType時,lib會自動設置一個空的xmlns:xsd。

我與之交互的Web服務有一箇舊的SOAP實現,我認爲這可能是問題。有什麼建議麼?

回答

0

當指定爲$xsiType值嘗試使用以下格式:

"{namespace uri}namespace:type" 

例如,對於xsd命名空間,你可以指定以下內容:

$xsiType: "{http://www.w3.org/2001/XMLSchema}xsd:string" 

以上應沿着線產生的東西作者:

<para xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">a</para> 
相關問題