GithubHelp home page GithubHelp logo

Comments (3)

stevehu avatar stevehu commented on May 27, 2024

A lot of issues have been resolved in the recent updates. I encourage you to try the 1.3.3 version instead.

from json-schema-validator.

justin-tay avatar justin-tay commented on May 27, 2024

You are getting the error Reference abcuri:ref.json/#id cannot be resolved because your reference is incorrect and there is nothing at that reference.

Given how you have defined your schema in ref.json.

The reference abcuri:ref.json/#id should be abcuri:ref.json/#/$defs/id.

The reference abcuri:ref.json/#date-time should be abcuri:ref.json/#/$defs/date-time.

from json-schema-validator.

justin-tay avatar justin-tay commented on May 27, 2024

Closing as given the correct $ref this cannot be reproduced.

package com.networknt.schema;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import org.junit.jupiter.api.Test;

import com.networknt.schema.SpecVersion.VersionFlag;

public class Issue978Test {
    @Test
    void test() {
        SchemaValidatorsConfig config = new SchemaValidatorsConfig();
        config.setFormatAssertionsEnabled(true);
        config.setPathType(PathType.JSON_POINTER);
        String mainSchemaData = "{\r\n"
                + "                  \"$schema\": \"http://json-schema.org/draft/2019-09/schema\",\r\n"
                + "                  \"additionalProperties\": false,\r\n"
                + "                  \"type\": \"object\",\r\n"
                + "                                \r\n"
                + "                  \"properties\": {\r\n"
                + "                    \"id\": {\r\n"
                + "                      \"$ref\": \"abcuri:ref.json#/$defs/id\"\r\n"
                + "                                \r\n"
                + "                    },\r\n"
                + "                    \"effectiveTime\": {\r\n"
                + "                      \"$ref\": \"abcuri:ref.json#/$defs/date-time\"\r\n"
                + "                                \r\n"
                + "                    },\r\n"
                + "                    \"idType\": {\r\n"
                + "                      \"type\": \"string\",\r\n"
                + "                                \r\n"
                + "                      \"enum\": [\r\n"
                + "                        \"Internal\",\r\n"
                + "                        \"External\"\r\n"
                + "                      ]\r\n"
                + "                    }\r\n"
                + "                  }\r\n"
                + "                }";
        String refSchemaData = "{\r\n"
                + "                  \"$schema\": \"http://json-schema.org/draft/2019-09/schema\",\r\n"
                + "                  \"additionalProperties\": false,\r\n"
                + "                  \"type\": \"object\",\r\n"
                + "                  \"$defs\": {\r\n"
                + "                    \"id\": {\r\n"
                + "                                \r\n"
                + "                      \"type\": \"string\",\r\n"
                + "                      \"minLength\": 5,\r\n"
                + "                      \"maxLength\": 100\r\n"
                + "                                \r\n"
                + "                    },\r\n"
                + "                    \"date-time\": {\r\n"
                + "                      \"type\": \"string\",\r\n"
                + "                      \"pattern\": \"date-time\"\r\n"
                + "                    }\r\n"
                + "                  }\r\n"
                + "                }";
        Map<String, String> schemas = new HashMap<>();
        schemas.put("abcuri:main.json", mainSchemaData);
        schemas.put("abcuri:ref.json", refSchemaData);
        
        JsonSchema schema = JsonSchemaFactory
                .getInstance(VersionFlag.V201909,
                        builder -> builder.schemaLoaders(schemaLoaders -> schemaLoaders.schemas(schemas)))
                .getSchema(SchemaLocation.of("abcuri:main.json"), config);
        
        String inputData = "{\"id\":\"abcde\",\"idType\":\"Explicit\",\"effectiveTime\":\"2022-02-02T13:00:00Z\"}";
        Set<ValidationMessage> messages = schema.validate(inputData, InputFormat.JSON);
        System.out.println(messages);
    }
}

from json-schema-validator.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.