Class DefaultSchemaResolver

java.lang.Object
org.incenp.linkml.schema.DefaultSchemaResolver
All Implemented Interfaces:
ISchemaResolver

public class DefaultSchemaResolver extends Object implements ISchemaResolver
The schema resolver that implements the default behaviour for resolving imports declarations within a LinkML schema.

If the name to resolve contains a colon, this resolver assumes it is a relative file name, and attempts to find it on the local file system. Otherwise, it assumes the name is a URI pointing to a remote resource.

Of note, this resolver automatically and silently redirects the https://w3id.org/linkml/types.yaml schema name to a version that is embedded with the LinkML-Java runtime. That schema is expected to be imported in virtually all LinkML schemas, so we don’t want to have to always fetch it from a remote server.

  • Constructor Details

    • DefaultSchemaResolver

      public DefaultSchemaResolver()
  • Method Details

    • resolve

      public ISchemaSource resolve(String name, String base) throws InvalidSchemaException
      Description copied from interface: ISchemaResolver
      Resolves the given schema name into a schema source object.
      Specified by:
      resolve in interface ISchemaResolver
      Parameters:
      name - The name of the schema to resolve. Of note, if the name was originally provided as a Curie, this method will receive the expanded form of the original name.
      base - The base location from which to resolve relative names.
      Returns:
      A ISchemaSource object that can be used to access the content of the schema.
      Throws:
      InvalidSchemaException - If the name cannot be resolved into a schema source.