code: def create_validator(schema_filename=None, schema_dir=None):
      
      schema_filename = schema_filename or DEFAULT_CATALOG_SCHEMA_FILENAME
      schema_dir = schema_dir or ABSOLUTE_SCHEMA_DIR
      schema_path = os.path.join(schema_dir, schema_filename)
      schema = readers.read_json(schema_path)
  
      # Según https://github.com/Julian/jsonschema/issues/98
      # Permite resolver referencias locales a otros esquemas.
      if platform.system() == 'Windows':
          base_uri = "file:///" + schema_path.replace("\\", "/")
      else:
          base_uri = "file://" + schema_path
      resolver = jsonschema.RefResolver(base_uri=base_uri, referrer=schema)
  
      format_checker = jsonschema.FormatChecker()
  
      validator = jsonschema.Draft4Validator(
          schema=schema, resolver=resolver, format_checker=format_checker)
  
      return validator
docs: Crea el validador necesario para inicializar un objeto DataJson.
  
      Para poder resolver referencias inter-esquemas, un Validador requiere
      que se especifique un RefResolver (Resolvedor de Referencias) con el
      directorio base (absoluto) y el archivo desde el que se referencia el
      directorio.
  
      Para poder validar formatos, un Validador requiere que se provea
      explícitamente un FormatChecker. Actualmente se usa el default de la
      librería, jsonschema.FormatChecker().
  
      Args:
          schema_filename (str): Nombre del archivo que contiene el esquema
              validador "maestro".
          schema_dir (str): Directorio (absoluto) donde se encuentra el
              esquema validador maestro y sus referencias, de tenerlas.
  
      Returns:
          Draft4Validator: Un validador de JSONSchema Draft #4. El validador
              se crea con un RefResolver que resuelve referencias de
              `schema_filename` dentro de `schema_dir`.