Skip to content

redmer/yarrrml-json-schema

Repository files navigation

yarrrml-json-schema

A JSON Schema to let code editors (e.g., VS Code) syntax-check YARRRML files.

YARRRML (pronounced /jɑɹməl/) is a human readable text-based representation for declarative generation rules. It is a subset of [YAML], a widely used data serialization language designed to be human-friendly.

Usage

There are two ways to use this JSON Schema with the aforemention extension:

  • Add to Visual Studio Code's settings.json:

      "yaml.schemas": {
      	"https://rdmr.eu/yarrrml-json-schema/yarrrml-json-schema.json": "*.rml.yaml"
      }

    This requires you to name your YARRRML mappings with a .rml.yaml file extension.

  • Add to the top of a YAML file:

    # yaml-language-server: $schema=https://rdmr.eu/yarrrml-json-schema/yarrrml-json-schema.json

Remarks

Contributing

  1. Format your code with prettier (npm format).
  2. Check if your additions improve the reporting in your editor.
  3. Check if no extra validation errors occur (npm test).

Code conventions

  • Smurfs1N: either a single Smurf or an array of Smurfs (oneOf/[$ref, items])
  • SmurfOpt: either an object or some inline value for Smurf (oneOf/[SmurfObj, SmurfAbbr])
  • SmurfObj: Smurf as an object
  • SmurfAbbr: Smurf as an inlined value
  "Subject1N": {
    "oneOf": [
      { "$ref": "#/definitions/SubjectOpt" },
      { "type": "array", "items": { "$ref": "#/definitions/SubjectOpt" } }
    ]
  },
  "SubjectOpt": {
    "oneOf": [
      { "$ref": "#/definitions/SubjectAbbr" },
      { "$ref": "#/definitions/SubjectObj" }
    ]
  },
  "SubjectAbbr": { "type": "string" },
  "SubjectObj": {
    "type": "object",
    "properties": {
      "value": { "type": "string" },
      "targets": { "$ref": "#/definitions/Targets1N" }
    },
    "patternProperties": {
      "^(t|target)$": { "$ref": "#/definitions/SubjectCx/properties/targets" },
      "^(v)$": { "$ref": "#/definitions/SubjectCx/properties/value" }
    }
  }

About

A JSON Schema to let editors (e.g., VS Code) syntax-check YARRRML files

Topics

Resources

License

Stars

Watchers

Forks