Beispiel #1
0
        //────────────────────────────────────────

        protected override void Parse_ChildNodes(
            XmlElement cur_X,
            Configurationtree_Node cur_Cf,
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "Parse_ChildNodes", log_Reports);
            //
            //

            XmlNode err_Child_XNode;

            // <arg>要素のリスト
            XmlNodeList child_XNl = cur_X.ChildNodes;

            foreach (XmlNode child_XNode in child_XNl)
            {
                if (XmlNodeType.Element == child_XNode.NodeType)
                {
                    XmlElement xChild = (XmlElement)child_XNode;

                    if (NamesNode.S_ARG == xChild.Name)
                    {
                        //
                        // <arg>要素
                        XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(xChild.Name, log_Reports);
                        to.XmlToConfigurationtree(xChild, cur_Cf, memoryApplication, log_Reports);
                    }
                    else
                    {
                        // エラー。
                        err_Child_XNode = xChild;
                        goto gt_Error_UndefinedChild01;
                    }
                }
            }
            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_UndefinedChild01:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー386!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("<validator>要素に、<arg>要素以外の要素[");
                t.Append(err_Child_XNode.Name);
                t.Append("]が含まれていました。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Beispiel #2
0
        //────────────────────────────────────────

        protected override void Parse_ChildNodes(
            XmlElement cur_X,
            Configurationtree_Node cur_Cf,
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "Parse_ChildNodes", log_Reports);
            //
            //

            XmlNode err_Chidl_XNode = null;

            //
            // validator要素のリスト
            //
            XmlNodeList child_XNl = cur_X.ChildNodes;

            foreach (XmlNode child_XNode in child_XNl)
            {
                err_Chidl_XNode = child_XNode;

                if (XmlNodeType.Element == child_XNode.NodeType)
                {
                    XmlElement xChild = (XmlElement)child_XNode;

                    if (NamesNode.S_VALIDATOR == xChild.Name)
                    {
                        //
                        // <validator>要素。
                        XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_VALIDATOR, log_Reports);
                        to.XmlToConfigurationtree(
                            xChild,
                            cur_Cf,
                            memoryApplication,
                            log_Reports
                            );
                    }
                    else if (NamesNode.S_F_LISTBOX_VALIDATION == xChild.Name)
                    {
                        //
                        // <f-listbox-validation>要素。
                        XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_F_LISTBOX_VALIDATION, log_Reports);
                        to.XmlToConfigurationtree(
                            xChild,
                            cur_Cf,
                            memoryApplication,
                            log_Reports
                            );
                    }
                    else
                    {
                        //
                        // エラー。
                        goto gt_Error_UndefinedChild03;
                    }
                }
            }
            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_UndefinedChild03:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー410!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("<" + NamesNode.S_CONTROL1 + ">要素に、<validator>、<f-list-box-validation>要素以外の要素[");
                t.Append(err_Chidl_XNode.Name);
                t.Append("]が含まれていました。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }
Beispiel #3
0
        //────────────────────────────────────────
        #endregion



        #region アクション
        //────────────────────────────────────────

        /// <summary>
        /// Rfrファイル読取。
        ///
        /// 呼び出し元で、memoryApplicationに Stg をセットする。
        /// </summary>
        public Configurationtree_Node XmlToConfigurationtree(
            string sFpatha,//絶対ファイルパス
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "XmlToConfigurationtree", log_Reports);
            //
            //

            // リローディング設定。
            Configurationtree_Node sTg_Cnf = new Configurationtree_NodeImpl(NamesNode.S_CODEFILE_TOGETHERS, new Configurationtree_NodeImpl(sFpatha, null));

            System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();

            XmlElement err_XTop;
            Exception  err_Excp;

            try
            {
                xDoc.Load(sFpatha);


                // ルート要素を取得
                System.Xml.XmlElement xRoot = xDoc.DocumentElement;

                // スクリプトファイルのバージョンチェック。(関数登録ファイル)
                ValuesAttr.Test_Codefileversion(
                    xRoot.GetAttribute(PmNames.S_CODEFILE_VERSION.Name_Attribute),
                    log_Reports,
                    new Configurationtree_NodeImpl(sFpatha, null),
                    NamesNode.S_CODEFILE_TOGETHERS
                    );

                if (log_Reports.Successful)
                {
                    XmlNodeList xTopNL = xRoot.ChildNodes;

                    foreach (XmlNode xTopNode in xTopNL)
                    {
                        if (XmlNodeType.Element == xTopNode.NodeType)
                        {
                            XmlElement xTop = (XmlElement)xTopNode;

                            if (NamesNode.S_TOGETHER == xTop.Name)
                            {
                                XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_TOGETHER, log_Reports);
                                to.XmlToConfigurationtree(
                                    xTop,
                                    sTg_Cnf,
                                    memoryApplication,
                                    log_Reports
                                    );
                            }
                            else
                            {
                                err_XTop = xTop;
                                goto gt_Error_NotSupportedChild;
                            }
                        }
                    }
                }
            }
            catch (System.IO.IOException ex)
            {
                err_Excp = ex;
                goto gt_Error_IOException;
            }
            catch (Exception ex)
            {
                err_Excp = ex;
                goto gt_Error_Exception;
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_NotSupportedChild:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー387!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("トゥゲザー登録ファイルに、<" + NamesNode.S_TOGETHER + ">要素以外の要素[");
                t.Append(err_XTop.Name);
                t.Append("]が含まれていました。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント
                t.Append(r.Message_Configuration(sTg_Cnf));

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_IOException:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー388!", log_Method);

                StringBuilder t = new StringBuilder();

                t.Append("ファイルが見つかりません。");
                t.Append(Environment.NewLine);
                t.Append("absoluteFilePath=[");
                t.Append(sFpatha);
                t.Append("]");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント
                t.Append(r.Message_Configuration(sTg_Cnf));
                t.Append(r.Message_SException(err_Excp));

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Exception:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー344!", log_Method);

                StringBuilder t = new StringBuilder();

                t.Append("読み込むファイルを間違えているかも?");
                t.Append(Environment.NewLine);
                t.Append("トゥゲザー登録ファイル(絶対パス)=[" + sFpatha + "]");
                t.Append(Environment.NewLine);
                t.Append("ex.Message=[" + err_Excp.Message + "]");
                t.Append(Environment.NewLine);
                t.Append("ex.GetType().Name=[" + err_Excp.GetType().Name + "]");

                // ヒント
                t.Append(r.Message_Configuration(sTg_Cnf));
                t.Append(r.Message_SException(err_Excp));

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
            return(sTg_Cnf);
        }
Beispiel #4
0
        //────────────────────────────────────────

        public override void XmlToConfigurationtree(
            XmlElement cur_X,                 //<key-event>
            Configurationtree_Node parent_Cf, //<control>
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "XmlToConfigurationtree", log_Reports);
            //
            //


            //
            //
            //
            // 自
            //
            //
            //
            Configurationtree_Node cur_Cf = this.CreateMyself(cur_X, parent_Cf, memoryApplication, log_Reports);


            //
            //
            //
            // 属性
            //
            //
            //
            this.Parse_SAttribute(cur_X, cur_Cf, memoryApplication, log_Reports);


            //
            // コントロールの、key-eventリストに、S_KeyEventを追加。
            //
            if (log_Reports.Successful)
            {
                XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_KEY_ACTION, log_Reports);

                //List<string> li = new List<string>();
                //li.Add(PmNames.TYPE.Name_Pm);
                //li.Add(PmNames.S_DESCRIPTION.Name_Attribute);
                //xToS.List_AttrName = li;

                //
                //
                // fncノードを列挙
                //
                XmlNodeList child_XNl = cur_X.ChildNodes;
                foreach (XmlNode xChild in child_XNl)
                {
                    if (XmlNodeType.Element == xChild.NodeType)
                    {
                        if (NamesNode.S_FNC == xChild.Name)
                        {
                            XmlElement xFnc = (XmlElement)xChild;

                            to.XmlToConfigurationtree(
                                xFnc,
                                cur_Cf,
                                memoryApplication,
                                log_Reports
                                );
                        }
                        else
                        {
                            //#連続エラー
                            {
                                Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();
                                tmpl.SetParameter(1, xChild.Name, log_Reports);                                        //ノード名
                                tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト

                                memoryApplication.CreateErrorReport("Er:8025;", tmpl, log_Reports);
                            }
                        }
                    }
                }
            }



            //
            //
            //
            // 親へ連結
            //
            //
            //
            if (log_Reports.Successful)
            {
                parent_Cf.List_Child.Add(cur_Cf, log_Reports);
            }



            //
            //
            //
            //
            log_Method.EndMethod(log_Reports);
        }
Beispiel #5
0
        //────────────────────────────────────────

        /// <summary>
        /// X → S。
        /// </summary>
        /// <param name="sFpatha">絶対ファイルパス</param>
        /// <param name="memoryApplication"></param>
        /// <param name="log_Reports"></param>
        public void XmlToConfigurationtree(
            string sFpatha,
            MemoryApplication memoryApplication,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "XmlToConfigurationtree", log_Reports);
            //
            //

            System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
            Exception err_Excp          = null;

            if (System.IO.File.Exists(sFpatha))
            {
                try
                {
                    xDoc.Load(sFpatha);
                }
                catch (System.IO.IOException ex)
                {
                    //
                    // エラー。
                    err_Excp = ex;
                    goto gt_Error_IoException01;
                }
                catch (ArgumentException ex)
                {
                    //
                    // エラー。
                    err_Excp = ex;
                    goto gt_Error_ArgException01;
                }
                catch (Exception ex)
                {
                    //
                    // エラー。
                    err_Excp = ex;
                    goto gt_Error_Exception91;
                }
            }
            else
            {
                // エラー。
                goto gt_Error_NotFoundFile;
            }



            XmlNode err_XTopNode = null;

            if (log_Reports.Successful)
            {
                // new した直後の内容に戻します。
                memoryApplication.MemoryValidators.Configurationtree_Validatorsconfig.Clear(NamesNode.S_CODEFILE_VALIDATORS, new Configurationtree_NodeImpl(sFpatha, null), log_Reports);


                // ルート要素を取得
                System.Xml.XmlElement xRoot = xDoc.DocumentElement;

                // スクリプトファイルのバージョンチェック。(バリデーター登録ファイル)
                ValuesAttr.Test_Codefileversion(
                    xRoot.GetAttribute(PmNames.S_CODEFILE_VERSION.Name_Attribute),
                    log_Reports,
                    new Configurationtree_NodeImpl(sFpatha, null),
                    NamesNode.S_CODEFILE_VALIDATORS
                    );

                //
                //<control>要素を列挙
                //
                XmlNodeList xNl_Top = xRoot.ChildNodes;

                foreach (XmlNode xTopNode in xNl_Top)
                {
                    err_XTopNode = xTopNode;

                    if (XmlNodeType.Element == xTopNode.NodeType)
                    {
                        if (NamesNode.S_CONTROL1 == xTopNode.Name)
                        {
                            XmlElement xTop = (XmlElement)xTopNode;

                            //
                            //
                            //
                            //<control>要素
                            //
                            //
                            //

                            XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(xTopNode.Name, log_Reports);
                            to.XmlToConfigurationtree(
                                xTop,
                                memoryApplication.MemoryValidators.Configurationtree_Validatorsconfig,
                                memoryApplication,
                                log_Reports
                                );
                        }
                        else
                        {
                            //
                            // エラー。
                            goto gt_Error_UndefinedChild04;
                        }
                    }
                }
            }
            else
            {
                // new した直後の内容に戻します。
                memoryApplication.MemoryValidators.Configurationtree_Validatorsconfig.Clear(NamesNode.S_CODEFILE_VALIDATORS, new Configurationtree_NodeImpl("!ハードコーディング_" + log_Method.Fullname, null), log_Reports);
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_NotFoundFile:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー31!", log_Method);

                StringBuilder s = new StringBuilder();
                s.Append("バリデーション設定ファイル読取時。");
                s.Append(Environment.NewLine);
                s.Append("ファイルが見つかりません。");
                s.Append(Environment.NewLine);
                s.Append("[");
                s.Append(sFpatha);
                s.Append("]");

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_IoException01:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー34!", log_Method);

                StringBuilder s = new StringBuilder();
                s.Append("バリデーション設定ファイル読取時。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);
                s.Append("ファイルが見つかりません:" + err_Excp.Message);
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                // ヒント

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_ArgException01:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー397!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("バリデーション設定ファイル読取時。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);
                t.Append("読み込むファイルを間違えているかも?:" + err_Excp.Message);
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);
                t.Append("absoluteFilePath=[");
                t.Append(sFpatha);
                t.Append("]");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_UndefinedChild04:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー398!", log_Method);

                StringBuilder sb = new StringBuilder();
                sb.Append("バリデーション設定ファイル(Xv)に、<" + NamesNode.S_CONTROL1 + ">要素以外の要素[");
                sb.Append(err_XTopNode.Name);
                sb.Append("]が含まれていました。");
                sb.Append(Environment.NewLine);
                sb.Append(Environment.NewLine);

                // ヒント

                r.Message = sb.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Exception91:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー399!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("何らかのエラー。");
                t.Append(Environment.NewLine);
                t.Append(Environment.NewLine);

                // ヒント
                t.Append(r.Message_SException(err_Excp));

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
        }