// ------------------------------------------------------------------------------------- /// <summary> /// Constructor loads properties from an XML string /// </summary> /// <param name="XML">XML string with property values</param> // ------------------------------------------------------------------------------------- public QuestionListItems(string XML) : base() { try { m_Width = ControlWidth; m_Rows = Rows; if (XML == string.Empty) return; XmlDocument doc = new XmlDocument(); doc.LoadXml(XML); if (doc.DocumentElement == null) return; if (doc.DocumentElement.Name != LIST_ROOT) throw new InvalidParameterException("Invalid root element: " + XML); if (doc.DocumentElement.SelectSingleNode("./" + ORDER) != null) { m_ItemOrder = (ListItemOrder) Enum.Parse(typeof (ListItemOrder), doc.DocumentElement.SelectSingleNode("./" + ORDER).InnerXml); } if (doc.DocumentElement.SelectSingleNode("./" + WIDTH) != null) { m_Width = Convert.ToInt32(doc.DocumentElement.SelectSingleNode("./" + WIDTH).InnerXml); } if (doc.DocumentElement.SelectSingleNode("./" + ROWS) != null) { m_Rows = Convert.ToInt32(doc.DocumentElement.SelectSingleNode("./" + ROWS).InnerXml); } if (doc.DocumentElement.SelectSingleNode("./" + ITEMS) != null) { XmlNode listNode = doc.DocumentElement.SelectSingleNode("./" + ITEMS); foreach (XmlNode QuestionListItemNode in listNode.ChildNodes) { QuestionListItem questionListItem = new QuestionListItem(QuestionListItemNode); Add(questionListItem); } } } catch (Exception e) { if (e is InvalidParameterException) throw e; else { InvalidParameterException invalidParameterException = new InvalidParameterException(XML); throw invalidParameterException; } } }
// ------------------------------------------------------------------------------------- /// <summary> /// Parses the input XML and set class properties /// </summary> /// <param name="XML">XML string wich contains class properties</param> // ------------------------------------------------------------------------------------- private void ParseQuestionConstraint(string XML) { if (XML == string.Empty) return; try { XmlDocument doc = new XmlDocument(); doc.LoadXml(XML); ParseQuestionConstraint(doc); m_XML = XML; } catch (Exception e) { InvalidParameterException invalidParameterException = new InvalidParameterException(e.Message); throw invalidParameterException; } }