.NET でのオブジェクトのシリアル化中の名前空間属性の削除
.NET でオブジェクトを XML にシリアル化するときに、望ましくない名前空間が発生することがよくあります結果として得られるドキュメント内の属性 (「xmlns:xsi」など) 「xmlns:xsd」これらの属性は出力を乱雑にし、その後の処理を妨げる可能性があります。
これらの名前空間を削除する 1 つの方法は、XmlWriterSettings.OmitXmlDeclaration プロパティを true に指定することです。ただし、このメソッドだけでは XML 宣言行が抑制され、名前空間属性は抑制されないため、十分ではない可能性があります。
この問題に対処し、xsi および xsd 名前空間を明示的に削除するには、XmlSerializerNamespaces クラスを利用できます。このクラスを使用すると、カスタム名前空間マッピングを指定できます。この例では、XmlSerializerNamespaces のインスタンスを作成し、空の文字列をキーと値の両方として追加して、以前に定義された名前空間を効果的にオーバーライドできます。
コード例:
... XmlSerializer s = new XmlSerializer(objectToSerialize.GetType()); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("", ""); s.Serialize(xmlWriter, objectToSerialize, ns);
XmlSerializerNamespaces のキーと値の両方に空の文字列を指定することで、すべての名前空間宣言を削除しますシリアル化された XML ドキュメントからの変換により、目的のメッセージ タグのみを含むクリーンな出力が得られます:
<message> ... </message>
以上が.NET で XML シリアル化されたオブジェクトから名前空間属性を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。