public function validateElement($element, $matches, $schema = null, JsonPointer $path = null,
        $properties = null, $additionalProp = null)
    {
        $this->validateMinMaxConstraint($element, $schema, $path);

        foreach ($element as $i => $value) {
            $definition = $this->getProperty($properties, $i);

            // no additional properties allowed
            if (!in_array($i, $matches) && $additionalProp === false && $this->inlineSchemaProperty !== $i && !$definition) {
                $this->addError(ConstraintError::ADDITIONAL_PROPERTIES(), $path, array('property' => $i));
            }

            // additional properties defined
            if (!in_array($i, $matches) && $additionalProp && !$definition) {
                if ($additionalProp === true) {
                    $this->checkUndefined($value, null, $path, $i, in_array($i, $this->appliedDefaults));
                } else {
                    $this->checkUndefined($value, $additionalProp, $path, $i, in_array($i, $this->appliedDefaults));
                }
            }

            // property requires presence of another
            $require = $this->getProperty($definition, 'requires');
            if ($require && !$this->getProperty($element, $require)) {
                $this->addError(ConstraintError::REQUIRES(), $path, array(
                    'property' => $i,
                    'requiredProperty' => $require
                ));
            }

            $property = $this->getProperty($element, $i, $this->factory->createInstanceFor('undefined'));
            if (is_object($property)) {
                $this->validateMinMaxConstraint(!($property instanceof UndefinedConstraint) ? $property : $element, $definition, $path);
            }
        }
    }
public function validateElement($element, $matches, $schema = null, JsonPointer $path = null,
        $properties = null, $additionalProp = null)
    {
        $this->validateMinMaxConstraint($element, $schema, $path);

        foreach ($element as $i => $value) {
            $definition = $this->getProperty($properties, $i);

            // no additional properties allowed
            if (!in_array($i, $matches) && $additionalProp === false && $this->inlineSchemaProperty !== $i && !$definition) {
                $this->addError(ConstraintError::ADDITIONAL_PROPERTIES(), $path, array('property' => $i));
            }

            // additional properties defined
            if (!in_array($i, $matches) && $additionalProp && !$definition) {
                if ($additionalProp === true) {
                    $this->checkUndefined($value, null, $path, $i, in_array($i, $this->appliedDefaults));
                } else {
                    $this->checkUndefined($value, $additionalProp, $path, $i, in_array($i, $this->appliedDefaults));
                }
            }

            // property requires presence of another
            $require = $this->getProperty($definition, 'requires');
            if ($require && !$this->getProperty($element, $require)) {
                $this->addError(ConstraintError::REQUIRES(), $path, array(
                    'property' => $i,
                    'requiredProperty' => $require
                ));
            }

            $property = $this->getProperty($element, $i, $this->factory->createInstanceFor('undefined'));
            if (is_object($property)) {
                $this->validateMinMaxConstraint(!($property instanceof UndefinedConstraint) ? $property : $element, $definition, $path);
            }
        }
    }
public function validateElement ( $ element , $ matches , $ schema = null , JsonPointer $ path = null , $ properties = null , $ additionalProp = null ) { $ this -> validateMinMaxConstraint ( $ element , $ schema , $ path ) ; foreach ( $ element as $ i => $ value ) { $ definition = $ this -> getProperty ( $ properties , $ i ) ; // no additional properties allowed if ( ! in_array ( $ i , $ matches ) && $ additionalProp === false && $ this -> inlineSchemaProperty !== $ i && ! $ definition ) { $ this -> addError ( ConstraintError :: ADDITIONAL_PROPERTIES ( ) , $ path , array ( 'property' => $ i ) ) ; } // additional properties defined if ( ! in_array ( $ i , $ matches ) && $ additionalProp && ! $ definition ) { if ( $ additionalProp === true ) { $ this -> checkUndefined ( $ value , null , $ path , $ i , in_array ( $ i , $ this -> appliedDefaults ) ) ; } else { $ this -> checkUndefined ( $ value , $ additionalProp , $ path , $ i , in_array ( $ i , $ this -> appliedDefaults ) ) ; } } // property requires presence of another $ require = $ this -> getProperty ( $ definition , 'requires' ) ; if ( $ require && ! $ this -> getProperty ( $ element , $ require ) ) { $ this -> addError ( ConstraintError :: REQUIRES ( ) , $ path , array ( 'property' => $ i , 'requiredProperty' => $ require ) ) ; } $ property = $ this -> getProperty ( $ element , $ i , $ this -> factory -> createInstanceFor ( 'undefined' ) ) ; if ( is_object ( $ property ) ) { $ this -> validateMinMaxConstraint ( ! ( $ property instanceof UndefinedConstraint ) ? $ property : $ element , $ definition , $ path ) ; } } }
Validates the element properties

@param \StdClass        $element        Element to validate
@param array            $matches        Matches from patternProperties (if any)
@param \StdClass        $schema         ObjectConstraint definition
@param JsonPointer|null $path           Current test path
@param \StdClass        $properties     Properties
@param mixed            $additionalProp Additional properties
Validates the element properties