JSON Schema
JSON Schema beschreibt die Struktur von JSON Dokumenten, analog zu XSD für XML. Das Schema hat selbst die Form eines JSON Objekts. Dabei haben die Werte zu den folgenden Namen eine festgelegte Bedeutung:
id - URI des Schemas
$schema - URIs des Schemas dieses Schemas
extends - gibt ein Schema an, das erweitert wird
title - Titel
description - natürlichsprachige Beschreibung
type - Typ "string", "number", "integer", "boolean", "object", "array", "null" oder "any"
required - legt fest, ob das Objekt erforderlich oder optional ist
enum - Array mit erlaubten Werten
default - Standardwert, wenn kein anderer angegeben ist
format - Format, u.a. "date-time", "date", "time", "regex", "phone", "uri", "email"
pattern - regulärer Ausdruck, auf den eine Zeichenkette passen muss
minLength, maxLength - beschränkt die Länge einer Zeichenkette
minimum, maximum, exclusiveMinimum, exclusiveMaximum - Grenzen für eine Zahl
divisibleBy - muss ein Teiler der Zahl sein
properties - ein Objekt, dessen Name-Wert-Paare die Struktur eines Objekts festlegen
items - ein Objekt, dessen Name-Wert-Paare die Struktur der Elemente eines Arrays festlegen (auch ein Array von Objekten ist erlaubt, wenn die Elemente mehrere verschiedene Strukturen haben können)
minItems, maxItems - legt fest, wie viele Elemente in einem Array erlaubt sind
uniqueItems - bestimmt, ob Duplikate in einem Array enthalten sein dürfen
Quelle
http://tools.ietf.org/html/draft-zyp-json-schema-03
id - URI des Schemas
$schema - URIs des Schemas dieses Schemas
extends - gibt ein Schema an, das erweitert wird
title - Titel
description - natürlichsprachige Beschreibung
type - Typ "string", "number", "integer", "boolean", "object", "array", "null" oder "any"
required - legt fest, ob das Objekt erforderlich oder optional ist
enum - Array mit erlaubten Werten
default - Standardwert, wenn kein anderer angegeben ist
format - Format, u.a. "date-time", "date", "time", "regex", "phone", "uri", "email"
pattern - regulärer Ausdruck, auf den eine Zeichenkette passen muss
minLength, maxLength - beschränkt die Länge einer Zeichenkette
minimum, maximum, exclusiveMinimum, exclusiveMaximum - Grenzen für eine Zahl
divisibleBy - muss ein Teiler der Zahl sein
properties - ein Objekt, dessen Name-Wert-Paare die Struktur eines Objekts festlegen
items - ein Objekt, dessen Name-Wert-Paare die Struktur der Elemente eines Arrays festlegen (auch ein Array von Objekten ist erlaubt, wenn die Elemente mehrere verschiedene Strukturen haben können)
minItems, maxItems - legt fest, wie viele Elemente in einem Array erlaubt sind
uniqueItems - bestimmt, ob Duplikate in einem Array enthalten sein dürfen
Quelle
http://tools.ietf.org/html/draft-zyp-json-schema-03