//──────────────────────────────────────── 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); }
//──────────────────────────────────────── 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); // // XmlElement err_XAEelem66 = null; // <a-empty-field>要素のリスト XmlNodeList child_XNl = cur_X.ChildNodes; foreach (XmlNode child_XNode in child_XNl) { if (XmlNodeType.Element == child_XNode.NodeType) { XmlElement xChild = (XmlElement)child_XNode; err_XAEelem66 = xChild; string sName_Fnc = xChild.GetAttribute(PmNames.S_NAME.Name_Attribute); if (NamesFnc.S_VLD_EMPTY_FIELD == sName_Fnc) { // // <a-empty-field>要素 XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByFncName(sName_Fnc, log_Reports); to.XmlToConfigurationtree( xChild, cur_Cf, memoryApplication, log_Reports ); } else { // // エラー。 goto gt_Error_UndefinedChild13; } } } goto gt_EndMethod; // // #region 異常系 //──────────────────────────────────────── gt_Error_UndefinedChild13: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー411!", log_Method); StringBuilder t = new StringBuilder(); t.Append("<f-all-true>要素に、<a-emtpy-field>要素以外の要素"); t.Append(Environment.NewLine); t.Append("["); t.Append(err_XAEelem66.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); }
//──────────────────────────────────────── 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); }
//──────────────────────────────────────── public override void XmlToConfigurationtree( XmlElement cur_X, //<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); // // // // 子 // // // XmlElement err_XAction; Exception err_Excp; if (log_Reports.Successful) { // // // actionノードを列挙 // XmlNodeList child_XNl = cur_X.ChildNodes; foreach (XmlNode xChild in child_XNl) { if (XmlNodeType.Element == xChild.NodeType) { XmlElement xAction = (XmlElement)xChild; try { XmlToConfigurationtree_C15_Elm to = this.Dic_XmlToConfigurationtree[xChild.Name]; to.XmlToConfigurationtree( xAction, cur_Cf, memoryApplication, log_Reports ); } catch (KeyNotFoundException e) { err_XAction = xAction; err_Excp = e; goto gt_Error_NotFound; } catch (Exception e) { err_Excp = e; goto gt_Error_Excp; } } } } // // // // 親へ連結 // // // if (log_Reports.Successful) { parent_Cf.List_Child.Add(cur_Cf, log_Reports); } goto gt_EndMethod; // // #region 異常系 //──────────────────────────────────────── gt_Error_NotFound: { Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl(); tmpl.SetParameter(1, err_XAction.Name, log_Reports); //ノード名 tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト tmpl.SetParameter(3, Log_RecordReportsImpl.ToText_Exception(err_Excp), log_Reports); //例外メッセージ memoryApplication.CreateErrorReport("Er:8023;", tmpl, log_Reports); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Excp: { Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl(); tmpl.SetParameter(1, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Exception(err_Excp), log_Reports); //例外メッセージ memoryApplication.CreateErrorReport("Er:8024;", tmpl, log_Reports); } 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); }
//──────────────────────────────────────── /// <summary> /// 『ユーザー定義関数設定ファイル(Fnc)』を読み取ります。 /// </summary> public void LoadFile( Expression_Node_Filepath filepath_Userfunctionconfig_Expr, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(0); log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "LoadFile", log_Reports); // // if (log_Method.CanDebug(1)) { log_Method.WriteDebug_ToConsole(" ユーザー定義関数設定ファイルの読み取り。"); } Configurationtree_Node parent_Conf = new Configurationtree_NodeImpl(NamesNode.S_CODEFILE_FUNCTIONS, filepath_Userfunctionconfig_Expr.Cur_Configuration);//Info_OpyopyoImpl.LibraryName + ":" + this.GetType().Name + ".LoadFile_Fnc" Expression_Node_String userfunctionconfig_Expr = new Expression_Node_StringImpl(null, parent_Conf); string filepathabsolute = filepath_Userfunctionconfig_Expr.Execute4_OnExpressionString( EnumHitcount.Unconstraint, log_Reports); if (!log_Reports.Successful) { goto gt_Error_Fpath; } if (!System.IO.File.Exists(filepathabsolute)) { goto gt_Error_File; } XmlDocument xDoc = new XmlDocument(); Exception err_Excp = null; try { xDoc.Load(filepathabsolute); } catch (System.IO.IOException ex) { // // エラー。 err_Excp = ex; goto gt_Error_Doc; } catch (ArgumentException ex) { // // エラー。 err_Excp = ex; goto gt_Error_Doc; } catch (Exception ex) { // // エラー。 err_Excp = ex; goto gt_Error_Doc; } XmlElement xRoot = null; if (log_Reports.Successful) { // ルート要素を取得 xRoot = xDoc.DocumentElement; // スクリプトファイルのバージョンチェック。(関数登録ファイル) ValuesAttr.Test_Codefileversion( xRoot.GetAttribute(PmNames.S_CODEFILE_VERSION.Name_Attribute), log_Reports, new Configurationtree_NodeImpl(filepathabsolute, null), NamesNode.S_CODEFILE_FUNCTIONS ); } string sErrorElementName = ""; if (log_Reports.Successful) { XmlNodeList xTopNL = xRoot.ChildNodes; foreach (XmlNode xTopNode in xTopNL) { if (XmlNodeType.Element == xTopNode.NodeType) { if (NamesNode.S_COMMON_FUNCTION == xTopNode.Name) { XmlElement x_Cur = (XmlElement)xTopNode; string sNameValue = x_Cur.GetAttribute(PmNames.S_NAME.Name_Attribute); if (log_Method.CanDebug(1)) { log_Method.WriteDebug_ToConsole(" ユーザー定義関数の追加を開始:" + sNameValue); } // XToCf XmlToConfigurationtree_C15_Elm xToCf = XmlToConfigurationtree_Collection.GetTranslatorByNodeName(NamesNode.S_COMMON_FUNCTION, log_Reports); xToCf.XmlToConfigurationtree( x_Cur, parent_Conf, this.Owner_MemoryApplication, log_Reports ); Configurationtree_Node s_Cur = null; parent_Conf.List_Child.ForEach(delegate(Configurationtree_Node s_Child, ref bool bBreak) { s_Cur = s_Child; bBreak = true; }); // SToE Expression_Node_FunctionImpl ec_CommonFunction = new Expression_Node_FunctionImpl(userfunctionconfig_Expr, s_Cur, new List <string>()); Log_TextIndented_ConfigurationtreeToExpressionImpl pg_ParsingLog = new Log_TextIndented_ConfigurationtreeToExpressionImpl(); pg_ParsingLog.BEnabled = false; ConfigurationtreeToExpression_AbstractImpl.ParseChild_InAnotherLibrary( s_Cur, ec_CommonFunction, this.Owner_MemoryApplication, pg_ParsingLog, log_Reports ); if (log_Method.CanInfo() && pg_ParsingLog.BEnabled) { log_Method.WriteInfo_ToConsole(" d_ParsingLog=" + Environment.NewLine + pg_ParsingLog.ToString()); } this.Owner_MemoryApplication.MemoryFunctions.AddFunction(sNameValue, ec_CommonFunction, log_Reports); } else { // // エラー。 sErrorElementName = xTopNode.Name; goto gt_Error_UndefinedChild; } } } } goto gt_EndMethod; // // #region 異常系 //──────────────────────────────────────── gt_Error_Fpath: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー101!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append("ユーザー定義関数設定ファイルへのパスにエラーがありました。"); s.Newline(); s.Newline(); // ヒント r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_File: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー102!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append("ユーザー定義関数設定ファイルがありません。"); s.Newline(); s.Append("file=["); s.Append(filepathabsolute); s.Append("]"); s.Newline(); s.Newline(); // ヒント r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Doc: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー103!", log_Method); StringBuilder s = new StringBuilder(); s.Append("エラー:" + err_Excp.Message); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(Log_RecordReportsImpl.ToText_Configuration(filepath_Userfunctionconfig_Expr.Cur_Configuration)); // ヒント r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_UndefinedChild: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー104!", log_Method); StringBuilder s = new StringBuilder(); s.Append("未定義の要素:" + sErrorElementName); s.Append(Environment.NewLine); s.Append(Environment.NewLine); // ヒント r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // // gt_EndMethod: log_Method.EndMethod(log_Reports); }
//──────────────────────────────────────── #endregion #region アクション //──────────────────────────────────────── /// <summary> /// X → S /// /// event要素の読取と、処理の実行。 /// </summary> /// <param select="xEvent"></param> /// <param select="fcUc"></param> public void XmlToConfigurationtree( string sName_Control, Configurationtree_Node cf_ControlConfig, XmlElement xControl,//<control>要素。子要素の読取りに利用。 MemoryApplication owner_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, "XToCf", log_Reports); // // Expression_Node_String ec_Name_Control; XmlElement err_11elm; Exception err_Excp; Configurationtree_Node cur_Cf; if (log_Reports.Successful) { // コントロール名。 ec_Name_Control = new Expression_Node_StringImpl(null, cf_ControlConfig); ec_Name_Control.AppendTextNode( sName_Control, cf_ControlConfig, log_Reports ); List <Usercontrol> list_Usercontrol = owner_MemoryApplication.MemoryForms.GetUsercontrolsByName( ec_Name_Control, true, log_Reports ); Usercontrol uct; if (list_Usercontrol.Count < 1) { // // エラー。 goto gt_Error_NotFoundFc; } else { uct = list_Usercontrol[0]; } //if (null == uct.ControlCommon.Configurationtree_Control) //{ // uct.ControlCommon.Configurationtree_Control = new Configurationtree_NodeImpl(NamesNode.S_CONTROL+"(ヌル時の代替)", cf_ControlConfig); //} // // // // 自 // // // cur_Cf = new Configurationtree_NodeImpl(NamesNode.S_CONTROL1, cf_ControlConfig); //上書きします。 uct.ControlCommon.Configurationtree_Control = cur_Cf; // // コントロール名。 uct.ControlCommon.Configurationtree_Control.Dictionary_Attribute.Add(PmNames.S_NAME.Name_Pm, sName_Control, uct.ControlCommon.Configurationtree_Control, true, log_Reports); // // // // 子 // // // { // <data>、<event>、<view>要素を列挙 XmlNodeList child_XNl = xControl.ChildNodes; foreach (XmlNode child_XNode in child_XNl) { if (XmlNodeType.Element == child_XNode.NodeType) { XmlElement child_XElm = (XmlElement)child_XNode; try { XmlToConfigurationtree_C15_Elm to = this.Dictionary_XmlToConfigurationtree_Elm[child_XElm.Name]; to.XmlToConfigurationtree( child_XElm, cur_Cf, owner_MemoryApplication, log_Reports ); } catch (ArgumentException e) { // // エラー。 err_11elm = child_XElm; err_Excp = e; goto gt_Error_UndefinedChild; } catch (Exception e) { // // エラー。 err_11elm = child_XElm; err_Excp = e; goto gt_Error_Exception03; } } } } } goto gt_EndMethod; // // #region 異常系 //──────────────────────────────────────── gt_Error_NotFoundFc: { Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl(); string sFcName = ec_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports); tmpl.SetParameter(1, sFcName, log_Reports); //コントロール名 tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Configuration(cf_ControlConfig), log_Reports); //設定位置パンくずリスト owner_MemoryApplication.CreateErrorReport("Er:8017;", tmpl, log_Reports); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_UndefinedChild: { Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl(); string sFcName = ec_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports); tmpl.SetParameter(1, NamesNode.S_CONTROL1, log_Reports); //期待するノード名 tmpl.SetParameter(2, err_11elm.Name, log_Reports); //実際のノード名 tmpl.SetParameter(3, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト tmpl.SetParameter(4, Log_RecordReportsImpl.ToText_Exception(err_Excp), log_Reports); //例外メッセージ owner_MemoryApplication.CreateErrorReport("Er:8018;", tmpl, log_Reports); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Exception03: { Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl(); tmpl.SetParameter(1, err_11elm.Name, log_Reports); //ノード名 tmpl.SetParameter(2, Log_RecordReportsImpl.ToText_Configuration(cur_Cf), log_Reports); //設定位置パンくずリスト tmpl.SetParameter(3, Log_RecordReportsImpl.ToText_Exception(err_Excp), log_Reports); //例外メッセージ owner_MemoryApplication.CreateErrorReport("Er:8019;", tmpl, log_Reports); } 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_ReportsImpl.BDebugmode_Static); log_Method.BeginMethod(Info_XmlToConf.Name_Library, this, "Parse_ChildNodes", log_Reports); // XmlElement err_XADisplay = null; Usercontrol uct = null; if (log_Reports.Successful) { Configuration_Node cf_Control = cur_Cf.GetParentByNodename( NamesNode.S_CONTROL1, EnumConfiguration.Tree, true, log_Reports); if (log_Reports.Successful) { uct = Utility_XmlToConfigurationtree_NodeImpl.GetUsercontrol( (Configurationtree_Node)cf_Control, memoryApplication, log_Reports); } } if (log_Reports.Successful) { if (uct is UsercontrolListbox) { // // リストボックスなら。 UsercontrolListbox uctLst = (UsercontrolListbox)uct; // // <a-select-record>、<a-display>要素 // XmlNodeList child_XNl = cur_X.ChildNodes; foreach (XmlNode x_childNode in child_XNl) { if (XmlNodeType.Element == x_childNode.NodeType) { XmlElement xChild = (XmlElement)x_childNode; err_XADisplay = xChild; string child_SName_Fnc = xChild.GetAttribute(PmNames.S_NAME.Name_Attribute); // // if (NamesFnc.S_VLD_DISPLAY == child_SName_Fnc)//【変更 2012-07-19】 { XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByFncName(child_SName_Fnc, log_Reports); to.XmlToConfigurationtree( xChild, cur_Cf, memoryApplication, log_Reports ); } else if (NamesFnc.S_VLD_SELECT_RECORD == child_SName_Fnc) { // Sf:Vld-SelectRecord; XmlToConfigurationtree_C15_Elm to = XmlToConfigurationtree_Collection.GetTranslatorByFncName(child_SName_Fnc, log_Reports); to.XmlToConfigurationtree( xChild, cur_Cf, memoryApplication, log_Reports ); } else { // // エラー。 goto gt_Error_UndefinedChild11; } } } } } goto gt_EndMethod; // #region 異常系 //──────────────────────────────────────── gt_Error_UndefinedChild11: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー385!", log_Method); StringBuilder s = new StringBuilder(); s.Append("<f-list-box-validation>要素に、<a-display><a-select-record>要素以外の要素"); s.Append(Environment.NewLine); s.Append("["); s.Append(err_XADisplay.Name); s.Append("]が含まれていました。"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); // ヒント r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_UndefinedClass: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー386!", log_Method); StringBuilder s = new StringBuilder(); s.Append("なんらかのエラー。"); s.Append(Environment.NewLine); // ヒント r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // gt_EndMethod: 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); }