Git Product home page Git Product logo

Comments (3)

natesilva avatar natesilva commented on June 17, 2024

In the first part of your schema, oneOf should not be a child of properties. That’s saying that each instance must have a property called oneOf, which isn’t what you intended.

Make your schema look like this and it will work:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "Entity" : {
            "type" : "object",
            "oneOf" : [
                { "$ref": "#/definitions/ABNEntity" },
                { "$ref": "#/definitions/USIEntity" }
            ]
        }
    },
    "required": ["Entity"],
    "definitions" : {
        "ABNEntity" : {
            "properties": {
                "ABN": { "type": "string" },
                "MainName": { "type": "string" }
            },
            "required" : ["ABN", "MainName"]
        },
        "USIEntity" : {
            "properties": {
                "USI": { "type": "string" },
                "ProductName": { "type": "string" }
            },
            "required" : ["USI", "ProductName"]
        }
    }
}

from jayschema.

natesilva avatar natesilva commented on June 17, 2024

By the way, one way to test this without writing a lot of code is to install globally: [sudo] npm install -g jayschema. This gives you a jayschema command-line utility. (I need to document this…)

You can call it with one argument and it will check that your schema is valid:

$ jayschema myschema.json

Or you can call it with two arguments and it will validate an instance against your schema:

$ jayschema myinstance.json myschema.json

Regards,
Nate

from jayschema.

ml019 avatar ml019 commented on June 17, 2024

Works like a bought one. Thanks for the prompt response and advice on testing.

Regards
Michael

from jayschema.

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.