我正在调用一个服务女巫,在许多其他参数中需要一个条目,如(取自soapUI):
<v110:ReadWorkerRequest> <v111:Key v111:type="INITIALS">RKM</v111:Key> </v110:ReadWorkerRequest>
如何让Zend_Soap_Client在Key元素中发送type-属性?
由于这只是一个相当大的服务的一部分,我一直在创建类来创建数据结构,如:
class Key {
public $_ = 'RKM;
public $type = 'INITIALS';
}
class Body {
public $ReadWorkerRequest;
public function __construct() {
$this->ReadWorkerRequest = new Key();
}
}
然而,由于PHP失败,我甚至没有发送请求,告诉我:"SOAP-ERROR: Encoding: object hasn't 'Key' property"
所以我的问题是,我如何创建一个对象结构,可能与子部分创建为一个数组,这将尊重?
或者对象结构是否正确,并且我需要使用classmap或SoapVar(我尝试了一些组合,但没有成功)
节日快乐,给那些有假期的人!: -)
我自己花了很多时间试图解决这个问题,但我能想到的最好的方法是使用XSD_ANYXML hack,例如:
$this->ReadWorkerRequest = new SoapVar( '<v111:Key v111:type="INITIALS">RKM</v111:Key>', XSD_ANYXML );
这是一个相当讨厌的黑客。希望有人能提供更好的解决方案。