1

我有许多 XSD 必须用作 Web 服务的请求。当我将请求序列化为字符串(或文件)时,根元素始终作为 xml 元素重复。为什么是这样?我怎样才能防止这种情况?

我使用 LinqToXsd(nuget 包)V2.0.2。与VS2013。

XSD:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://blah.com" targetNamespace="http://blah.com">
<xsd:complexType name="SomeValues">
    <xsd:sequence>
        <xsd:element name="Value1" type="xsd:int" minOccurs="0"/>
        <xsd:element name="Value2" type="xsd:int" minOccurs="0"/>
    </xsd:sequence>
</xsd:complexType>

生成的 XML(如您所见,重复了根“SomeValues”):

<?xml version="1.0" encoding="utf-16"?>
<SomeValues>
  <SomeValues xmlns="http://blah.com">
    <Value1 xmlns="">1</Value1>
    <Value2 xmlns="">2</Value2>
  </SomeValues>
</SomeValues>

这是序列化片段:

private static string SerializeTest()
{
    var content = new SomeValues
    {
        Value1 = 1,
        Value2 = 2
    };

    XmlSerializer serializer = new XmlSerializer(content.GetType());

    using (var stringWriter = new StringWriter())
    {
        serializer.Serialize(stringWriter, content);
        return stringWriter.ToString();
    }
}
4

0 回答 0