code: public synchronized Schema create(URI id, String refFragmentPathDelimiters) {
  
          if (!schemas.containsKey(id)) {
  
              URI baseId = removeFragment(id);
              JsonNode baseContent = contentResolver.resolve(baseId);
              Schema baseSchema = new Schema(baseId, baseContent, null);
  
              if (id.toString().contains("#")) {
                  JsonNode childContent = fragmentResolver.resolve(baseContent, '#' + id.getFragment(), refFragmentPathDelimiters);
                  schemas.put(id, new Schema(id, childContent, baseSchema));
              } else {
                  schemas.put(id, baseSchema);
              }
          }
  
          return schemas.get(id);
      }
docs: Create or look up a new schema which has the given ID and read the
  contents of the given ID as a URL. If a schema with the given ID is
  already known, then a reference to the original schema will be returned.
  
  @param id
  the id of the schema being created
  @param refFragmentPathDelimiters A string containing any characters
  that should act as path delimiters when resolving $ref fragments.
  @return a schema object containing the contents of the given path