// генерация по готовой структуре public string BuildXML(xsdItem newRoot, string GenPaths) { root = newRoot; root.RestoreParent(); string sOut; string testName; List <string> Paths = null; testName = OutFolder + "\\" + root.Name + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xml"; if (GenPaths == "") { sOut = root.Generate(null).ToString(); } else { Paths = new List <string>(); string[] s = GenPaths.Split('\r'); foreach (string s1 in s) { if (s1.Length > 1) { Paths.Add(s1.Replace("\n", "")); } } sOut = root.GeneratePaths(null, Paths).ToString(); } File.WriteAllText(testName, sOut); return(testName); // sOut; }
// загрузка структуры данных из файла XML public void LoadXSD(string newXSDPath) { XSDPath = newXSDPath; XmlDocument xDoc = new XmlDocument(); string sXSD = File.ReadAllText(XSDPath); // patch Factor problem sXSD = sXSD.Replace("Провоцирующий_fslash_купирующий_фактор", "Провоцирующий_фактор"); sXSD = sXSD.Replace("<", "_меньше_"); sXSD = sXSD.Replace(">", "_больше_"); xDoc.LoadXml(sXSD); nsmgr = new XmlNamespaceManager(xDoc.NameTable); nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema"); StringBuilder sb = new StringBuilder(); root = new xsdItem(); XmlNodeList rootElements = xDoc.LastChild.ChildNodes; XmlElement rootEl; foreach (XmlNode node in rootElements) { if (node.Name == "xs:element") { rootEl = (XmlElement)node; string Name = rootEl.GetAttribute("name"); root.Name = Name; root.Type = "root"; root.oMax = "1"; root.oMin = "1"; readChild(root, rootEl); } } root.RestoreParent(); }