/// <summary>
        /// generates one cedent to XML string
        /// </summary>
        /// <param name="box">cedent box</param>
        /// <param name="rKLCedent">cedent record</param>
        /// <param name="CedentType">cedent type</param>
        /// <returns>XML string</returns>
        private static string getOneItemXML(IBoxModule box, Rec_KL_cedent rKLCedent, string CedentType)
        {
            string resultStr = "";

            IBoxModule[] SubCedents = box.GetConnections(CedentType);

            rKLCedent.sub_cedent_cnt = SubCedents.Length;
            // adding KL cedent to XML
            if (rKLCedent.sub_cedent_cnt > 0)
            {
                resultStr = rKLCedent.ToXML(getOneCedentXML(SubCedents));
            }

            return(resultStr);
        }
        /// <summary>
        /// Returns XML string with all occurences of Active element "KL cedent".
        /// </summary>
        /// <param name="index">index of data source in FEplugin data sources table</param>
        /// <returns>XML string</returns>
        public static string getList(int index)
        {
            string resultString = ""; // result XML string
            string ErrStr = "";  // error reports
            int counterID = 0;

            // loading DTD to resultString
            try { resultString = XMLHelper.loadDTD(); }
            catch (Exception e)
            {
            #if (LADENI)
                MessageBox.Show("error while loading DTD: " + e.Message);
            #endif
                return resultString;
            }

            // root element
            resultString += "<active_list>";

            string[] BoxTypes = { "LISpMinerTasks.KLTask", "LISpMinerTasks.SDKLTask" }; // types of boxes (tasks) for which are searched KL cedents

            // searching all boxes of tasks
            IBoxModule[] TaskBoxes = BoxesHelper.ListBoxesWithID(CFEsourcesTab.Sources[index] as CFEsource, BoxTypes);

            #region Loop - processing of each tasks found

            foreach (IBoxModule box in TaskBoxes)
            {
                Rec_KL_cedent rKLCedent = new Rec_KL_cedent();
                counterID = 0;

                try
                {
                    // setting ID
                    rKLCedent.id = "klcdnt" + box.ProjectIdentifier.ToString() + "_";

                    // searching data source name (database)
                    IBoxModule[] db_names = BoxesHelper.ListAncestBoxesWithID(box, "DataMiningCommon.Database");
                    if (db_names.GetLength(0) != 1)  // searched more than one data source or neither one
                        throw new System.Exception("found " + db_names.GetLength(0).ToString() + " databases");
                    rKLCedent.db_name = db_names[0].GetPropertyString("DatabaseName");

                    // searching data matrix name
                    IBoxModule[] matrix_names = BoxesHelper.ListAncestBoxesWithID(box, "DataMiningCommon.DataMatrix");
                    if (matrix_names.GetLength(0) != 1)  // searched more than one data source or neither one
                        throw new System.Exception("found " + matrix_names.GetLength(0).ToString() + " data matrixes");
                    rKLCedent.matrix_name = matrix_names[0].GetPropertyString("Name");

                    // searching task name
                    rKLCedent.task_name = box.UserName;

                    // processing of several Task types
                    string id = rKLCedent.id;
                    switch (box.MadeInCreator.Identifier) // all available task types
                    {
                        case "LISpMinerTasks.KLTask":
                            rKLCedent.task_type = "KL Task";

                            // Antecedent
                            rKLCedent.id = id + counterID.ToString();
                            counterID++;
                            rKLCedent.cedent_type = "Row attributes";
                            resultString += getOneItemXML(box, rKLCedent, "AntecedentSetting");

                            // Succedent
                            rKLCedent.id = id + counterID.ToString();
                            counterID++;
                            rKLCedent.cedent_type = "Column attributes";
                            resultString += getOneItemXML(box, rKLCedent, "SuccedentSetting");
                            break;

                        case "LISpMinerTasks.SDKLTask":
                            rKLCedent.task_type = "SD-KL Task";

                            // Anecedent
                            rKLCedent.id = id + counterID.ToString();
                            counterID++;
                            //rKLCedent.cedent_type = CedentEnum.Antecedent.ToString();
                            rKLCedent.cedent_type = "Row attributes";
                            resultString += getOneItemXML(box, rKLCedent, "AntecedentSetting");

                            // Succedent
                            rKLCedent.id = id + counterID.ToString();
                            counterID++;
                            rKLCedent.cedent_type = "Column attributes";
                            //rKLCedent.cedent_type = CedentEnum.Succedent.ToString();
                            resultString += getOneItemXML(box, rKLCedent, "SuccedentSetting");
                            break;
                    }

                }
                catch (System.Exception e)
                {
                    ErrStr += "Box ProjectIdentifier=" + box.ProjectIdentifier.ToString() + ": " + e.Message + "\n";
                }
            }

            #endregion

            // root element
            resultString += "</active_list>";

            #if (LADENI)
            // Kody - storing output to file "XMLKL_cedentExample.xml" in directory
            XMLHelper.saveXMLexample(resultString, "../XML/XMLKL_cedentExample.xml");

            if (ErrStr != "") // LADICI
                MessageBox.Show("Chyby pri generating seznamu KL cedent:\n" + ErrStr);
            #endif

            return resultString;
        }
        /// <summary>
        /// generates one cedent to XML string
        /// </summary>
        /// <param name="box">cedent box</param>
        /// <param name="rKLCedent">cedent record</param>
        /// <param name="CedentType">cedent type</param>
        /// <returns>XML string</returns>
        private static string getOneItemXML(IBoxModule box, Rec_KL_cedent rKLCedent, string CedentType)
        {
            string resultStr = "";
            IBoxModule[] SubCedents = box.GetConnections(CedentType);

            rKLCedent.sub_cedent_cnt = SubCedents.Length;
            // adding KL cedent to XML
            if (rKLCedent.sub_cedent_cnt > 0)
                resultStr = rKLCedent.ToXML(getOneCedentXML(SubCedents));

            return resultStr;
        }
        /// <summary>
        /// Returns XML string with all occurences of Active element "KL cedent".
        /// </summary>
        /// <param name="index">index of data source in FEplugin data sources table</param>
        /// <returns>XML string</returns>
        public static string getList(int index)
        {
            string resultString = ""; // result XML string
            string ErrStr       = ""; // error reports
            int    counterID    = 0;

            // loading DTD to resultString
            try { resultString = XMLHelper.loadDTD(); }
            catch (Exception e)
            {
#if (LADENI)
                MessageBox.Show("error while loading DTD: " + e.Message);
#endif
                return(resultString);
            }

            // root element
            resultString += "<active_list>";

            string[] BoxTypes = { "LISpMinerTasks.KLTask", "LISpMinerTasks.SDKLTask" }; // types of boxes (tasks) for which are searched KL cedents

            // searching all boxes of tasks
            IBoxModule[] TaskBoxes = BoxesHelper.ListBoxesWithID(CFEsourcesTab.Sources[index] as CFEsource, BoxTypes);

            #region Loop - processing of each tasks found

            foreach (IBoxModule box in TaskBoxes)
            {
                Rec_KL_cedent rKLCedent = new Rec_KL_cedent();
                counterID = 0;

                try
                {
                    // setting ID
                    rKLCedent.id = "klcdnt" + box.ProjectIdentifier.ToString() + "_";

                    // searching data source name (database)
                    IBoxModule[] db_names = BoxesHelper.ListAncestBoxesWithID(box, "DataMiningCommon.Database");
                    if (db_names.GetLength(0) != 1)  // searched more than one data source or neither one
                    {
                        throw new System.Exception("found " + db_names.GetLength(0).ToString() + " databases");
                    }
                    rKLCedent.db_name = db_names[0].GetPropertyString("DatabaseName");

                    // searching data matrix name
                    IBoxModule[] matrix_names = BoxesHelper.ListAncestBoxesWithID(box, "DataMiningCommon.DataMatrix");
                    if (matrix_names.GetLength(0) != 1)  // searched more than one data source or neither one
                    {
                        throw new System.Exception("found " + matrix_names.GetLength(0).ToString() + " data matrixes");
                    }
                    rKLCedent.matrix_name = matrix_names[0].GetPropertyString("Name");

                    // searching task name
                    rKLCedent.task_name = box.UserName;

                    // processing of several Task types
                    string id = rKLCedent.id;
                    switch (box.MadeInCreator.Identifier) // all available task types
                    {
                    case "LISpMinerTasks.KLTask":
                        rKLCedent.task_type = "KL Task";

                        // Antecedent
                        rKLCedent.id = id + counterID.ToString();
                        counterID++;
                        rKLCedent.cedent_type = "Row attributes";
                        resultString         += getOneItemXML(box, rKLCedent, "AntecedentSetting");

                        // Succedent
                        rKLCedent.id = id + counterID.ToString();
                        counterID++;
                        rKLCedent.cedent_type = "Column attributes";
                        resultString         += getOneItemXML(box, rKLCedent, "SuccedentSetting");
                        break;

                    case "LISpMinerTasks.SDKLTask":
                        rKLCedent.task_type = "SD-KL Task";

                        // Anecedent
                        rKLCedent.id = id + counterID.ToString();
                        counterID++;
                        //rKLCedent.cedent_type = CedentEnum.Antecedent.ToString();
                        rKLCedent.cedent_type = "Row attributes";
                        resultString         += getOneItemXML(box, rKLCedent, "AntecedentSetting");

                        // Succedent
                        rKLCedent.id = id + counterID.ToString();
                        counterID++;
                        rKLCedent.cedent_type = "Column attributes";
                        //rKLCedent.cedent_type = CedentEnum.Succedent.ToString();
                        resultString += getOneItemXML(box, rKLCedent, "SuccedentSetting");
                        break;
                    }
                }
                catch (System.Exception e)
                {
                    ErrStr += "Box ProjectIdentifier=" + box.ProjectIdentifier.ToString() + ": " + e.Message + "\n";
                }
            }

            #endregion

            // root element
            resultString += "</active_list>";

#if (LADENI)
            // Kody - storing output to file "XMLKL_cedentExample.xml" in directory
            XMLHelper.saveXMLexample(resultString, "../XML/XMLKL_cedentExample.xml");

            if (ErrStr != "") // LADICI
            {
                MessageBox.Show("Chyby pri generating seznamu KL cedent:\n" + ErrStr);
            }
#endif

            return(resultString);
        }