문제

I have xsi:nil="true" in my soap request. What does mean? How can I pass value on that?

Any help is appreciated

도움이 되었습니까?

해결책

To remove it set the value in Soap::Data object to arrayref instead of undef. say you have Field1 as your key then the Soap Data object would look like :

*bless( {
     '_name' => 'Field1',
     '_signature' => [],
     **'_value' => [
                   undef
                 ],**
     '_prefix' => 'm',
     '_attr' => {
                  'id' => '1219615'
                }
 }, 'SOAP::Data' )*

and the resulting xml would be : < m:Field1 xsi:nil=true id="1219615" /> now if you change the object to :

*bless( {
     '_name' => 'Field1',
     '_signature' => [],
     **'_value' => [],**
     '_prefix' => 'm',
     '_attr' => {
                  'id' => '1219615'
                }
}, 'SOAP::Data' )*

You will get the desired output < m:Field1 id="1219615" />. The solution is in perl.

다른 팁

The nillable attribute indicates that the element that the attribute is on is present but has no value, similar to NULL in most programming languages.

If you want to assign a value to the element you can do so, however you'll have to remove the xsi:nil attribute first, otherwise you'll get an error.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top