/// <summary> /// タグ属性ノードを読み込む /// </summary> /// <param name="attrElement">タグ属性エレメント</param> private KagTagAttr readTagAttrNode(XmlElement attrElement) { KagTagAttr attr = new KagTagAttr(); foreach (XmlElement node in attrElement.ChildNodes) { switch (node.Name) { case "attrname": attr.Name = node.InnerText; break; case "attrshortinfo": attr.ShortInfo = node.InnerText; break; case "attrrequired": attr.SetRequiredFormString(node.InnerText); break; case "attrformat": //格納する(リストに載っていないものはこれを使用する) attr.Format = node.InnerText; break; case "attrinfo": attr.SetInfo(node.InnerText); break; } } return(attr); }
/// <summary> /// タグノードを読み込む /// </summary> /// <param name="tagElement">タグエレメント</param> private KagTag readTagNode(XmlElement tagElement, bool kagex) { KagTag tag = new KagTag(kagex); foreach (XmlElement node in tagElement.ChildNodes) { switch (node.Name) { case "tagname": tag.Name = node.InnerText; break; case "group": tag.Group = node.InnerText; break; case "tagshortinfo": tag.ShortInfo = node.InnerText; break; case "tagremarks": tag.SetRemarks(node.InnerText); break; case "attr": KagTagAttr attr = readTagAttrNode(node); if (attr == null || attr.Name == "" || tag.AttrTable.ContainsKey(attr.Name)) { //取得できなかった時、またはすでに登録済みの場合は登録しない break; } tag.AttrTable.Add(attr.Name, attr); m_attrNameList.Add(tag.Name + "\t" + attr.Name + "\t" + attr.Format); break; } } //属性値フォーマットを改めてセットする foreach (string attrName in tag.AttrTable.Keys) { string format = getAttrValueFormatFromTable(tag.Name, attrName); if (format != "") { //フォーマットテーブルにのっているときはそれを使用する tag.AttrTable[attrName].Format = format; } } return(tag); }
/// <summary> /// コンストラクタ /// </summary> public KagTag(bool kagex) { //cond属性の初期化 m_condAttr.Name = "cond"; m_condAttr.ShortInfo = "TJS式評価"; m_condAttr.Info = "式を評価した結果が真の時のみにそのタグが実行されます"; m_condAttr.Required = false; m_condAttr.Format = "TJS式"; if (kagex) { m_delayrunAttr = new KagTagAttr(); m_delayrunAttr.Name = "delayrun"; m_delayrunAttr.ShortInfo = "遅延実行パラメーター指定"; m_delayrunAttr.Info = "遅延実行を行うパラメーターを指定します(数値を指定すると指定したミリ秒後に実行され、文字列を指定するとBGM/SEの該当するラベルのタイミングで実行されます)。"; m_delayrunAttr.Required = false; m_delayrunAttr.Format = "ミリ秒時間;vl1;vl2;vl3;任意文字列"; } }