public static SetItemEffectTemplate Parse(int id, IDataProperty property)
        {
            var t = new SetItemEffectTemplate {
                ID = id
            };

            property.Resolve(p =>
            {
                t.IncSTR   = p.Resolve <short>("incSTR") ?? 0;
                t.IncDEX   = p.Resolve <short>("incDEX") ?? 0;
                t.IncINT   = p.Resolve <short>("incINT") ?? 0;
                t.IncLUK   = p.Resolve <short>("incLUK") ?? 0;
                t.IncMaxHP = p.Resolve <short>("incMHP") ?? 0;
                t.IncMaxMP = p.Resolve <short>("incMMP") ?? 0;
                t.IncPAD   = p.Resolve <short>("incPAD") ?? 0;
                t.IncMAD   = p.Resolve <short>("incMAD") ?? 0;
                t.IncPDD   = p.Resolve <short>("incPDD") ?? 0;
                t.IncMDD   = p.Resolve <short>("incMDD") ?? 0;
                t.IncACC   = p.Resolve <short>("incACC") ?? 0;
                t.IncEVA   = p.Resolve <short>("incEVA") ?? 0;
                t.IncCraft = p.Resolve <short>("incCraft") ?? 0;
                t.IncSpeed = p.Resolve <short>("incSpeed") ?? 0;
                t.IncJump  = p.Resolve <short>("incJump") ?? 0;
            });
            return(t);
        }
        public static SetItemInfoTemplate Parse(int id, IDataProperty property)
        {
            var t = new SetItemInfoTemplate {
                ID = id
            };

            property.Resolve(p =>
            {
                t.SetCompleteCount = p.Resolve <int>("completeCount") ?? 0;

                t.ItemTemplateID = p.Resolve("itemID")?.Children
                                   .Select(c => c.Resolve <int>() ?? 0)
                                   .ToList();
                t.Effect = p.Resolve("Effect")?.Children
                           .ToDictionary(
                    c => Convert.ToInt32(c.Name),
                    c => SetItemEffectTemplate.Parse(Convert.ToInt32(c.Name), c)
                    );
            });
            return(t);
        }