public override ErrorList Validate()
            {
                var result = new ErrorList();

                result.AddRange(base.Validate());

                if (Name != null)
                {
                    result.AddRange(Name.Validate());
                }
                if (HeaderElement != null)
                {
                    result.AddRange(HeaderElement.Validate());
                }
                if (TextElement != null)
                {
                    result.AddRange(TextElement.Validate());
                }
                if (Subject != null)
                {
                    result.AddRange(Subject.Validate());
                }
                if (Question != null)
                {
                    Question.ForEach(elem => result.AddRange(elem.Validate()));
                }
                if (Group != null)
                {
                    Group.ForEach(elem => result.AddRange(elem.Validate()));
                }

                return(result);
            }