/** * Recursively normalizes a given schema and validates its syntax. * * @param stdClass $schema * @param Context $context * * @return stdClass */ public function parseSchema(stdClass $schema, Context $context) { if ($this->isProcessed($schema, $this->parsedSchemas)) { return $schema; } $version = $this->getVersion($schema); $constraints = $this->registry->getConstraints($version); $constraints = $this->filterConstraintsForSchema($constraints, $schema); foreach ($constraints as $constraint) { $constraint->normalize($schema, $context, $this); } return $schema; }