DataElementOutputEnum _DataElementOutput;               // Indicates whether the data point should
        // appear in a data rendering.

        public DataPoint(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p)
        {
            _DataValues        = null;
            _DataLabel         = null;
            _Action            = null;
            _Style             = null;
            _Marker            = null;
            _DataElementName   = null;
            _DataElementOutput = DataElementOutputEnum.Output;

            // Loop thru all the child nodes
            foreach (XmlNode xNodeLoop in xNode.ChildNodes)
            {
                if (xNodeLoop.NodeType != XmlNodeType.Element)
                {
                    continue;
                }
                switch (xNodeLoop.Name)
                {
                case "DataValues":
                    _DataValues = new DataValues(r, this, xNodeLoop);
                    break;

                case "DataLabel":
                    _DataLabel = new DataLabel(r, this, xNodeLoop);
                    break;

                case "Action":
                    _Action = new Action(r, this, xNodeLoop);
                    break;

                case "Style":
                    _Style = new Style(r, this, xNodeLoop);
                    break;

                case "Marker":
                    _Marker = new Marker(r, this, xNodeLoop);
                    break;

                case "DataElementName":
                    _DataElementName = xNodeLoop.InnerText;
                    break;

                case "DataElementOutput":
                    _DataElementOutput = Oranikle.Report.Engine.DataElementOutput.GetStyle(xNodeLoop.InnerText, OwnerReport.rl);
                    break;

                default:
                    // don't know this element - log it
                    OwnerReport.rl.LogError(4, "Unknown DataPoint element '" + xNodeLoop.Name + "' ignored.");
                    break;
                }
            }
            if (_DataValues == null)
            {
                OwnerReport.rl.LogError(8, "DataPoint requires the DataValues element.");
            }
        }
		DataElementOutputEnum _DataElementOutput;	// Indicates whether the data point should
									// appear in a data rendering.
	
		public DataPoint(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p)
		{
			_DataValues=null;
			_DataLabel=null;
			_Action=null;
			_Style=null;
			_Marker=null;
			_DataElementName=null;
			_DataElementOutput=DataElementOutputEnum.Output;

			// Loop thru all the child nodes
			foreach(XmlNode xNodeLoop in xNode.ChildNodes)
			{
				if (xNodeLoop.NodeType != XmlNodeType.Element)
					continue;
				switch (xNodeLoop.Name)
				{
					case "DataValues":
						_DataValues = new DataValues(r, this, xNodeLoop);
						break;
					case "DataLabel":
						_DataLabel = new DataLabel(r, this, xNodeLoop);
						break;
					case "Action":
						_Action = new Action(r, this, xNodeLoop);
						break;
					case "Style":
						_Style = new Style(r, this, xNodeLoop);
						break;
					case "Marker":
						_Marker = new Marker(r, this, xNodeLoop);
						break;
					case "DataElementName":
						_DataElementName = xNodeLoop.InnerText;
						break;
					case "DataElementOutput":
						_DataElementOutput = Oranikle.Report.Engine.DataElementOutput.GetStyle(xNodeLoop.InnerText, OwnerReport.rl);
						break;
					default:	
						// don't know this element - log it
						OwnerReport.rl.LogError(4, "Unknown DataPoint element '" + xNodeLoop.Name + "' ignored.");
						break;
				}
			}
			if (_DataValues == null)
				OwnerReport.rl.LogError(8, "DataPoint requires the DataValues element.");
		}