errorContainer($context->maxErrors()); if ($keys) { foreach ($iterator as $key) { $context->pushDataPath($key); $error = $schema->validate($context); $context->popDataPath(); if ($error) { if (!$container->isFull()) { $container->add($error); } } else { $keys[] = $key; } } } else { foreach ($iterator as $key) { $context->pushDataPath($key); $error = $schema->validate($context); $context->popDataPath(); if ($error && $container->add($error)->isFull()) { break; } } } return $container; } /** * @param Schema $parentSchema * @param Schema $schema * @param ValidationContext $context * @param iterable $iterator * @param string $keyword * @param string $message * @param array $args * @param ArrayObject|null $visited_keys * @return ValidationError|null */ protected function validateIterableData( Schema $parentSchema, Schema $schema, ValidationContext $context, iterable $iterator, string $keyword, string $message, array $args = [], ?ArrayObject $visited_keys = null ): ?ValidationError { $errors = $this->iterateAndValidate($schema, $context, $iterator, $visited_keys); if ($errors->isEmpty()) { return null; } return $this->error($parentSchema, $context, $keyword, $message, $args, $errors); } }