从.NET中生成的XML中删除命名空间

时间:2010-06-01 14:36:25

标签: c# asp.net xml xml-serialization

  

可能重复:
  XmlSerializer: remove unnecessary xsi and xsd namespaces

我正在使用XMLSerializer生成一些XML,并使用标记了属性的类。此XML将发送到REST Web服务。

它生成以下XML:

<?xml version="1.0" encoding="utf-8"?>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <first-name>API</first-name>
  <last-name>TestPersonDeleteMe</last-name>
  <title>Delete me</title>
</person>

一切都会好的,除了我正在使用的Web服务不理解架构内容并抛出500错误。

有没有办法阻止XmlSerializer将'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"'添加到 person 标记?

1 个答案:

答案 0 :(得分:21)

如果您使用自定义序列化程序,请尝试此

XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty);

然后将命名空间对象添加到序列化程序中。