Oto przykład JSON pokazujący czas rozpoczęcia i czas zakończenia spotkania:JSON: Czy istnieje odpowiednik Schematron dla JSON i JSON Schema? (Oznacza to, że technologia JSON wyrazić współpracowników ograniczeń)
{
"start time": "2015-02-19T08:00:00Z",
"end time": "2015-02-19T09:00:00Z"
}
mogę określić strukturę tej instancji przy użyciu JSON Schemat: instancja musi zawierać obiekt z właściwością "czas rozpoczęcia" i właściwością "czas zakończenia", a każda właściwość musi być ciągiem sformatowanym w formacie daty i czasu. Zobacz poniżej schemat JSON. Ale nie mogę tego określić: spotkanie musi się rozpocząć, zanim się skończy. Oznacza to, że wartość "czasu rozpoczęcia" musi być mniejsza niż wartość "czasu zakończenia". Niektórzy nazywają tę zależność danych wzajemnym ograniczeniem. W świecie XML istnieje wspaniała, prosta technologia do wyrażania współzależności: Schematron. Zastanawiam się, czy istnieje odpowiednik technologii w świecie JSON? Co byś użył do deklaracji deklaratywnie opisującej związek między wartością "czasu rozpoczęcia" i "czasu zakończenia"? (Uwaga: pisanie kodu w jakimś języku programowania to , a nie co mam na myśli przez "deklaratywne opisanie relacji" .Poszukuję deklaratywnego sposobu opisywania zależności danych, które są obecne w dokumentach JSON, a nie kodu proceduralnego.)
{
"$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"
}
Nie dokładnie to, czego szukasz, ale możesz przekonwertować dane JSON najpierw na XML, a następnie zastosować później zasady Schematron? Narzędziem obsługującym oba typy byłoby [XML ValidatorBuddy] (http://www.xml-buddy.com) – Clemens