//private int count = 0; private void loadXmlNodes(IBasicData parentBasicData, XmlNode xmlNode) { // este simbolo faz ocorrer um erro no xml: --> //Debug.WriteLine(count++); int index = 1; XmlNodeList FirstsNodes = xmlNode.ChildNodes; IBasicData tempBasicData = null; foreach (XmlNode item in FirstsNodes) { string tagName = item.Name; // Debug.WriteLine(tagName); switch (tagName) { case "userData": tempBasicData = new UserData(); break; case "commandBarData": tempBasicData = new CommandBarData(); break; case "state": tempBasicData = new StateData(); break; case "itemData": tempBasicData = new ItemData(); break; case "dialog": tempBasicData = new DialogData(); break; case "viewTemplate": tempBasicData = new ViewTemplate(); break; case "dockerData": tempBasicData = new DockerData(); break; case "container": tempBasicData = new ContainerData(); break; case "frame": tempBasicData = new FrameData(); break; default: tempBasicData = new OtherData(); break; } if (tempBasicData != null && parentBasicData != null) { tempBasicData.TagName = tagName; tempBasicData.SetXmlChildreID(index); tempBasicData.SetXmlChildreParentID(parentBasicData.XmlChildreID); tempBasicData.Parent = parentBasicData; index++; try { if (item.Attributes != null) { foreach (XmlAttribute att in item.Attributes) { if (att.Name == "guid") { tempBasicData.Guid = att.Value; //break; } if (att.Name == "guidRef") { tempBasicData.GuidRef = att.Value; //break; } tempBasicData.Attributes.Add(new DataClass.Attribute(att.Name, att.Value)); } } } catch (Exception) { throw new Exception("Attribute load failed in tag \"" + tagName + "\""); } tempBasicData.SetTreeLevel(parentBasicData.TreeLevel); parentBasicData.Add(tempBasicData); if (item.ChildNodes.Count > 0) { loadXmlNodes(tempBasicData, item); } } } }