xsi: nil = "true" in der SOAP -Anfrage
Frage
Ich habe xsi:nil="true"
in meiner Seifenanfrage. Was bedeutet? Wie kann ich den Wert darauf weitergeben?
Jede Hilfe wird geschätzt
Lösung
So entfernen Sie den Wert in SOAP :: Data Objekt in ArrayRef anstelle von UNDEF. Angenommen, Sie haben Field1 als Schlüssel, dann würde das SOAP -Datenobjekt wie:
*bless( {
'_name' => 'Field1',
'_signature' => [],
**'_value' => [
undef
],**
'_prefix' => 'm',
'_attr' => {
'id' => '1219615'
}
}, 'SOAP::Data' )*
und das resultierende XML wäre: <m: field1 xsi: nil = true id = "1219615" /> Wenn Sie nun das Objekt ändern, um:
*bless( {
'_name' => 'Field1',
'_signature' => [],
**'_value' => [],**
'_prefix' => 'm',
'_attr' => {
'id' => '1219615'
}
}, 'SOAP::Data' )*
Sie erhalten die gewünschte Ausgabe <m: field1 id = "1219615" />. Die Lösung ist in Perl.
Andere Tipps
Das nillable Attribut zeigt an, dass das Element, auf das sich das Attribut befindet, vorhanden ist, aber keinen Wert hat, ähnlich wie NULL
In den meisten Programmiersprachen.
Wenn Sie dem Element einen Wert zuweisen möchten, müssen Sie dies jedoch entfernen xsi:nil
Attribut zuerst, sonst werden Sie einen Fehler erhalten.