Mega Code Archive

 
Categories / C# / File Stream
 

Set XML tag name for Serialization

using System; using System.IO; using System.Xml.Serialization; public class Serializer {   public static void Main(string [] args) {     Personnel personnel = CreatePersonnel();     XmlSerializer serializer = new XmlSerializer(typeof(Personnel));     using (FileStream stream = File.OpenWrite("Employees.xml")) {       serializer.Serialize(stream, personnel);     }   }      private static Personnel CreatePersonnel() {     Personnel personnel = new Personnel();     personnel.Employees = new Employee [] {new Employee()};     personnel.Employees[0].FirstName = "Joe";     personnel.Employees[0].MiddleInitial = "M";     personnel.Employees[0].LastName = "Lee";          personnel.Employees[0].Addresses = new Address [] {new Address()};     personnel.Employees[0].Addresses[0].AddressType = AddressType.Home;     personnel.Employees[0].Addresses[0].Street = new string [] {"999 Colluden"};     personnel.Employees[0].Addresses[0].City = "Vancouver";     personnel.Employees[0].Addresses[0].State = State.BC;     personnel.Employees[0].Addresses[0].Zip = "V5V 4X7";          personnel.Employees[0].HireDate = new DateTime(2001,1,1);          return personnel;   } } [Serializable] public enum AddressType {   Home,   Office } [Serializable] public enum State {   [XmlEnum(Name="British C")]BC,   [XmlEnum(Name="Sask")]SK } [Serializable] public class Address {   [XmlAttribute(AttributeName="type")]  public AddressType AddressType;   [XmlElement(ElementName="street")]    public string[] Street;   [XmlElement(ElementName="city")]      public string City;   [XmlElement(ElementName="state")]     public State State;   [XmlElement(ElementName="zip")]       public string Zip; } [Serializable] public class TelephoneNumber {   [XmlAttribute(AttributeName="type")] public AddressType AddressType;   [XmlElement(ElementName="areacode")] public string AreaCode;   [XmlElement(ElementName="exchange")] public string Exchange;   [XmlElement(ElementName="number")]   public string Number; } [Serializable] public class Employee {   [XmlAttribute(AttributeName="firstname")]      public string FirstName;   [XmlAttribute(AttributeName="middleinitial")]  public string MiddleInitial;   [XmlAttribute(AttributeName="lastname")]       public string LastName;      [XmlArray(ElementName="addresses")]   [XmlArrayItem(ElementName="address")]      public Address [] Addresses;   [XmlArray(ElementName="telephones")]    [XmlArrayItem(ElementName="telephone")]    public TelephoneNumber [] TelephoneNumbers;      [XmlAttribute(AttributeName="hiredate")]   public DateTime HireDate; } [Serializable] [XmlRoot(ElementName="personnel")] public class Personnel {   [XmlElement(ElementName="employee")]   public Employee [] Employees; }