private static DataClass ParseEntityListXml(XmlNode node, DataClass previousClass) { var data = previousClass ?? new DataClass {Name = node.FirstChild.Name}; foreach (XmlNode entityNode in node.ChildNodes) { ParseEntityXml(entityNode, data); ++data.NodeCount; } return data; }
private static void ParseEntityXml(XmlNode node, DataClass data) { if (node.InnerText.Length > 0) data.HasContent = true; if (node.Attributes != null) { foreach (var attr in node.Attributes.OfType<XmlAttribute>()) { var key = attr.Name; var value = attr.Value; var field = data.CreateOrGetSimpleField(key); field.Values.Add(value); } } foreach (XmlNode childNode in node.ChildNodes) { if (!(childNode is XmlElement)) continue; var field = data.CreateOrGetClassField(childNode.FirstChild.Name); field.Class = ParseEntityListXml(childNode, field.Class); field.Class.OwnedField = field; } }