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.
- YARRRML
- VS Code support for JSON schema
- VS Code support of JSON schemas for YAML files
- VS Code YAML extension
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.yamlfile extension. -
Add to the top of a YAML file:
# yaml-language-server: $schema=https://rdmr.eu/yarrrml-json-schema/yarrrml-json-schema.json
- Shortcut keys (e.g.,
m,po,iv) validate, but are not suggested in VS Code. - Supports:
- Base specification YARRRML
- Extension HTTP Request Access
- Extension Dynamic Targets
- Extension Incremental RML generation using YARRRML (LDES)
- Format your code with
prettier(npm format). - Check if your additions improve the reporting in your editor.
- Check if no extra validation errors occur (
npm test).
- 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" }
}
}