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

FillChildNodes() private method

Fill up child nodes of XContainer.
private FillChildNodes ( SemeionModulesDesigner.XmlSchemaParser.XsdModel.XContainer destinationContainer, SemeionModulesDesigner.XmlSchemaParser.XsdModel.XContainer sourceContainer, XmlElement xmlElement ) : void
destinationContainer SemeionModulesDesigner.XmlSchemaParser.XsdModel.XContainer XContainer used to copy structure to source container.
sourceContainer SemeionModulesDesigner.XmlSchemaParser.XsdModel.XContainer Source container contained data.
xmlElement System.Xml.XmlElement Xml Element contains data.
return void
        private void FillChildNodes(XContainer destinationContainer, XContainer sourceContainer, XmlElement xmlElement)
        {
            var newContainer = sourceContainer.Clone();
            newContainer.Containers.Clear();
            ResolveAttributes(newContainer, xmlElement);
            ResolveElements(newContainer, xmlElement);

            newContainer.Name = xmlElement.Name;

            if (xmlElement.ChildNodes.Count == 1)
            {
                if (xmlElement.ChildNodes[0] is XmlText)
                {
                    newContainer.Value = xmlElement.InnerText;
                }
            }

            newContainer.ParentContainer = destinationContainer;
            newContainer.Id = newContainer.ParentContainer.Containers.Count + 1;
            newContainer.ParentContainer.Containers.Add(newContainer);

            foreach (var element in xmlElement.ChildNodes)
            {
                if (!(element is XmlComment))
                {
                    foreach (var xContainer in sourceContainer.Containers)
                    {
                        var name = ((XmlElement)element).Name;
                        if (xContainer.Name == name)
                        {
                            FillChildNodes(newContainer, xContainer, (XmlElement)element);
                        }
                    }
                }
            }
        }