////////////////////////////////////////////////////////////////////////// internal override void WriteXml(XmlNode RootNode) { XmlElement Node = RootNode.OwnerDocument.CreateElement("Method"); Node.SetAttribute("Global", IsGlobal.ToString()); Node.SetAttribute("Constructor", Constructor.ToString()); base.WriteXml(Node); // headers foreach (string Header in Headers) { XmlNode HeaderNode = RootNode.OwnerDocument.CreateElement("Signature"); XmlNode SigNode = RootNode.OwnerDocument.CreateTextNode(Header); HeaderNode.AppendChild(SigNode); Node.AppendChild(HeaderNode); } // parameters foreach (ScriptParameter Param in Parameters) { Param.WriteXml(Node); } RootNode.AppendChild(Node); }
////////////////////////////////////////////////////////////////////////// internal override void WriteXml(XmlNode RootNode) { XmlElement Node = RootNode.OwnerDocument.CreateElement("Attribute"); Node.SetAttribute("Global", IsGlobal.ToString()); Node.SetAttribute("ReadOnly", ReadOnly.ToString()); base.WriteXml(Node); RootNode.AppendChild(Node); }
public void WriteInfoToFile(string fullPath) { XmlDocument doc = new XmlDocument(); doc.AppendChild(doc.CreateXmlDeclaration("1.0", "utf-8", null)); XmlElement root = doc.CreateElement("scriptinfo"); XmlElement settings = doc.CreateElement("settings"); settings.SetAttribute("global", IsGlobal.ToString()); settings.SetAttribute("successfully", (SF.ReadingState != ReadingState.Error).ToString()); settings.SetAttribute("compiled", IsCompiled.ToString()); XmlElement name = doc.CreateElement("name"); name.InnerText = Name; settings.AppendChild(name); root.AppendChild(settings); XmlElement content = doc.CreateElement("content"); if (SF.ReadingState != ReadingState.Error) { foreach (IncludeInfo inc in Includes) { XmlElement include = doc.CreateElement("include"); include.InnerText = inc.SFPath; content.AppendChild(include); } foreach (UsingInfo curUsing in Usings) { XmlElement usingElem = doc.CreateElement("using"); usingElem.SetAttribute("name", curUsing.Name); usingElem.SetAttribute("access", curUsing.Access.ToString()); XmlElement sfPath = doc.CreateElement("sfPath"); sfPath.InnerText = curUsing.SFPath; usingElem.AppendChild(sfPath); content.AppendChild(usingElem); } foreach (ConstInfo constant in Constants) { XmlElement constElem = doc.CreateElement("const"); constElem.SetAttribute("name", constant.Name); constElem.SetAttribute("access", constant.Access.ToString()); constElem.SetAttribute("sealed", constant.Sealed.ToString()); XmlElement summary = doc.CreateElement("summary"); summary.InnerText = constant.Summary; constElem.AppendChild(summary); XmlElement value = doc.CreateElement("value"); value = constant.Value.ToXML(doc, value, this); constElem.AppendChild(value); content.AppendChild(constElem); } foreach (FuncInfo func in Functions) { XmlElement funcElem = doc.CreateElement("func"); funcElem.SetAttribute("name", func.Name); funcElem.SetAttribute("access", func.Access.ToString()); XmlElement self = doc.CreateElement("self"); self.InnerText = func.Self; funcElem.AppendChild(self); XmlElement summary = doc.CreateElement("summary"); summary.InnerText = func.Summary; funcElem.AppendChild(summary); XmlElement returns = doc.CreateElement("returns"); returns.InnerText = func.Returns; funcElem.AppendChild(returns); XmlElement example = doc.CreateElement("example"); example.InnerText = func.Example; funcElem.AppendChild(example); foreach (FuncParamInfo param in func.Parameters) { XmlElement paramElem = doc.CreateElement("param"); paramElem.SetAttribute("name", param.Name); if (param.IsOpt) { paramElem.SetAttribute("opt", param.IsOpt.ToString()); } paramElem.InnerText = param.Summary; funcElem.AppendChild(paramElem); } content.AppendChild(funcElem); } foreach (IReferenceInfo refInfo in References) { content.AppendChild(refInfo.ToXML(doc)); } } foreach (Error error in SF.Errors) { content.AppendChild(error.ToXML(doc)); } root.AppendChild(content); doc.AppendChild(root); Directory.CreateDirectory(Path.GetDirectoryName(fullPath)); doc.Save(fullPath); }