protected override void OnRead(IXmlCodeReader reader, XmlNode node)
        {
            XmlNode nd = node.SelectSingleNode(XML_Value);

            if (nd != null)
            {
                if (ValueType == EnumValueType.ConstantValue)
                {
                    ConstantValue.OnReadFromXmlNode(reader, nd);
                }
                else if (ValueType == EnumValueType.MathExpression)
                {
                    MathExpression.OnReadFromXmlNode(reader, nd);
                }
                else if (ValueType == EnumValueType.Property)
                {
                    if (!XmlUtil.GetAttributeBoolDefFalse(nd, XmlTags.XMLATT_IsNull))
                    {
                        Property = reader.ReadObject(nd, this) as IObjectPointer;
                    }
                }
            }
        }