2011-11-08 23 views
0

私はこのようなSOAPリクエストを作成する必要があります。SOAPでリクエストするXML属性を追加する方法は?

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:stor="http://storage.xdoc.xx/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <stor:createDocument> 
     <parentEntryId>workspace://SpacesStore/15f33e3a-32ba-4a5d-976f-c9e2096e1112</parentEntryId> 
     <name>test.txt</name> 
     <properties module="" name="Content" type="Binary"> 
      <valueBinary> 
       <bytes>cXdlcnR5</bytes> 
      </valueBinary> 
     </properties> 
     </stor:createDocument> 
    </soapenv:Body> 
</soapenv:Envelope> 

私の知る限り、私はネストされた配列を使用する必要があるが、問題は、XMLのプロパティであることを理解ように。 SoapVarは私が必要とするものではないようです。

$client->__callSoap("createDocument", 
           array(new SoapParam($name, "name"), 
             new SoapParam(
               new SoapParam(
                 new SoapParam(
                   $contents, 
                   "bytes" 
                 ), 
                 "valueBinary" 
               ), 
               "properties" 
             ) 
           ) 
         ); 

"プロパティ" に属性を追加する方法:

今私は、このような電話を持っていますか?

ありがとうございます。

答えて

-1

私はこの仕事をするために、いくつかのバリエーションを試してみた - ネストされた配列で、そしてはstdClass、およびSoapVar、配列、およびそれらの組み合わせをenconded、などしかし、私は適切に動作することがわかっだけバリエーションがあることである:

$parameters = new stdClass(); 
$parameters->name = $name; 
$parameters->parentEntryId = $parentEntryId; 
$parameters->properties = new stdClass(); 
$propsSimpleVar = new SoapVar("<properties module=\"\" name=\"Content\" type=\"Binary\"><valueBinary><bytes>" . $cleanContents . "</bytes></valueBinary></properties>", XSD_ANYXML); 

$parameters->properties = $propsSimpleVar; 

$client->createDocument($parameters); 

私はそれもプロパティの配列で動作すると思います。 これは他の人にとって役に立ちます。

+0

Hackish solutin with XSD_ANYXML ... –

関連する問題