//──────────────────────────────────────── 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); }
//──────────────────────────────────────── 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); }
//──────────────────────────────────────── #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); }
//──────────────────────────────────────── 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); }
//──────────────────────────────────────── /// <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); }