Heim > Backend-Entwicklung > C++ > Wie kann ich Namespace-Deklarationen beim Serialisieren von XML in .NET anpassen?

Wie kann ich Namespace-Deklarationen beim Serialisieren von XML in .NET anpassen?

DDD
Freigeben: 2025-01-01 12:08:12
Original
470 Leute haben es durchsucht

How to Customize Namespace Declarations When Serializing XML in .NET?

Anpassen von Namespace-Deklarationen für serialisiertes XML in .NET

Die Herausforderung entsteht, wenn versucht wird, Objekte zu serialisieren, ohne übermäßige XML-Namespace-Deklarationen wie xsi und xsd zu generieren. Standardmäßig fügen Serialisierungsprozesse diese Namespaces in das resultierende XML-Dokument ein.

Betrachten Sie den folgenden Codeausschnitt, der das Problem veranschaulicht:

StringBuilder builder = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
using (XmlWriter xmlWriter = XmlWriter.Create(builder, settings))
{
    XmlSerializer s = new XmlSerializer(objectToSerialize.GetType());
    s.Serialize(xmlWriter, objectToSerialize);
}
Nach dem Login kopieren

Das resultierende XML-Dokument enthält Namespace-Deklarationen:

<message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" 
    xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" 
    xmlns="urn:something">
 ...
</message>
Nach dem Login kopieren

Um diese unnötigen Namespace-Deklarationen zu vermeiden, ist es wichtig, einen benutzerdefinierten Namespace zu verwenden Objekte:

...
XmlSerializer s = new XmlSerializer(objectToSerialize.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("","");
s.Serialize(xmlWriter, objectToSerialize, ns);
Nach dem Login kopieren

Durch die Verwendung der XmlSerializerNamespaces-Klasse und das Hinzufügen einer leeren Zeichenfolge als Schlüssel und Wert ist es möglich, die Standard-Namespace-Deklarationen zu überschreiben und die gewünschte Ausgabe zu erzeugen:

<message>
 ...
</message>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Namespace-Deklarationen beim Serialisieren von XML in .NET anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage