void TestR5()
        {
            PersistData <int, ListOfStrings> persistEngine1 = new PersistData <int, ListOfStrings>();

            "Demonstrating Requirement #5".title();
            "Write in-memory database in XML file to persist data, please check Data1.xml file.".title('-');
            persistEngine1.loadXmlFile("Data1.xml", typeof(int).Name, typeof(ListOfStrings).Name);

            if (!persistEngine1.addRecord(1, db1.Dictionary[1]))
            {
                WriteLine("\nKey 1 is already in xml file.");
            }
            else
            {
                WriteLine("Key 1 is inserted in xml file.");
            }
            if (!persistEngine1.addRecord(2, db1.Dictionary[2]))
            {
                WriteLine("Key 2 is already in xml file.");
            }
            else
            {
                WriteLine("Key 2 is inserted in xml file.");
            }
            if (!persistEngine1.addRecord(4, db1.Dictionary[4]))
            {
                WriteLine("Key 4 is already in xml file.");
            }
            else
            {
                WriteLine("Key 4 is inserted in xml file.");
            }
            if (!persistEngine1.addRecord(2, db1.Dictionary[4]))
            {
                WriteLine("Key 4 is already in xml file.");
            }
            else
            {
                WriteLine("Key 4 is inserted in xml file.");
            }

            "Persist XML file looks like this ".title('-');
            XDocument document = persistEngine1.loadXmlFile("Data1.xml");

            WriteLine(document.ToString());
            "Database restored or augmented from an existing XML (Data1.xml) file".title('-');


            DBEngine <int, DBElement <int, ListOfStrings> > augmentData = new DBEngine <int, DBElement <int, ListOfStrings> >();

            persistEngine1.retrieveDataFromXML(augmentData, "Data1.xml");
            augmentData.showDB();

            WriteLine();
        }
        void TestR9()
        {
            "Demonstrating Requirement #9".title();
            WriteLine();
            PersistData <int, ListOfStrings> persistEngine = new PersistData <int, ListOfStrings>();
            DBEngine <string, DBElement <string, ListOfStrings> > augmentData = new DBEngine <string, DBElement <string, ListOfStrings> >();

            persistEngine.loadXmlFile("Dependency.xml");
            persistEngine.retrieveDataFromDependencyXML(augmentData, "Dependency.xml");
            augmentData.showDependencyDB();
            WriteLine();
        }
        /////////////////////////////////////////////////////////////////
        // Schedular constructor which schedule timer based on input interval timings.
        public Scheduler(double interval, DBEngine <int, DBElement <int, ListOfStrings> > dbEngine)
        {
            schedular.Interval  = interval;
            schedular.AutoReset = true;

            PersistData <int, ListOfStrings> persistEngine = new PersistData <int, ListOfStrings>();

            persistEngine.loadXmlFile("Data1.xml");
            schedular.Elapsed += (object source, ElapsedEventArgs e) =>
            {
                persistEngine.persistDatatoXML(ref dbEngine);
                Console.Write("  Persist Data to XML called by Scheduler.\n");
            };
        }
        static void Main(string[] args)
        {
            "Testing Persist Engine Package".title('=');
            DBEngine <int, DBElement <int, ListOfStrings> > db1 = new DBEngine <int, DBElement <int, ListOfStrings> >();
            PersistData <int, ListOfStrings> persistEngine1     = new PersistData <int, ListOfStrings>();

            "Write in-memory database in XML file, please check DataPersistTest.xml file.".title('-');
            persistEngine1.loadXmlFile("DataPersistTest.xml", typeof(int).Name, typeof(ListOfStrings).Name);
            if (!persistEngine1.addRecord(1, db1.Dictionary[1]))
            {
                WriteLine("Key 1 is already in xml file.");
            }
            else
            {
                WriteLine("Key 1 is inserted in xml file.");
            }
            if (!persistEngine1.addRecord(2, db1.Dictionary[2]))
            {
                WriteLine("Key 2 is already in xml file.");
            }
            else
            {
                WriteLine("Key 2 is inserted in xml file.");
            }
            if (!persistEngine1.addRecord(4, db1.Dictionary[4]))
            {
                WriteLine("Key 4 is already in xml file.");
            }
            else
            {
                WriteLine("Key 4 is inserted in xml file.");
            }
            if (!persistEngine1.addRecord(2, db1.Dictionary[4]))
            {
                WriteLine("Key 4 is already in xml file.");
            }
            else
            {
                WriteLine("Key 4 is inserted in xml file.");
            }

            "Database restored or augmented from an existing XML (Data1.xml) file".title('-');

            DBEngine <int, DBElement <int, ListOfStrings> > augmentData = new DBEngine <int, DBElement <int, ListOfStrings> >();

            persistEngine1.retrieveDataFromXML(augmentData, "DataPersistTest.xml");
            augmentData.showDB();

            WriteLine();
        }