private static string GetXmlAttribute(DynamicClass prop)
        {
            switch (prop.XmlType)
            {
            case XMLType.Element:
                return($@"[XmlElement(""{prop.ClassName}"")]");

            case XMLType.Attribute:
                return($@"[XmlAttribute(""{prop.ClassName}"")]");

            case XMLType.PCData:
                return(string.Empty);

            default:
                return(string.Empty);
            }
        }
        private static void ExtractClassInfo(Field node, DynamicClass parent, List <DynamicClass> prop)
        {
            DynamicClass newProp = null;

            if (node != null)
            {
                newProp = new DynamicClass
                {
                    PropertyName = node.Name,
                    PropertyType = node.DataType,
                    ParentNode   = parent,
                    ClassName    = node.Alias,
                    IsParent     = node.HasChildNodes(),
                    XmlType      = node.Type != null ? (XMLType)Enum.Parse(typeof(XMLType), node.Type) : XMLType.Element
                };
                prop.Add(newProp);
            }
            foreach (var subNode in node.ChildNodes)
            {
                ExtractClassInfo(subNode, newProp, prop);
            }
        }