2017-03-02 5 views
-1

nusoapで応答を正常に返しました。私が持っている要求がnusoapレスポンスで余分な<return>要素を取り除く方法

<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:B2BStandardApi"> 
<x:Header/> 
<x:Body> 
    <urn:getAccountValidationInput> 
     <urn:operationParameters> 
      <urn:TransactionReferenceCode>?</urn:TransactionReferenceCode> 
      <urn:TransactionDate>2017-03-02T00:00:00</urn:TransactionDate> 
     </urn:operationParameters> 
     <urn:accountInfo> 
      <urn:AccountNumber>00019</urn:AccountNumber> 
     </urn:accountInfo> 
     <urn:institution> 
      <urn:InstitutionCode>?</urn:InstitutionCode> 
      <urn:InstitutionName>?</urn:InstitutionName> 
     </urn:institution> 
    </urn:getAccountValidationInput> 
</x:Body> 

であり、以下に示すような応答は、

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Header>headerstring</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
    <ns1:getAccountValidationOutput xmlns:ns1="urn:B2BStandardApi"> 
     <return> 
      <operationParameters> 
       <TransactionReferenceCode xsi:type="xsd:string">CICAM-000080</TransactionReferenceCode> 
       <TransactionDate xsi:type="xsd:string">2017-03-02 13:43:59+03:00</TransactionDate> 
       <TotalAmount xsi:type="xsd:float">0</TotalAmount> 
       <Currency xsi:type="xsd:string"></Currency> 
       <AdditionalInfo xsi:type="xsd:string"></AdditionalInfo> 
      </operationParameters> 
      <accountInfo xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="unnamed_struct_use_soapval[3]"> 
       <item> 
        <AccountNumber xsi:type="xsd:string">00017-002-00019-003</AccountNumber> 
        <AccountType xsi:type="xsd:string">Equity Fund</AccountType> 
       </item> 
       <item> 
        <AccountNumber xsi:type="xsd:string">00017-002-00019-004</AccountNumber> 
        <AccountType xsi:type="xsd:string">Fixed Income</AccountType> 
       </item> 
       <item> 
        <AccountNumber xsi:type="xsd:string">00017-004-00019-002</AccountNumber> 
        <AccountType xsi:type="xsd:string">Money Market</AccountType> 
       </item> 
      </accountInfo> 
      <institution> 
       <InstitutionCode xsi:type="xsd:string">CICAM</InstitutionCode> 
       <InstitutionName xsi:type="xsd:string">CIC ASSET MANAGEMENT</InstitutionName> 
      </institution> 
     </return> 
    </ns1:getAccountValidationOutput> 
</SOAP-ENV:Body> 

である私は、REPONSEからexpetected REPONSEを余分な要素を削除したいです戻り値タグは使用しないでください。

サービスはNuSoapPHP7で実行されます。

がどのように私はいくつかの掘削後の余分な要素

+0

ようでしょうか? –

+0

レスポンスを生成するコードを記述しましたか?そうでなければ、あなたは彼らがあなたに与えるものに対処しなければなりません! – RiggsFolly

+0

Marcin Orlowski、私はリターンをシリアライズするresposneクラスを書こうとしましたが、空の応答、RiggsFollyを与えました。私はデータベースからデータを取得し、応答を返すvalidate関数を持っています – Ally

答えて

0

を削除することができ、私はリターンタグが必要だったことすべてがリターンとして入力パラメータを使用していたリターン・パラメータからだったことが判明実現しました。 当初の表示は次のとおりです。

))でした。上記から

、iは、XML要素として、リターンキー内にラップされる配列を返すし、

必要は

$server->register(
"getAccountValidationInput", 
array("operationParameters" => "tns:operationParameters", "accountInfo" => "tns:accountInfo", "institution" => "tns:institution"), 
array("operationParameters" => "tns:Parameters", "accountInfo"=>"tns:accounts", "institution"=>"institution"), 
"urn:B2BStandardApi", 
"urn:B2BStandardApi#AccountValidation", 
"rpc", "literal", "Get member details by member number" 

)の通りです。

戻り値は、あなたがこれまでに試してみました何

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Header>headerstring</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
    <ns1:getAccountValidationOutput xmlns:ns1="urn:B2BStandardApi"> 
     <operationParameters> 
      <TransactionReferenceCode>CICAM-000114</TransactionReferenceCode> 
      <TransactionDate>2017-03-03 11:02:53+03:00</TransactionDate> 
      <TotalAmount>0</TotalAmount> 
      <Currency></Currency> 
      <AdditionalInfo/> 
     </operationParameters> 
     <accountInfo> 
      <item> 
       <AccountNumber>0001700200019004</AccountNumber> 
       <AccountName>Fixed Income</AccountName> 
      </item> 
     </accountInfo> 
     <institution> 
      <InstitutionCode>CICAM</InstitutionCode> 
      <InstitutionName>ASSET MANAGEMENT</InstitutionName> 
     </institution> 
    </ns1:getAccountValidationOutput> 
</SOAP-ENV:Body> 

関連する問題