def validate(self, value, attribute_filter=None, minified=False):
if not self._required and value is None:<EOL><INDENT>return None<EOL><DEDENT>elif self._required and value is None:<EOL><INDENT>raise exception.RequiredAttributeError()<EOL><DEDENT>_validated_value = self.__class__(<EOL>element_template=self._element_template,<EOL>min_length=self._min_length,<EOL>max_length=self._max_length<EOL>)<EOL>if not isinstance(value, (list, tuple)):<EOL><INDENT>raise TypeError(value)<EOL><DEDENT>for array_element in value:<EOL><INDENT>if isinstance(self._element_template, DataCollection):<EOL><INDENT>validated_array_element = self._element_template.validate(array_element, attribute_filter, minified)<EOL><DEDENT>else:<EOL><INDENT>validated_array_element = self._element_template.validate(array_element)<EOL><DEDENT>_validated_value.append(validated_array_element)<EOL><DEDENT>if self._min_length is not None and len(_validated_value) < self._min_length:<EOL><INDENT>raise exception.LessThanMinimumError(value, self._min_length)<EOL><DEDENT>if self._max_length is not None and len(_validated_value) > self._max_length:<EOL><INDENT>raise exception.MoreThanMaximumError(value, self._max_length)<EOL><DEDENT>return _validated_value<EOL>
:param value:
:type value: list | None
:param attribute_filter:
:type attribute_filter: prestans.parser.AttributeFilter
:param minified:
:type minified: bool
:return: