schema-component

Language-agnostic schema package manager for better data models, built with component.

Schema

Language-agnostic schema package manager for better data models, built with component.

  • write reusable JSON schemas to define data models
  • no registry publishing or account required, uses github repositories
  • automatic versioning using git commit ids.

With node.js previously installed:

npm install -g schema-component

To generate a new schema project:

$ schema create user
 
  create : user
  create : user/Readme.md
  create : user/component.json
  create : user/.gitignore
  create : user/index.json
 
$

To install any schema:

component install <org/repo>

To build a ./build/schema.json file from components:

schema build

To build it as a standalone javascript file:

schema build -s

To use use in the component build process:

var schema = require('schema-component');
var Builder = require('component-builder');
 
var builder = new Builder;
builder.use(schema);
builder.build(function(errout){
  console.log(out.schema);
});
  • http://www.w3.org/TR/rdf-schema/
  • http://www.w3.org/TR/json-ld-api/
  • name
  • type
  • description
  • title
  • image
  • url
  • value

The value associated with the value key must be either a string, a number, true, false or null.

The value associated with the type key must be a term, a compact IRI, an absolute IRI, a relative IRI, or null.

schema validate ./data.json --against ./schema.json

Maybe should work similar to brew tap x, so you can bundle schemas into single repos.

  • MIT
  • Surveying icon by Luis Prado from The Noun Project