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

            result.AddRange(ValidateRules());

            if (Extension != null)
            {
                Extension.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (LanguageElement != null)
            {
                result.AddRange(LanguageElement.Validate());
            }
            if (Text != null)
            {
                result.AddRange(Text.Validate());
            }
            if (Contained != null)
            {
                Contained.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (LocalIdElement != null)
            {
                result.AddRange(LocalIdElement.Validate());
            }

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

            result.AddRange(base.Validate());

            if (ContentTypeElement != null)
            {
                result.AddRange(ContentTypeElement.Validate());
            }
            if (LanguageElement != null)
            {
                result.AddRange(LanguageElement.Validate());
            }
            if (DataElement != null)
            {
                result.AddRange(DataElement.Validate());
            }
            if (UrlElement != null)
            {
                result.AddRange(UrlElement.Validate());
            }
            if (SizeElement != null)
            {
                result.AddRange(SizeElement.Validate());
            }
            if (HashElement != null)
            {
                result.AddRange(HashElement.Validate());
            }
            if (TitleElement != null)
            {
                result.AddRange(TitleElement.Validate());
            }

            return(result);
        }