Trabajar al revés puede ser útil: cree su clase primero, luego serialice y vea lo que obtiene.
Para las clases más simples, en realidad es bastante fácil. Puede utilizar XmlSerializer para serializar, como:
namespace ConsoleApplication1
{
public class MyClass
{
public string SomeProperty
{
get;
set;
}
}
class Program
{
static void Main(string[] args)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
TextWriter writer = new StreamWriter(@"c:\temp\class.xml");
MyClass firstInstance = new MyClass();
firstInstance.SomeProperty = "foo"; // etc
serializer.Serialize(writer, firstInstance);
writer.Close();
FileStream reader = new FileStream(@"c:\temp\class.xml", FileMode.Open);
MyClass secondInstance = (MyClass)serializer.Deserialize(reader);
reader.Close();
}
}
}
Esto escribirá una representación serializada de su clase en XML a "c: \ temp \ class.xml". Podrías echar un vistazo y ver lo que obtienes. A la inversa, puede usar serializer.Deserialize para crear una instancia de la clase desde "c: \ temp \ class.xml".
Puede modificar el comportamiento de la serialización, y tratar con nodos inesperados, etc. - vea por ejemplo the XmlSerializer MSDN page.
¿ha tenido alguna suerte con alguno de los enfoques sugeridos? –
¡Sí! Utilicé con éxito la herramienta xsd para generar la clase (tuve que hacer un par de cambios para cumplir con mis requisitos). – Grasshopper
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx – Mou