SemeionModulesDesigner.XmlSchemaParser.XmlParser.Fill C# (CSharp) Method

Fill() private method

Fill up given XContainer with data from Xml file.
private Fill ( SemeionModulesDesigner.XmlSchemaParser.XsdModel.XContainer sourceContainer, XmlDocument xmlDoc ) : bool
sourceContainer SemeionModulesDesigner.XmlSchemaParser.XsdModel.XContainer Given XContainer to be filled up.
xmlDoc System.Xml.XmlDocument Xml document contains data.
return bool
        private bool Fill(XContainer sourceContainer, XmlDocument xmlDoc)
        {
            var xmlNodeList = xmlDoc.GetElementsByTagName(sourceContainer.Name);

            if (xmlNodeList.Count > 0)
            {
                _newRoot = sourceContainer.Clone();
                _newRoot.Containers.Clear();
                ResolveAttributes(_newRoot, ((XmlElement)xmlNodeList[0]));
                ResolveElements(_newRoot, ((XmlElement)xmlNodeList[0]));
                _newRoot.Value = xmlNodeList[0].Value;
                _newRoot.Name = xmlNodeList[0].Name;

                foreach (var element in xmlNodeList[0].ChildNodes)
                {
                    if (!(element is XmlComment))
                    {
                        if (element is XmlText)
                        {
                            _newRoot.Value = ((XmlText)element).Value;
                        }

                        foreach (var xContainer in sourceContainer.Containers)
                        {
                            var name = ((XmlElement)element).Name;
                            if (xContainer.Name == name)
                            {
                                FillChildNodes(_newRoot, xContainer, (XmlElement)element);
                            }
                        }
                    }
                }

                return true;
            }

            return false;
        }