0

.NetSoapクライアントとWSF/PHPクライアントを使用して同じSOAPサービスを呼び出すと、送信されたXMLの違いを確認できます。

これが私のものです:

<soapenv:Envelope>
    <soapenv:Header>
        <soapenv:Action>http://www.aaa.fr/SendMessage</soapenv:Action>
        <wsse:Security soapenv:mustUnderstand="1">
            <xenc:EncryptedKey Id="EncKeyID-xxxxxxxxx-xxxx-xxxx-xxxx">

これが.NetXMLです:

<s:Envelope>
    <s:Header>
        <a:Action s:mustUnderstand="1" u:Id="_3">http://www.aaa.fr/SendMessage</a:Action>
        <o:Security s:mustUnderstand="1">
            <e:EncryptedKey Id="EncKeyID-xxxxxxxxx-xxxx-xxxx-xxxx">

私はXMLもSOAPの専門家でもありませんが、それは大したことですか?

4

1 に答える 1

1

違いは、名前空間プレフィックスの定義にあります。名前空間プレフィックス「s」が「soapenv」と同じ名前空間を指し、「o」が「wsse」と同じ名前空間を指し、「e」が「xenc」などと同じ名前空間を指している限り。問題はないはずです。XMLは事実上同じです。

例:

<a:NodeA xmlns:a="http://www.a.com">
    <b:NodeB xmlns:b="http://www.b.com">
        <c:NodeC xmlns:c="http://www.c.com">My Data!</c:NodeC>
    </b:NodeB>
</a:NodeA>

と同じです

<anamespace:NodeA xmlns:anamespace="http://www.a.com">
    <bns:NodeB xmlns:bns="http://www.b.com">
        <c:NodeC xmlns:c="http://www.c.com">My Data!</c:NodeC>
    </bns:NodeB>
</anamespace:NodeA>

プレフィックスは異なりますが、両方の例で同じ名前空間を指しているためです(それぞれ、 http://www.a.com、http://www.b.com、およびhttp://www.c.com)。

于 2013-01-31T10:33:41.637 に答える