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

本文关键字:xmlns 保留 xsi xsd 删除 XmlSerializer | 更新日期: 2023-09-27 18:12:36

我使用这个方法来生成一个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();
        }

结果是我有这样的行<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02">。我想删除属性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"

我该怎么做呢?

感谢您的帮助

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

您可以尝试使用下面的代码来删除xmlns条目:

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