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

时间:2015-09-14 14:42:56

标签: c# xml serialization xsd

我使用此方法生成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"

我该怎么做?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

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