/// <summary>
        /// Initializes a new instance of the <see cref="CrossSectionalDataReaderEngine"/> class.
        /// </summary>
        /// <param name="dataLocation">
        /// The data location.
        /// </param>
        /// <param name="objectRetrieval">
        /// The object retrieval.
        /// </param>
        /// <param name="defaultDsd">
        /// The DSD. giving the ability to retrieve DSDs for the datasets this reader engine is reading.  This
        ///     can be null if there is only one relevant DSD - in which case the default DSD should be provided
        /// </param>
        /// <param name="dataflow">
        /// The dataflow.
        /// </param>
        public CrossSectionalDataReaderEngine(IReadableDataLocation dataLocation, ISdmxObjectRetrievalManager objectRetrieval, ICrossSectionalDataStructureObject defaultDsd, IDataflowObject dataflow)
        {
            this._xmlBuilder = new XmlReaderBuilder();
            if (objectRetrieval == null && defaultDsd == null)
            {
                throw new ArgumentException("AbstractDataReaderEngine expects either a ISdmxObjectRetrievalManager or a IDataStructureObject to be able to interpret the structures");
            }

            this._objectRetrieval = objectRetrieval;
            this._dataLocation = dataLocation;
            this._defaultDsd = defaultDsd;
            this._dataflow = dataflow;

            this.Reset();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DataInformationManager"/> class.
 /// </summary>
 /// <param name="fixedConceptEngine">
 /// The fixed concept engine.
 /// </param>
 /// <param name="reportedDateEngine">
 /// The reported date engine.
 /// </param>
 public DataInformationManager(IFixedConceptEngine fixedConceptEngine, IReportedDateEngine reportedDateEngine)
 {
     this._fixedConceptEngine = fixedConceptEngine ?? new FixedConceptEngine();
     this._reportedDateEngine = reportedDateEngine ?? new ReportedDateEngine();
     this._xmlReaderBuilder = new XmlReaderBuilder();
 }