【发布时间】:2015-12-13 03:41:25
【问题描述】:
问题:当我通过 PHP SoapClient 向 Biztalk 发送请求时,我丢失了一个节点 <StreetName>。
Biztalk 通过 OAGIS 模式验证我们的请求。
对于发送,我将XML 转换为Array,并发送一个像数组一样的请求,但是当检查我的最后一个soap 请求$soapClient->__getLastRequest() 时,我正在丢失节点。
我的请求数组:
'Location' =>
array(
'Address' =>
array(
'StreetName' => 'StreetName',
'CityName' => 'Zyrardow',
'CountrySubDivisionCode' => 'PL',
'CountryCode' => 'PL',
'PostalCode' => '96-300',
),
),
在$soapClient->__getLastRequest() 我正在丢失节点<StreetName>:
</ns1:Location>
<ns1:Address>
<ns1:CityName>MyCityName</ns1:CityName>
<ns1:CountrySubDivisionCode>PL</ns1:CountrySubDivisionCode>
<ns1:CountryCode>PL</ns1:CountryCode>
<ns1:PostalCode>96-300</ns1:PostalCode>
</ns1:Address>
</ns1:Location>
在 OAGIS 文档节点 <Address> 中应包含此节点
OAGIS doc "Address"
如果我发送数组:
<AddressLine>
或:
<LineOne>
<LineTwo>
<LineThree>
<LineFour>
<LineFive>
这个节点我们不会丢失!
数组示例和最后一个请求($soapClient->__getLastRequest()):
'Location' =>array(
'Address' =>
array(
'AddressLine' => 'AddressLine',
'CityName' => 'Zyrardow',
'CountrySubDivisionCode' => 'PL',
'CountryCode' => 'PL',
'PostalCode' => '96-300',
),
),
<ns1:Location>
<ns1:Address>
<ns1:AddressLine>AddressLine</ns1:AddressLine>
<ns1:CityName>MYCHANGESHERE</ns1:CityName>
<ns1:CountrySubDivisionCode>PL</ns1:CountrySubDivisionCode>
<ns1:CountryCode>PL</ns1:CountryCode>
<ns1:PostalCode>96-300</ns1:PostalCode>
</ns1:Address>
<ns1:Location>
和:
'Location' =>array(
'Address' =>
array(
'LineOne' => 'LineOne',
'LineTwo' => 'LineTwo',
'LineThree' => 'LineThree',
'LineFour' => 'LineFour',
'LineFive' => 'LineFive',
'CityName' => 'Zyrardow',
'CountrySubDivisionCode' => 'PL',
'CountryCode' => 'PL',
'PostalCode' => '96-300',
),
),
<ns1:Location>
<ns1:Address>
<ns1:LineOne>LineOne</ns1:LineOne>
<ns1:LineTwo>LineTwo</ns1:LineTwo>
<ns1:LineThree>LineThree</ns1:LineThree>
<ns1:LineFour>LineFour</ns1:LineFour>
<ns1:LineFive>LineFive</ns1:LineFive>
<ns1:CityName>MYCHANGESHERE</ns1:CityName>
<ns1:CountrySubDivisionCode>PL</ns1:CountrySubDivisionCode>
<ns1:CountryCode>PL</ns1:CountryCode>
<ns1:PostalCode>96-300</ns1:PostalCode>
</ns1:Address>
<ns1:Location>
附加信息:
我找到了documentation,它告诉我们需要选择要发送的内容。但就我而言,有些节点被忽略了。
【问题讨论】:
标签: php arrays xml soap xsd-validation