5

私は PHP SoapServer クラスを使用しており、SOAP 応答の本文にプレーンな XML を入れようとしています。

ケース 1:

私の WSDL には

<element name="getDataResponse" type="xsd:string"/>

応答をエンコードします

return new SoapVar($my_xml,XSD_ANYXML)

PHP SoapClient 言う

SOAP-ERROR: Encoding: Violation of encoding rules

ケース 2:

WSDL

<element name="getDataResponse" type="xsd:string"/>

応答エンコーディング

return new SoapVar($my_xml,XSD_STRING)

応答 XML にはすべての < が < としてエンコードされています。そして > として >

ケース 3:

WDSL

<element name="getDataResponse">
  <complexType>
   ... 
  </complexType>
</element>

ここで、complexType は、返す XML の構造に対応します。

応答エンコーディング

return new SoapVar($my_xml,XSD_ANYXML)

戻り値の型が XML 文字列ではなくオブジェクトになりました

ケース 4

SOAP_ENC_OBJECT としてエンコードすることを除いて、ケース 3 と同じです。ここでも結果はオブジェクトになります。

助けてください!SOAP 応答の本文として単純な XML テキストを取得するにはどうすればよいですか?

4

1 に答える 1

5

これを試しましたか?

return new SoapVar(
     '<ns1:xmlDocument>'.$my_xml.'</ns1:xmlDocument>',
     XSD_ANYXML
);

この PHP ページ には、他のソリューションもあります。(「ユーザー投稿ノート」セクションを参照)

于 2013-03-15T10:25:40.240 に答える