2015-02-20 7 views
8

यहाँ एक बैठक के लिए शुरू समय और समाप्ति समय दिखा एक JSON उदाहरण है:JSON: JSON और JSON स्कीमा के लिए Schematron के बराबर है? (यही है, एक JSON प्रौद्योगिकी सह कमी व्यक्त करने के लिए)

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

मुझे लगता है कि उदाहरण JSON का उपयोग कर की संरचना निर्दिष्ट कर सकते हैं स्कीमा: उदाहरण में "प्रारंभ समय" संपत्ति और "अंत समय" संपत्ति वाला ऑब्जेक्ट होना चाहिए और प्रत्येक प्रॉपर्टी दिनांक-समय स्वरूपित स्ट्रिंग होनी चाहिए। JSON स्कीमा के लिए नीचे देखें। लेकिन मैं जो निर्दिष्ट नहीं कर सकता वह यह है: बैठक समाप्त होने से पहले शुरू होनी चाहिए। यही है, "प्रारंभ समय" का मूल्य "अंत समय" के मूल्य से कम होना चाहिए। कुछ लोग इस डेटा निर्भरता को सह-बाधा कहते हैं। एक्सएमएल दुनिया में सह-बाधाओं को व्यक्त करने के लिए एक अद्भुत, सरल तकनीक है: Schematron। मैं सोच रहा हूं कि JSON दुनिया में समकक्ष तकनीक है या नहीं? आप घोषणात्मक रूप से पर "प्रारंभ समय" और "अंत समय" के मूल्य के बीच संबंधों का वर्णन करेंगे? (ध्यान दें: कुछ प्रोग्रामिंग भाषा में कोड लिखना मेरा मतलब है "रिश्तों का घोषणात्मक रूप से वर्णन करें"। मैं JSON दस्तावेज़ों में मौजूद डेटा निर्भरताओं का वर्णन करने के लिए घोषणात्मक साधनों की मांग कर रहा हूं, प्रक्रियात्मक कोड नहीं।)

{ 
    "$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

बिल्कुल वही नहीं जो आप खोज रहे हैं लेकिन आप जेएसओएन डेटा को पहले एक्सएमएल में परिवर्तित कर सकते हैं और उसके बाद किसी भी Schematron नियमों को लागू कर सकते हैं? एक उपकरण जो दोनों का समर्थन करता है [XML ValidatorBuddy] (http://www.xml-buddy.com) – Clemens

उत्तर

-1

json-schema.org वेबसाइट में कुछ कार्यान्वयन सूचीबद्ध हैं।

+0

उस पृष्ठ पर कुछ भी schematron के बारे में प्रश्न के लिए प्रासंगिक नहीं है। – bazzargh

1

अफसोस की बात है, जवाब नहीं है। जेएसओएन स्कीमा आपको संरचना को मान्य करने की अनुमति देता है, और मूल्यों की अनुमति देता है, लेकिन मूल्यों के सेट मान्य करने के लिए कोई तंत्र नहीं है, a'la Schematron।

इसे हल करने का सबसे आसान तरीका पाइपलाइन में एक और स्क्रिप्ट है जो इस प्रकार के चेक चलाती है।

संबंधित मुद्दे