//
        // IPDFDataSource Members
        //

        #region public object Select(string path, PDFDataContext context)

        /// <summary>
        /// Retrieves the data from this DataSource based on the path
        /// </summary>
        /// <param name="path">The path to source the data from - for an XML DataSource this is an XPath query</param>
        /// <param name="data">The data to extract the result from</param>
        /// <returns>The required data (could be null)</returns>
        public object Select(string path, PDFDataContext context)
        {
            if (path == null)
            {
                path = string.Empty;
            }
            object data;

            try
            {
                data = this.DoSelectData(path, context);
            }
            catch (Exception ex)
            {
                throw RecordAndRaise.Data(ex, Errors.CouldNotSelectData);
            }

            return(data);
        }
        public object Evaluate(string expr, object withData, PDFDataContext context)
        {
            if (expr == null)
            {
                expr = string.Empty;
            }

            object result;

            try
            {
                result = this.DoEvaluateExpression(expr, withData, context);
            }
            catch (Exception ex)
            {
                throw RecordAndRaise.Data(ex, Errors.CouldNotSelectData);
            }
            return(result);
        }