Placing the definitions of "ValidationException" and "SchemaException" inside the Validator file is no good for autoloading through Composer.
If one has not loaded instantiated the Validator class, Composer will believe it hasn't loaded the class "ValidationException" and it will attempt to find it by file. Ka boom.
Suggestion: Place the exception classes into their own files.
I can do a pull request if you want.