protected override AdventureData ParseXml(XmlDocument doc) { XmlElement element = doc.DocumentElement, descriptor = (XmlElement)element.SelectSingleNode("/game-descriptor"), title = (XmlElement)descriptor.SelectSingleNode("title"), description = (XmlElement)descriptor.SelectSingleNode("description"); // Basic attributes content.setVersionNumber(ExString.Default(descriptor.GetAttribute("versionNumber"), "0")); content.setTitle(title.InnerText ?? ""); content.setDescription(description.InnerText ?? ""); // Sub nodes XmlElement configuration = (XmlElement)descriptor.SelectSingleNode("configuration"), contents = (XmlElement)descriptor.SelectSingleNode("contents"), extensionObjects = (XmlElement)descriptor.SelectSingleNode("extension-objects"); ParseConfiguration(content, configuration, incidences); ParseContents(content, contents, resourceManager, incidences); if (extensionObjects != null) { foreach (var el in extensionObjects.ChildNodes) { object parsed = DOMParserUtility.DOMParse(el as XmlElement); if (parsed != null) { var t = GroupableTypeAttribute.GetGroupType(parsed.GetType()); content.getObjects(t).Add(parsed); } } } return(base.content); }
private static void ParseContent(Chapter chapter, List <XmlNode> restNodes) { foreach (var el in restNodes) { object parsed = DOMParserUtility.DOMParse(el as XmlElement, chapter); if (parsed != null) { var t = GroupableTypeAttribute.GetGroupType(parsed.GetType()); chapter.getObjects(t).Add(parsed); } } }
public void deleteId(Type t, string id) { if (globalIdentifiers.ContainsKey(id)) { globalIdentifiers.Remove(id); t = GroupableTypeAttribute.GetGroupType(t); if (typeGroups.ContainsKey(t) && typeGroups[t].Contains(id)) { typeGroups[t].Remove(id); } } }
public void addId(System.Type t, string id) { if (!globalIdentifiers.ContainsKey(id)) { globalIdentifiers.Add(id, t); } t = GroupableTypeAttribute.GetGroupType(t); if (!typeGroups.ContainsKey(t)) { typeGroups.Add(t, new List <string>()); } if (!typeGroups [t].Contains(id)) { typeGroups[t].Add(id); } }