1

Web サービスの要求として使用する必要がある XSD がいくつかあります。要求を文字列 (またはファイル) にシリアル化すると、ルート要素は常に xml 要素として繰り返されます。どうしてこれなの?どうすればこれを防ぐことができますか?

LinqToXsd (ナゲット パッケージ) 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