/// <summary></summary>
        /// <param name="element"></param>
        /// <returns></returns>
        public static string Parse(XmlElement element)
        {
            // <expression >
            //  <expression key="" value"" type="" prefix="and" >
            //  <expression key="" value"" type="" >
            // </expression >
            //

            DataQueryExpression expression = new DataQueryExpression();

            expression.LoadXml(element);

            return(expression.ToString());
        }
        /// <summary></summary>
        /// <param name="element"></param>
        /// <returns></returns>
        public void LoadXml(XmlElement element)
        {
            Key       = element.GetAttribute("key");
            Operation = string.IsNullOrEmpty(element.GetAttribute("operation")) ? "=" : element.GetAttribute("operation").Replace("!=", "<>");
            Value     = element.GetAttribute("value");
            Type      = element.GetAttribute("type");

            Prefix = element.GetAttribute("prefix").ToUpper();

            XmlNodeList nodes = element.ChildNodes;

            DataQueryExpression subexpression = null;

            foreach (XmlNode node in nodes)
            {
                subexpression = new DataQueryExpression();

                subexpression.Parent = this;

                subexpression.LoadXml((XmlElement)node);

                Add(subexpression);
            }
        }
 /// <summary></summary>
 /// <param name="item"></param>
 public void Remove(DataQueryExpression item)
 {
     list.Remove(item);
 }
 /// <summary></summary>
 /// <param name="item"></param>
 public void Add(DataQueryExpression item)
 {
     list.Add(item);
 }