5

savon gemを使用すると、次のリクエスト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>

しかし、代わりにこれである必要があります:

<?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>

通知ins0は削除されました。

助言がありますか?

4

1 に答える 1

2

2つのXMLドキュメントは同等であるため、ドキュメントがXML準拠のエージェントによって解析される限り、問題は発生しません。

Savonが生成したドキュメントは、「SOMEURL」名前空間のins0の名前空間プレフィックスを作成しているだけです。これは、その名前空間の多くの要素を含む大きなSOAPドキュメントに便利です。この例では、プレフィックスは実際には必要ありません。

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

于 2012-05-06T08:31:43.893 に答える