public override void FromXml(string source) { // Deserializes model from xml string XqlParser parser = new XqlParser(); parser.LoadData(source); // Start with Lua List <Hashtable> results = parser.Query("SELECT _outerXml FROM " + Lua.ElementType); if (results.Count == 0) { // LUA tages are optional; if there are no tags present, scripting is disabled and no scripts are specified //throw new HsfComponentException("Unable to parse " + ElementType + " from xml"); Lua.IsScriptingEnabled = false; Lua.Files.Clear(); } else { Lua.FromXml(results[0]["_outerXml"].ToString()); } // Next, schedule evaluator results = parser.Query("SELECT _outerXml FROM " + ScheduleEvaluator.ElementType); if (results.Count == 0) { throw new HsfComponentException("Unable to parse " + ElementType + " from xml"); } ScheduleEvaluator.FromXml(results[0]["_outerXml"].ToString()); // Lastly, assets AssetElement blankAsset = new AssetElement(); Assets.Clear(); results = parser.Query("SELECT _outerXml FROM " + blankAsset.ElementType); foreach (Hashtable ht in results) { AssetElement newAsset = new AssetElement(); newAsset.FromXml(ht["_outerXml"].ToString()); Assets.Add(newAsset); } }