public class Program
{
static void Main(string[] args)
{
var alarm = new Alarm()
{
Code = "1588-OPER-2",
Grade = "1",
Source = "55A3E6C7E2A0560A956D3933F42E5AA2",
Time = DateTime.Now,
Text = "Operationnal state is offline."
};
var alarm1 = new Alarm()
{
Code = "1588-OPER-2",
Grade = "2",
Source = "55A3E6C7E2A0560A956D3933F42E5AA2",
Time = DateTime.Now,
Text = "Operationnal state is offline."
};
var alarms = new AlarmSet("wxboss.srm.alarm", new List<Alarm> { alarm, alarm1 });
var alarmFile = new AlarmCatalog();
alarmFile.Alarms = new List<AlarmSet> { alarms };
Generate(alarmFile);
}
public static void Generate(AlarmCatalog file)
{
string path = "C:\test.xml";
Stream stream = new FileStream(path, FileMode.Create);
var serializer = new XmlSerializer(typeof(AlarmCatalog));
serializer.Serialize(stream, file);
stream.Close();
}
[XmlRoot("dc")]
public class AlarmCatalog
{
[XmlElement("mo")]
public List<AlarmSet> Alarms { get; set; }
}
public class AlarmSet
{
#region Initialization
public AlarmSet()
{
}
public AlarmSet(string domain)
{
this.Domain = domain;
}
public AlarmSet(string domain, List<Alarm> items)
{
this.Domain = domain;
this.Items = items;
}
#endregion
[XmlAttribute("dn")]
public string Domain { get; set; }
[XmlElement("alarm")]
public List<Alarm> Items { get; set; }
}
public class Alarm
{
public Alarm() { }
public Alarm(string text)
{
this.Text = text;
}
[XmlAttribute("source")]
public string Source { get; set; }
[XmlAttribute("grade")]
public string Grade { get; set; }
[XmlAttribute("code")]
public string Code { get; set; }
[XmlIgnore]
public DateTime Time { get; set; }
[XmlAttribute("time")]
public string TimeString
{
get { return this.Time.ToString("yyyy-MM-dd HH:mm:ss"); }
set { this.Time = DateTime.Parse(value); }
}
[XmlText]
public string Text { get; set; }
}
}
<?xml version="1.0"?><dc xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<mo dn="wxboss.srm.alarm">
<alarm time="2013-09-04 11:33:01" code="1588-OPER-2" grade="1" source="55A3E6C7E2A0560A956D3933F42E5AA2">Operationnal state is offline.</alarm>
<alarm time="2013-09-04 11:33:01" code="1588-OPER-2" grade="2" source="55A3E6C7E2A0560A956D3933F42E5AA2">Operationnal state is offline.</alarm>
</mo>
</dc>