/* Construct xml structure to deserialize * <construct> * <field id="">100</field> * <field id="">Hello</field> * </construct> */ public static ICollection<FieldValue> DeserializeConstruct(XmlReader constructData, ICollection<FieldDefinition> fieldDefs) { var fields = new List<FieldValue>(fieldDefs.Count); var construct = new XDocument(constructData).Elements(XElement_Field); fields.AddRange(construct.Select(xmlField => DeserializeField(xmlField, fieldDefs))); return fields; }
/* Blueprint xml structure to deserialize * <blueprint> * <field id="" name="" type="System.Int32"> * <metadata></metadata> * </field> * <field id="" name="" type="System.String"> * <metadata></metadata> * </field> * </blueprint> */ public static ICollection<FieldDefinition> DeserializeBlueprint(XmlReader blueprintData) { var fields = new List<FieldDefinition>(); var blueprint = new XDocument(blueprintData).Elements(XElement_Field); fields.AddRange(blueprint.Select(DeserializeFieldDef)); return fields; }