public synchronized Schema create(URI id, String refFragmentPathDelimiters) {

        URI normalizedId = id.normalize();

        if (!schemas.containsKey(normalizedId)) {

            URI baseId = removeFragment(id).normalize();
            if (!schemas.containsKey(baseId)) {
                logger.debug("Reading schema: " + baseId);
                final JsonNode baseContent = contentResolver.resolve(baseId);
                schemas.put(baseId, new Schema(baseId, baseContent, null));
            }

            final Schema baseSchema = schemas.get(baseId);
            if (normalizedId.toString().contains("#")) {
                JsonNode childContent = fragmentResolver.resolve(baseSchema.getContent(), '#' + id.getFragment(), refFragmentPathDelimiters);
                schemas.put(normalizedId, new Schema(normalizedId, childContent, baseSchema));
            }
        }

        return schemas.get(normalizedId);
    }
@Test
    public void createWithRelativeSegmentsInPath() throws URISyntaxException {

        //Get to the directory of the module jsonschema2pojo-core
        Path basePath = Paths.get(getClass().getResource("/schema/person.json").toURI()).getParent().getParent().getParent().getParent();

        //Now load the resource with a relative path segment
        File relativePath = new File(Paths.get(basePath.toString(),"target", "..", "src", "test", "resources", "schema", "person.json").toString());
        //Now load the resource with the same path minus the relative segment
        File nonRelativePath = new File(Paths.get(basePath.toString(), "src", "test", "resources", "schema", "person.json").toString());

        SchemaStore schemaStore = new SchemaStore();

        Schema schemaWithRelativeSegment = schemaStore.create(relativePath.toURI(), "#/.");
        Schema schemaWithoutRelativeSegment = schemaStore.create(nonRelativePath.toURI(), "#/.");

        //Both schema objects should have the same Id value since their URI's point to the same resource
        assertThat(schemaWithoutRelativeSegment.getId(), is(schemaWithRelativeSegment.getId()));
        assertThat(schemaWithoutRelativeSegment, sameInstance(schemaWithRelativeSegment));
    }