nill属性为nillable complexType

时间:2015-04-24 11:58:35

标签: php soap wsdl soap-client complextype

我在使用类创建PHP Soap Request时遇到问题。低于WSDL的一部分。

<s:element minOccurs="0" maxOccurs="1" name="Bars" type="tns:ArrayOfBars"/>

<s:complexType name="ArrayOfBars">
    <s:sequence>
        <s:element minOccurs="0" maxOccurs="unbounded" name="Bar" nillable="true" type="tns:Bar"/>
    </s:sequence>
</s:complexType>

<s:complexType name="Bar">
    <s:sequence>
        <s:element minOccurs="1" maxOccurs="1" name="Name" type="s:string"/>
        ... --more elements-- ...
    </s:sequence>
</s:complexType>

在课堂下面

class Foo
{
    public $Bars;

    public function __construct()
    {
        $this->Bars = array();
    }
}

class Bar
{
    public $Name;

    public function __construct()
    {
        $this->Name = null;
    }
}

如何在下面创建请求?据我所知,这是一个有效的请求,因为Bar元素是可以为空的。

<ns1:Foo>
        <ns1:Bars>
            <ns1:Bar xsi:nil="true"/>
        </ns1:Bars>
<ns1:Foo>

当我将Bars属性更改为array(null)时,我收到错误Object reference not an instance of an object.。当我将其更改为array(new Bar())时,它必须是完整有效的Bar对象。

0 个答案:

没有答案