Hier ist eine JSON-Instanz, welche die Startzeit und Endzeit für ein Treffen:JSON: Gibt es ein Äquivalent von Schematron für JSON und JSON Schema? (Das heißt, eine JSON-Technologie zum Ausdruck bringt Co-Constraints)
{
"start time": "2015-02-19T08:00:00Z",
"end time": "2015-02-19T09:00:00Z"
}
ich die Struktur dieser Instanz angeben JSON mit Schema: Die Instanz muss ein Objekt mit einer "Startzeit" -Eigenschaft und einer "Endzeit" -Eigenschaft enthalten, und jede Eigenschaft muss eine Datum/Uhrzeit-formatierte Zeichenfolge sein. Siehe unten für das JSON-Schema. Was ich jedoch nicht spezifizieren kann, ist folgendes: Das Meeting muss beginnen, bevor es endet. Das heißt, der Wert von "Startzeit" muss kleiner als der Wert von "Endzeit" sein. Manche Leute nennen diese Datenabhängigkeit eine Co-Constraint. In der XML-Welt gibt es eine wundervolle, einfache Technologie, um Co-Constraints auszudrücken: Schematron. Ich frage mich, ob es eine gleichwertige Technologie in der JSON-Welt gibt? Was würden Sie verwenden deklarativ beschreiben Sie die Beziehung zwischen dem Wert von "Startzeit" und "Endzeit"? (Anmerkung: Code in einer Programmiersprache zu schreiben ist nicht was ich unter "deklarativ beschreiben die Beziehungen" verstehe. Ich suche ein deklaratives Mittel zur Beschreibung der Datenabhängigkeiten, die in JSON-Dokumenten vorhanden sind, nicht prozeduralen Code.)
{
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"meeting": {
"type": "object",
"properties": {
"start time": { "type": "string", "format": "date-time"},
"end time": { "type": "string", "format": "date-time"}
},
"required": [ "start time", "end time" ],
"additionalProperties": false
}
},
"$ref": "#/definitions/meeting"
}
Nicht genau das, wonach Sie suchen, aber Sie könnten die JSON-Daten zuerst in XML konvertieren und danach alle Schematron-Regeln darauf anwenden? Ein Tool, das beides unterstützt, wäre [XML ValidatorBuddy] (http://www.xml-buddy.com) – Clemens