2012-01-06 9 views
0

にXMLで問題私はPHPでWebサービス用のXMLを作成するときに、私はSOAP UIに配列を送って返しますが、SOAP UI自動的にXMLで参照を作成 例えば次の同じXML直面WSDL

ため

<s:something name='test' id='ref1'> 
<s:something name='h1' /> 
<s:something name='h2' /> 
</s:something> 

私が欲しいもの

<s:something name='test' href='#ref1'> 

はあなたが二度同じオブジェクトを返します

<s:something name='test'> 
<s:something name='h1' /> 
<s:something name='h2' /> 
</s:something> 

<s:something name='test'> 
<s:something name='h1' /> 
<s:something name='h2' /> 
</s:something> 
+0

あなたの質問は?自動的にはどういう意味ですか、プログラミング言語を使用していますか? – home

+0

はいphpとsoapUI –

+0

申し訳ありませんが、わかりません。一般的に、SoapUIはスキーマ(wsdl)定義に従ってXMLを作成します。あなたはそれらの細部に気を付けるべきではありません。 – home

答えて

0

私はそれが問題ではないことを発見しました。返す要素に静的にid = 'ref1'を与えています。だからhref = '#ref1'となるとid = 'ref1'要素から参照する必要があります。

+0

解決方法をいくつか追加してください。 –

+0

同じXMLが正常に動作したという問題はありませんでした。 –

+0

修正されました。 :) –

0

です。したがって、PHPが結果として生成するのは*:

ここにオブジェクトがあります。私はそれを#1と呼ぶ

ああ、私はもう一度それを返さなければならない。詳細については、#1を参照してください。

アレイを別にする場合は、アレイの値をコピーして戻す必要があります。だからではなく、

$resultArray2[] = $resultArray1[0]; 

のあなたは、オブジェクトのクローンを作成する必要があります:

#resultArray2[] = clone $resultArray1[0]; 

(私はまだあなたのコードのいずれかを見ていないてきたようにあなたのコードは、異なる場合があります)


*少なくとも、そういうわけで、内部の独り言が〜のように聞こえると思います: