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