Deserialisierung von XML mit unbekannter Elementreihenfolge
Ich versuche, einen Client für einen Service mit einer wirklich mangelhaften Spezifikation zu implementieren. Es ist SOAP-ähnlich, obwohl es keine WSDL oder eine entsprechende Datei enthält. Die Spezifikation liefert auch keine Informationen zur korrekten Reihenfolge der Elemente - sie sind in der Spezifikation alphabetisch aufgelistet, aber der Service gibt einen XML-Analysefehler zurück, wenn sie in der Anforderung nicht in der richtigen Reihenfolge sind (die Reihenfolge wird abgeleitet von die Beispiele untersuchen).
Ich kannArbei mit diesem für die Übermittlung von Anfragen, auch wenn es ein Schmerz ist. Ich weiß jedoch nicht, wie ich mit Antworten richtig umgehen soll.
Mit beidenSoapEnvelope
und direkt mitXmlSerializer
, wenn die Antwort ein Element enthält, das ich noch nicht richtig bestellt habe, wird es als @ angezeinull
auf meinem Objekt. Wieder kann ich damit arbeiten und die Klasseneigenschaften manuell anordnenmitOrder
attributes, aber ich kann nicht sagen, ob das ursprüngliche XML ein Feld enthält, das ich nicht richtig bestellt habe und daher als @ belassen hanull
.
Dies führt mich zu der aktuellen Frage:Wie kann ich überprüfen, ob der XmlSerializer ein Feld gelöscht hat??