Я пытаюсь решить головоломку с атрибутами xml. Проблема заключается в том, что у нас уже есть широко используемый файл с этой структурой, от которой я не могу отклонитьсяСоздание структуры XML с использованием атрибутов xml
<CONFIGS>
<CONFIG>
<NAME>c1</NAME>
<DB>
<VAL1>v1</VAL1>
<VAL2>v2</VAL2>
<VAL3>v3</VAL3>
</DB>
</CONFIG>
<CONFIG>
<NAME>c2</NAME>
<DB>
<VAL1>v1</VAL1>
<VAL2>v2</VAL2>
<VAL3>v3</VAL3>
</DB>
</CONFIG>
</CONFIGS>
Я создал этот C# код
// master class
[XmlRoot(ElementName = "CONFIGS")]
public class MyConfigs
{
[XmlArrayItem(ElementName = "CONFIG", Type = typeof(MyConfigSchema))]
public MyConfigSchema[] Schemas { get; set; }
}
// I should have array of these
public class MyConfigSchema
{
[XmlElement(DataType = "string", ElementName = "NAME")]
public string Name { get; set; }
[XmlElement(ElementName = "DB", Type = typeof(Db))]
public Db Config { get; set; }
// this element is single and has subelements
public class Db
{
[XmlElement(DataType = "string", ElementName = "VAL1")]
public string Val1 { get; set; }
[XmlElement(DataType = "int", ElementName = "VAL2")]
public int Val2 { get; set; }
[XmlElement(DataType = "string", ElementName = "VAL3")]
public string Val3 { get; set; }
}
}
// Writing
using (var writer = new FileStream(testfile, FileMode.Create))
{
var ser = new XmlSerializer(typeof(MyConfigs));
ser.Serialize(writer, confFileObj);
writer.Close();
}
Вот моя проблема - это пишет следующий результат, который почти то, что мне нужно, но там он пишет <Schemas>. . . </Schemas>
, которого я не могу.
<CONFIGS> --<Schemas>-- <CONFIG> <NAME>c1</NAME> <DB> <VAL1>v1</VAL1> <VAL2>v2</VAL2> <VAL3>v3</VAL3> </DB> </CONFIG> <CONFIG> <NAME>c2</NAME> <DB> <VAL1>v1</VAL1> <VAL2>v2</VAL2> <VAL3>v3</VAL3> </DB> </CONFIG> --</Schemas>-- </CONFIGS>
Есть ли способ избавиться от <Schemas>. . . </Schemas>
?