def _validate_item(self, validator, data_item, position, includes):
errors = []<EOL>if data_item is None and validator.is_optional and validator.can_be_none:<EOL><INDENT>return errors<EOL><DEDENT>errors += self._validate_primitive(validator, data_item, position)<EOL>if errors:<EOL><INDENT>return errors<EOL><DEDENT>if isinstance(validator, val.Include):<EOL><INDENT>errors += self._validate_include(validator, data_item,<EOL>includes, position)<EOL><DEDENT>elif isinstance(validator, (val.Map, val.List)):<EOL><INDENT>errors += self._validate_map_list(validator, data_item,<EOL>includes, position)<EOL><DEDENT>elif isinstance(validator, val.Any):<EOL><INDENT>errors += self._validate_any(validator, data_item,<EOL>includes, position)<EOL><DEDENT>return errors<EOL>
Validates a single data item against validator.

Returns an array of errors.