Serialize XML same tag twice

wordbird.cn

New Member
I've the problem: I have to serialize class to XML file. But two properties must be named with the same name:Desired xml: \[code\]<?xml version="1.0"?><Test> <HeaderText> <Tag1>AAA</Tag1> </HeaderText> <HeaderText> <Tag2>BBB</Tag2> </HeaderText></Test>\[/code\]I don't need to deserialize it back to object.Code:\[code\]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);}\[/code\]This code doesn't work.\[quote\] 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.\[/quote\]What can I do?Real-world example:\[code\] <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>\[/code\]
 
Back
Top