<ListaMusical> <Grupo Id="1" Nombre="Beatles"> <Cancion Id="1">Let it be</Cancion> <Cancion Id="2">Help</Cancion> </Grupo> <Grupo Id="2" Nombre="Adele"> <Cancion Id="3">Someone like you</Cancion> </Grupo> </ListaMusical>
[XmlRoot("ListaMusical")] public class ListaMusicalViewModel { [XmlRoot("Grupo")] public class Grupo_ListaMusicalViewModel { [XmlRoot("Cancion")] public class Cancion_ListaMusicalViewModel { [XmlAttribute("Id")] public string Id { get; set; } [XmlText()] public string Textoelemento { get; set; } } [XmlAttribute("Id")] public string Id { get; set; } [XmlAttribute("Nombre")] public string Nombre { get; set; } [XmlElement("Cancion")] public ListListadoCanciones { get; set; } } [XmlElement("Grupo")] public List Grupo { get; set; } }
Tenemos un XML representado en un textarea que ha sido deserializado en una clase con ayuda de dataannotations usando System.Xml.Serialization.
Con dicho modelo Razor ha podido responder con simples funciones lambda sin acceder al xml original.
System.Xml.Serialization nos permite deserializar un xml en una clase siendo su gestión más optima.
La serialización/deserialización nos posibilita poder tomar instantáneas de un objeto en XML y así:
Personalmente perfiero una esrtructura JSON a un XML pero reconozco que los esquemas XSD son más precisos que los intentos en JSON (json-schema.org)
Se ha utilizado Visual Studio
Express 2013 para Web y actualmente Visual Comunity 2015.
La programación se ha desarrollado con C#, Razor y acceso a Base de Datos por Entity Framework.
Las tablas mostradas en la aplicación se encuentran en un Microsoft® SQL Server® 2012 y actualmente en SQL de Azure
El alojamiento de las páginas se realizó en https://www.smarterasp.net con el plan .NET ADVANCE
y actualmente se han movido a 2 Aplicaciones Web en Azure: una para
este proyecto Web MVC y otra para un WCF usada en un ejemplo.
Se ha testeado con exito en diferentes navegadores y sistemas operativos, en pantallas de PC, tabletas y moviles.