def METHOD_NAME():
    """Datamodel validator"""
    parser = argparse.ArgumentParser(
        description='DLite datamodel validator.',
    )
    parser.add_argument(
        'url',
        help='URL to datamodel to validate.  Relative file paths are allowed.'
    )
    parser.add_argument(
        '--driver', '--plugin', '-d',
        help='Storage plugin to use when loading the instance.  If `url` '
        'is a file path, the default is to infer the driver from the file '
        'extension.',
    )
    parser.add_argument(
        '--options', '-o',
        help='Semicolon-separated list of options parsed on to the dlite '
        'storage plugin.  For instance, to validate an entity in a '
        '"mongodb" storage, you may want to provide '
        '`--options="database=DBNAME;collection=dlite_coll;user=myname"`.'
    )
    parser.add_argument(
        '--id', '-i',
        help='Id of instance to load if the storage contains multiple '
        'instances.'
    )
    parser.add_argument(
        '--storage-path', '-p', action='append', default=[],
        help='URL or path to storage path to look up metadata. '
        'Only needed when validating data instances. '
        'This option can be given multiple times.'
    )
    parser.add_argument(
        '--show', '-s', action='store_true',
        help='Print the json-serialisation of the instance to standard output.'
    )
    parser.add_argument(
        '--debug', '-D', action='store_true',
        help='Whether to print traceback on error.'
    )
    args = parser.parse_args()
    for path in args.storage_path:
        dlite.storage_path.append(Path(path).resolve())
    try:
        inst = parse(args.url, args.driver, args.options, args.id)
    except Exception as exc:
        if args.debug:
            raise
        else:
            print(f'{args.url}: {exc.__class__.__name__}: {exc}')
            sys.exit(1)
    if inst.is_meta:
        check_dimensions(args.url, inst)
    print(f'{args.url}: validated')
    if (args.show):
        print(inst)