docs: def schema_val(self, messages=None):
          "Perform validation with processed YAML and Schema"
          self._ymlproc = YAMLProcessor(self._ymlfile)
          self._schemaproc = SchemaProcessor(self._schemafile)
          valid = True
  
          log.debug("BEGIN: Schema-based validation for YAML '%s' with schema '%s'", self._ymlfile, self._schemafile)
  
          # Make sure the yml and schema have been loaded
          if self._ymlproc.loaded and self._schemaproc.loaded:
              # Load all of the yaml documents. Could be more than one in the same YAML file.
              for docnum, data in enumerate(yaml.load_all(self._ymlproc.data)):
  
                  # Since YAML allows integer keys but JSON does not, we need to first
                  # dump the data as a JSON string to encode all of the potential integers
                  # as strings, and then read it back out into the YAML format. Kind of
                  # a clunky workaround but it works as expected.
                  data = yaml.load(json.dumps(data))
  
                  # Now we want to get a validator ready
                  v = jsonschema.Draft4Validator(self._schemaproc.data)
  
                  # Loop through the errors (if any) and set valid = False if any are found
                  # Display the error message
                  for error in sorted(v.iter_errors(data)):
                      msg = "Schema-based validation failed for YAML file '" + self._ymlfile + "'"
                      self.ehandler.process(docnum, self._ymlproc.doclines, error, messages)
                      valid = False
  
                  if not valid:
                      log.error(msg)
  
          elif not self._ymlproc.loaded:
              raise util.YAMLError("YAML must be loaded in order to validate.")
          elif not self._schemaproc.loaded:
              raise jsonschema.SchemaError("Schema must be loaded in order to validate.")
  
          log.debug("END: Schema-based validation complete for '%s'", self._ymlfile)
          return valid