Welche XML sende ich für ein Feld, das ist wie nillable erklärt?
Frage
Ich habe eine Anwendung mit einer REST-Stil-Schnittstelle, die XML-Dokumente über POST von Kunden nimmt. Diese Anwendung ist in Java geschrieben und verwendet XML Beans die gepostete Nachricht zu verarbeiten.
Das XML-Schema-Definition für ein Feld in der Nachricht sieht wie folgt aus:
<xs:element name="value" type="xs:string" nillable="true" />
Wie sende ich einen Nullwert, der diese Spezifikation erfüllt?
Ich habe <value xsi:nil="true" />
aber dies verursachte der XML-Parser kotzen.
Lösung
Das ist der richtige Weg, um einen Nullwert zu senden (unter der Annahme, dass der Standard-Namespace und der xsi
Namespace auf die richtigen Werte eingestellt sind, nämlich "http://www.w3.org/2001/XMLSchema-instance"
für xsi
.), So sieht es aus wie Sie gegen einen Bug in den CML up haben könnten Parser Sie verwenden. Was ist die Fehlermeldung?
Sie könnten versuchen, xsi:nil="1"
oder mit separaten Öffnen und Schließen-Tags (<value xsi:nil="true"></value>
), um den Fehler zu arbeiten versuchen.
Andere Tipps
Was ist <value xsi:nil="true"></value>
? Das ist, was ist in der spec .
In der Vergangenheit, als ich habe XML-Elemente hatte, die null waren konnte ich entweder sie nicht übernehmen oder so, es wäre in Ihrem Fall leer senden sein:
<value />
Haben Sie das probiert?