序列化由Xsd.exe生成的类的一部分,要省略xmlns属性吗

序列化由Xsd.exe生成的类的一部分,要省略xmlns属性吗,xml,serialization,Xml,Serialization,我需要创建一个包含大量数据的XML文件 这里是对标记结构的一个高层次的了解(为了清晰起见,我省略了很多标记) 这将标签改为Item。但它仍然保留了名称空间属性。现在,它开始在项目下面的元素2级添加名称空间: <Item xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns=""> <RecordNumber>1</RecordNumber> <PropertyInfo> <Loc

我需要创建一个包含大量数据的XML文件

这里是对标记结构的一个高层次的了解(为了清晰起见,我省略了很多标记)

这将标签改为Item。但它仍然保留了名称空间属性。现在,它开始在项目下面的元素2级添加名称空间:

<Item xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
  <RecordNumber>1</RecordNumber>
  <PropertyInfo>
    <LocalID1 xmlns="http://www.revenue.wi.gov/slf">002133010101</LocalID1>  
但这给了我:

<Item xmlns="">
    <RecordNumber>1</RecordNumber>
    <PropertyInfo>
        <LocalID1 xmlns="http://www.revenue.wi.gov/slf">002133010101</LocalID1>

1.
002133010101
我真正想要的是:

<Item>
    <RecordNumber>1</RecordNumber>
    <PropertyInfo>
        <LocalID1>002133010101</LocalID1>

1.
002133010101

为什么名称空间是一个问题?我从询问我们数据的人那里得到了一些示例XML文件。他们的示例文件只有根元素上的名称空间内容,没有其他内容,所以我尝试生成类似的内容。当我尝试使用www.xmlvalization.com根据模式验证文件时,我还遇到了一些关于额外名称空间的错误。我放弃了强迫XmlSerializer做我想做的事情。我只是让它按照自己的方式从xsd.exe创建的类生成Xml文件。但完成后,我运行一个进程来读取文件,以删除和替换内容,使其看起来像我想要的那样。
XmlRootAttribute myXmlRootAttribute = new XmlRootAttribute();  
myXmlRootAttribute.ElementName = "Item";  
XmlAttributes myXmlAttributes = new XmlAttributes();  
myXmlAttributes.XmlRoot = myXmlRootAttribute;  
XmlAttributeOverrides myXmlAttributeOverrides = new XmlAttributeOverrides();  
myXmlAttributeOverrides.Add(typeof(CountyRollsTypeMunicipalityItem), myXmlAttributes);
XmlSerializer serializer = new XmlSerializer(typeof(CountyRollsTypeMunicipalityItem), myXmlAttributeOverrides);
serializer.Serialize(this.writer, item);
<Item xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
  <RecordNumber>1</RecordNumber>
  <PropertyInfo>
    <LocalID1 xmlns="http://www.revenue.wi.gov/slf">002133010101</LocalID1>  
var emptyNamespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
serializer.Serialize(this.writer, item, emptyNamespaces);  
<Item xmlns="">
    <RecordNumber>1</RecordNumber>
    <PropertyInfo>
        <LocalID1 xmlns="http://www.revenue.wi.gov/slf">002133010101</LocalID1>
<Item>
    <RecordNumber>1</RecordNumber>
    <PropertyInfo>
        <LocalID1>002133010101</LocalID1>