Ich habe Tausende von XML-Dateien nach dem gleichen Schema/Struktur. Ich habe IXmlSerializable implementiert und lese daher die Elemente und Attribute selbst..NET XML Deserialisierung ignorieren Namespaces
Mein Problem ist, dass diese Dateien jeweils einen anderen falschen Namespace verwenden. Diese Dateien stammen von einer anderen Quelle, daher kann ich das nicht ändern: D Außerdem gibt es zu viele dieser Namespaces für mich, um einfach ein Array der möglichen Namespaces zu erstellen und es an den xmlserializer zu übergeben.
Jetzt, wenn ich keinen Namespace angeben, wird ein [xmlns: ns0 = "http://tempuri.org/abcd.xsd" wurde nicht erwartet] Fehler.
Ich möchte in der Lage sein, den Serializer zu sagen, den Namespace einfach zu ignorieren, wenn ich mein Objekt deserialisiere und nur ReadXML feuere. Oder einfach nur sagen können, dass es den Namensraum "http://tempuri.org/" akzeptiert.
Ist das möglich?
Ich möchte vermeiden, die Dateien so viel wie möglich zu ändern.
Vielen Dank!
Haben Sie in Betracht gezogen, zuerst das XML zu laden, um den Namespace zu erhalten, damit Sie ihn dann in den XmlSerializer eingeben können? –
@StevenDoggart Ja, das habe ich getan, aber ich würde gerne wissen, ob es eine "geeignetere" Möglichkeit gibt, dies zu tun, bevor ich anfange, daran herumzuarbeiten. Es scheint einfach albern, dass man Namespaces nicht ignorieren kann, ohne eine Ausnahme zu bekommen: S – user1698428
Ja, das ist eine sehr gute Frage und ich bin sehr neugierig, ob es auch eine Antwort darauf gibt. –