public TIADataRow(XmlNode Node, Step7ProjectV11 Project, TIABlock Block)
        {
            this.node       = Node;
            this.tiaProject = Project;
            this.block      = Block;

            var    id     = this.node.Attributes["id"].Value;
            string instId = this.node.Attributes["instId"].Value;

            var arrayLowerBounds = this.node.SelectSingleNode("attribSet[@id='" + tiaProject.asId2Names.First(itm => itm.Value == "Siemens.Automation.DomainServices.CommonTypeSystem.IStructureItem").Key + "']/attrib[@name='LowerBounds']/array");

            if (arrayLowerBounds != null && (arrayLowerBounds.Attributes["nil"] == null || arrayLowerBounds.Attributes["nil"].Value != "1"))
            {
                ArrayStart = new List <int>();
                ArrayStop  = new List <int>();
                var arrayUpperBounds = node.SelectSingleNode("attribSet[@id='" + tiaProject.asId2Names.First(itm => itm.Value == "Siemens.Automation.DomainServices.CommonTypeSystem.IStructureItem").Key + "']/attrib[@name='UpperBounds']/array");
                this.IsArray = true;
                foreach (var low in arrayLowerBounds.InnerText.Split(','))
                {
                    ArrayStart.Add(int.Parse(low));
                }
                foreach (var high in arrayUpperBounds.InnerText.Split(','))
                {
                    ArrayStop.Add(int.Parse(high));
                }

                this.node = Project.xmlDoc.SelectSingleNode("root/objects/StorageObject[parentlink[@link='" + id + "-" + instId + "']]");
                id        = this.node.Attributes["id"].Value;
                instId    = this.node.Attributes["instId"].Value;
            }

            var idChildRow = Project.importTypeInfos.First(itm => itm.Value == "Siemens.Simatic.PlcLanguages.Model.StructureItemData").Key;



            var subNodes = Project.xmlDoc.SelectNodes("root/objects/StorageObject[parentlink[@link='" + id + "-" + instId + "']]");

            this.Children = new List <IDataRow>();
            foreach (XmlNode subNode in subNodes)
            {
                if (subNode.Attributes["id"].Value == idChildRow)
                {
                    var row = new TIADataRow(subNode, Project, Block);
                    row.Parent = this;
                    this.Children.Add(row);
                }
            }
        }
        public TIADataRow(XmlNode Node, Step7ProjectV11 Project, TIABlock Block)
        {
            this.node = Node;
            this.tiaProject = Project;
            this.block = Block;

            var id = this.node.Attributes["id"].Value;
            string instId = this.node.Attributes["instId"].Value;

            var arrayLowerBounds = this.node.SelectSingleNode("attribSet[@id='" + tiaProject.asId2Names.First(itm => itm.Value == "Siemens.Automation.DomainServices.CommonTypeSystem.IStructureItem").Key + "']/attrib[@name='LowerBounds']/array");
            if (arrayLowerBounds != null && (arrayLowerBounds.Attributes["nil"] == null || arrayLowerBounds.Attributes["nil"].Value != "1"))
            {
                ArrayStart = new List<int>();
                ArrayStop = new List<int>();
                var arrayUpperBounds = node.SelectSingleNode("attribSet[@id='" + tiaProject.asId2Names.First(itm => itm.Value == "Siemens.Automation.DomainServices.CommonTypeSystem.IStructureItem").Key + "']/attrib[@name='UpperBounds']/array");
                this.IsArray = true;
                foreach (var low in arrayLowerBounds.InnerText.Split(','))
                {
                    ArrayStart.Add(int.Parse(low));
                }
                foreach (var high in arrayUpperBounds.InnerText.Split(','))
                {
                    ArrayStop.Add(int.Parse(high));
                }

                this.node = Project.xmlDoc.SelectSingleNode("root/objects/StorageObject[parentlink[@link='" + id + "-" + instId + "']]");
                id = this.node.Attributes["id"].Value;
                instId = this.node.Attributes["instId"].Value;
            }

            var idChildRow = Project.importTypeInfos.First(itm => itm.Value == "Siemens.Simatic.PlcLanguages.Model.StructureItemData").Key;

            var subNodes = Project.xmlDoc.SelectNodes("root/objects/StorageObject[parentlink[@link='" + id + "-" + instId + "']]");
            this.Children = new List<IDataRow>();
            foreach (XmlNode subNode in subNodes)
            {
                if (subNode.Attributes["id"].Value == idChildRow)
                {
                    var row = new TIADataRow(subNode, Project, Block);
                    row.Parent = this;
                    this.Children.Add(row);
                }
            }
        }