XSI: nil = "true" في طلب الصابون
سؤال
أملك xsi:nil="true"
في طلب الصابون الخاص بي. ماذا يعني؟ كيف يمكنني تمرير القيمة على ذلك؟
أي مساعدة موضع تقدير
المحلول
لإزالتها قم بتعيين القيمة في كائن البيانات :: Data إلى ArrayRef بدلاً من undef. قل أن لديك حقل 1 كمفتاح الخاص بك ، فإن كائن بيانات الصابون سيبدو:
*bless( {
'_name' => 'Field1',
'_signature' => [],
**'_value' => [
undef
],**
'_prefix' => 'm',
'_attr' => {
'id' => '1219615'
}
}, 'SOAP::Data' )*
وستكون XML الناتجة: <m: field1 xsi: nil = true id = "1219615" /> الآن إذا قمت بتغيير الكائن إلى:
*bless( {
'_name' => 'Field1',
'_signature' => [],
**'_value' => [],**
'_prefix' => 'm',
'_attr' => {
'id' => '1219615'
}
}, 'SOAP::Data' )*
ستحصل على الإخراج المطلوب <m: field1 id = "1219615" />. الحل في بيرل.
نصائح أخرى
تشير سمة nillable إلى أن العنصر الموجود في السمة موجود ولكن ليس له قيمة ، على غرار NULL
في معظم لغات البرمجة.
إذا كنت ترغب في تعيين قيمة للعنصر الذي يمكنك القيام بذلك ، ولكن عليك إزالة xsi:nil
سمة أولا ، وإلا ستحصل على خطأ.
لا تنتمي إلى StackOverflow