Дважды сериализовать один и тот же тег XML

У меня проблема:

Мне нужно сериализовать класс в файл XML. Но два свойства должны быть названы одним и тем же именем:

Желаемый xml:

<?xml version="1.0"?>
<Test>
  <HeaderText>
    <Tag1>AAA</Tag1>
  </HeaderText>
  <HeaderText>
    <Tag2>BBB</Tag2>
  </HeaderText>
</Test>

Мне не нужно десериализовать его обратно в объект.

Код:

public class Header1
{
    [XmlElement("Tag1")]
    public String Tag1 { get; set; }
}

public class Header2
{
    [XmlElement("Tag2")]
    public String Tag2 { get; set; }
}

public class Test
{
    [XmlElement("HeaderText")]
    public Header1 Header1 { get; set; }

    [XmlElement("HeaderText")]
    public Header2 Header2 { get; set; }
}

var doc = new Test
{
    Header1 = new Header1 { Tag1 = "AAA" },
    Header2 = new Header2 { Tag2 = "BBB" }
};

var xml = new XmlSerializer(typeof(Test));
using (var fs = new FileStream("test.xml", FileMode.Create))
{
    xml.Serialize(fs, doc);
}

Этот код не работает.

The XML element 'HeaderText' from namespace '' is already present in the current scope. Use XML attributes to specify another XML name or namespace for the element.

Что я могу сделать?

Пример реального -мира:

  <Product>
    <RecordReference>1-15991</RecordReference>
    <MainSubject>
      <MainSubjectSchemeIdentifier>66</MainSubjectSchemeIdentifier>
      <SubjectCode>2</SubjectCode>
    </MainSubject>
    <MainSubject>
      <MainSubjectSchemeIdentifier>20</MainSubjectSchemeIdentifier>
      <SubjectHeadingText>Venäläisiä kirjoja: uskonto, teosofia, mystiikka</SubjectHeadingText>
    </MainSubject>
</Product>
13
задан Lari13 2 July 2012 в 09:39
поделиться