2010-06-01 75 views
12

可能重复:
XmlSerializer: remove unnecessary xsi and xsd namespaces从生成的XML在.NET中删除命名空间

我生成使用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"'添加到标签?

+2

这不是我的网络服务。 – 2010-06-01 14:40:52

+0

不会改变它被打破的事实。做点什么吧。 – 2010-06-01 14:41:26

+3

是的,我会尝试和报告,作为一个错误,一个Web服务,需要XML输入,但无法处理XML名称属性被破坏。最坏的情况是它应该忽略它们。 – 2010-06-01 14:41:57

回答

21

如果使用自定义序列试试这个

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

然后加命名空间反对你的串行器。