XmlSerializer:删除xmlns:xsd但保留xmlns:xsi

我正在使用此方法生成XML:

using (MemoryStream msRes = new MemoryStream()) using (StreamWriter objStreamWriter = new StreamWriter(msRes)) using (XmlWriter xw = XmlWriter.Create(objStreamWriter, new XmlWriterSettings() { Indent = true, IndentChars = String.Empty })) { XmlSerializer serializer = new XmlSerializer(doc.GetType()); serializer.Serialize(xw, doc); return msRes.ToArray(); } 

结果是我有这样的行 。 我想删除属性xmlns:xsd="http://www.w3.org/2001/XMLSchema"但保留xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02"

我怎样才能做到这一点 ?

谢谢你的帮助 !

您可以尝试以下代码来删除xmlns条目:

 var ns = new XmlSerializerNamespaces(); ns.Add("", "");