Schema Language
A method of expressing the contents of a schema that is a combination of syntax (usually a unique syntax for a given schema language) with some semantics particular to writing schema.
Deliverable
Task 43 has been evaluating different Schema Languages based on their features and the needs of the community. The comparisons table is here - a fuller report with better descriptions of the features and why they're relevant is pending.
Examples of Schema Languages include:
JSONSchema
XMLSchema (XSD)
RDFSchema (RDFS)
AvroSchema,
English*,
German*,
and many others…
Some examples of schema in different languages
Let's take data in JSON format:
{
"productId": 1,
"productName": "A green door",
"price": 12.50,
"tags": [ "home", "green" ]
}
While generally straightforward, the example leaves some open questions. Here are just a few of them: What is productId? Is productName required? Can the price be zero (0)? Are all of the tags string values?
JSON Schema is a Schema language that is a proposed IETF standard for how to answer such questions for data. A schema for the example above can be:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.com/product.schema.json",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",
"properties": {
"productId": {
"description": "The unique identifier for a product",
"type": "integer"
},
"productName": { "description": "Name of the product", "type": "string" },
"price": {
"description": "The price of the product",
"type": "number",
"exclusiveMinimum": 0
},
"tags": {
"description": "Tags for the product",
"type": "array",
"items": { "type": "string" },
"minItems": 1,
"uniqueItems": true
}
},
"required": ["productId", "productName", "price"]
}
Last updated