2011-10-20 26 views
5

にins0を追加し、私は次の要求XML取得:サボンルビー宝石がサボンの宝石を使用してタグ

<?xml version="1.0" encoding="UTF-8"?> 
    <soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:wsdl="URL" 
     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
     xmlns:ins0="SOME URL"> 
     <soap:Body> 
      <ins0:Test xmlns="SOME URL"> 
      </ins0:Test> 
     </soap:Body> 
    </soap:Envelope> 

をしかし、それは、この代わりにする必要があります:ins0が削除された

<?xml version="1.0" encoding="UTF-8"?> 
    <soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:wsdl="URL" 
     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
     <soap:Body> 
      <Test xmlns="SOME URL"> 
      </Test> 
     </soap:Body> 
    </soap:Envelope> 

注意してください。

提案がありますか?

+0

http://stackoverflow.com/questions/6720720/how-to-stop-savon-from-adding-prefixes-to-soap-body –

+0

それを試してみましたが、私はエラーが発生しました: 'サーバーは、 HTTP Header SOAPAction:test.'の値を返します。これは "Test"アクションを実行して小文字にしたためです。 –

+0

実際に私はこのXMLの違いが何も壊れていないことを知りました。コードは正常に動作します。しかし、それは誰かのelsesコードを破る可能性があります。 –

答えて

2

2つのXML文書は同等です。したがって、XML準拠のエージェントによって文書が解析される限り、問題はありません。

Savonが生成した文書は、単に「SOME URL」名前空間の名前空間接頭辞ins0を作成するだけです。これは、その名前空間の要素が多い大きなSOAP文書にとって便利です。この例では、プレフィクスは実際には必要ありません。

私が見ることができる唯一の潜在的な問題は、Savionで生成されたドキュメントがins0名前空間を2回宣言しているようです。 - 一度はsoap:Envelopeで、次にsoap:Bodyで宣言したようです。不必要でエラーの可能性があると思われます。