WCFサービスを作成しましたが、SOAPUIを使用してSOAPリクエストを送信しています。xmlルートタグに名前空間を明示的に追加するWCF
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:w3="http://www.w3.org/">
<soapenv:Header />
<soapenv:Body>
<w3:PerformScan>
<w3:request>
<w3:SearchConfiguration>
<w3:ConfidenceThreshold>?</w3:ConfidenceThreshold>
<w3:ResultConfiguration></w3:ResultConfiguration>
<w3:ScanRequest xsi:type="w3:CustomerRequest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<w3:CustomerId>?</w3:CustomerId>
<w3:CustomerName>?</w3:CustomerName>
</w3:ScanRequest>
</w3:SearchConfiguration>
</w3:request>
</w3:PerformScan>
</soapenv:Body>
</soapenv:Envelope>
しかし、私は要求XMLを変更する必要があり、それが実行可能にする:
は、以下のツールが私のC#モデルから生成された要求XMLです。以下は修正され、実用的なXMLです:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:w3="http://www.w3.org/">
<soapenv:Header />
<soapenv:Body>
<w3:PerformScan xmlns:w3="http://www.w3.org/">
<w3:request>
<w3:SearchConfiguration>
<w3:ConfidenceThreshold>?</w3:ConfidenceThreshold>
<w3:ResultConfiguration></w3:ResultConfiguration>
<w3:ScanRequest xsi:type="w3:CustomerRequest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<w3:CustomerId>?</w3:CustomerId>
<w3:CustomerName>?</w3:CustomerName>
</w3:ScanRequest>
</w3:SearchConfiguration>
</w3:request>
</w3:PerformScan>
</soapenv:Body>
</soapenv:Envelope>
は、どのように私はC#のモデルやどのようなツールから生成しながらautopopulated xmlns:w3="http://www.w3.org/"
PerformScan
内のノードを作るために行うに強制することができます。
どちらも同じですが、違いはありません。同じ名前空間を2回定義する必要はありません。 – Rao
はい両方が同一です。しかし、私はPerformScanまたはリクエストノードにxmlns:w3 = "http://www.w3.org/"を追加する必要があります。それ以外の場合はエラーが発生します:属性 'type'に無効な値 'w3:CustomerRequest 'スキーマタイプ' QName 'に従っています - ' w3 'は宣言されていない接頭辞です。私はxsdスキーマ検証を使用しているので。 –
クライアント側よりもサーバー側で対処する必要があるかもしれません。 – Rao