2015-02-20 12 views
8
İşte

bir toplantı için başlangıç ​​ve bitiş zamanı gösteren bir JSON örneğidir: Ben JSON kullanarak o örneğe yapısını belirtebilirsinizJSON: JSON ve JSON Schema için bir Schematron eşdeğeri var mı? (Yani, bir JSON teknoloji işbirliği kısıtlamaları ifade etmek)

{ 
    "start time": "2015-02-19T08:00:00Z", 
    "end time": "2015-02-19T09:00:00Z" 
} 

Şema: örnek, bir "başlangıç ​​zamanı" özelliğine ve "bitiş saati" özelliğine sahip bir nesne içermeli ve her özellik, bir tarih-zaman biçimlendirilmiş dizesi olmalıdır. JSON şeması için aşağıya bakın. Ancak, belirleyemediğim şey şudur: toplantı bitmeden başlamalıdır. Yani, "başlangıç ​​zamanı" değeri "bitiş zamanı" değerinden daha az olmalıdır. Bazı insanlar bu veri bağımlılığını ortak bir kısıtlama olarak adlandırmaktadır. XML dünyasında ortak kısıtlamaların ifade edilmesi için harika, basit bir teknoloji var: Schematron. JSON dünyasında eşdeğer bir teknoloji olup olmadığını merak ediyorum? nota için nota ne kullanırsanız, "başlangıç ​​zamanı" ile "bitiş zamanı" arasındaki ilişkiyi açıklar mısınız? (Not: bazı programlama dillerinde kod yazmak değil, "ilişkileri açıklayıcı olarak tanımlayın" derken kastediyorum. Prosedür kodunu değil, JSON belgelerinde bulunan veri bağımlılıklarını tanımlamak için bir bildirim aracı arıyorum.)

{ 
    "$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" 
} 
+1

Tam olarak aradığınız şey değil, JSON verilerini önce XML'ye dönüştürebilir ve daha sonra herhangi bir Schematron kuralını uygulayabilirsiniz. Her ikisini de destekleyen bir araç [XML ValidatorBuddy] (http://www.xml-buddy.com) – Clemens

cevap

-1

Web sitesi, json-schema.org web sitesinde oldukça az sayıda uygulamayı listeler.

+0

Bu sayfadaki hiçbir şema schematron hakkında soruyla alakalı değildir. – bazzargh

1

Maalesef cevap hayır. JSON Şeması, yapıyı ve izin verilen değerleri doğrulamanıza izin verir, ancak değerler kümesini doğrulamak için hiçbir mekanizma yoktur, a'la Schematron.

Bunu çözmenin en kolay yolu, bu tür çekleri çalıştıran boru hattında başka bir betiğe sahip olmaktır.