डेटा प्रारूप विवरण भाषा: Difference between revisions

From Vigyanwiki
(Created page with "फरवरी 2021 में ओपन ग्रिड फोरम की सिफारिश के रूप में प्रकाशित डेटा प्...")
 
(Work done)
Line 1: Line 1:
फरवरी 2021 में [[ओपन ग्रिड फोरम]] की सिफारिश के रूप में प्रकाशित डेटा प्रारूप विवरण भाषा (डीएफडीएल, जिसे अक्सर 'डफ-ओ-दिल' कहा जाता है), सामान्य पाठ और [[बाइनरी डेटा]] का मानक तरीके से वर्णन करने के लिए एक मॉडलिंग भाषा है। एक डीएफडीएल मॉडल या स्कीमा किसी भी पाठ या बाइनरी डेटा को उसके मूल प्रारूप से पढ़ने (या पार्स) करने की अनुमति देता है और एक 'सूचना सेट' के उदाहरण के रूप में प्रस्तुत किया जाता है। (एक सूचना सेट डेटा सामग्री का एक तार्किक प्रतिनिधित्व है, भौतिक प्रारूप से स्वतंत्र है। उदाहरण के लिए, दो रिकॉर्ड अलग-अलग स्वरूपों में हो सकते हैं, क्योंकि एक में निश्चित-लंबाई वाले क्षेत्र हैं और दूसरे सीमांकक का उपयोग करते हैं, लेकिन उनमें बिल्कुल समान हो सकता है डेटा, और दोनों को एक ही सूचना सेट द्वारा दर्शाया जाएगा)। वही DFDL स्कीमा डेटा को एक सूचना सेट के एक उदाहरण से लेने और उसके मूल प्रारूप में लिखे (या क्रमबद्ध) करने की अनुमति देता है।
'''डाटा फॉर्मेट विवरण भाषा''' ('''डीएफडीएल''', प्रायः ''डै-फो-डिल'' के रूप में उच्चारित किया जाता है), फरवरी 2021 में एक [[ओपन ग्रिड फोरम]] संस्तुति के रूप में प्रकाशित हुआ है, जो साधारणतयः सामान्य टेक्स्ट और [[बाइनरी डेटा]] का वर्णन करने के लिए मॉडलिंग भाषा है। डीएफडीएल मॉडल या स्कीमा किसी भी टेक्स्ट या बाइनरी डेटा को उसके स्थानीय प्रारूप से पढ़ने (या "पार्स करने") और किसी ''सुचना समुच्चय'' के एक उदाहरण के रूप में प्रस्तुत करने की अनुमति प्रदान करता है। (एक सुचना समुच्चय डेटा सामग्री का तार्किक प्रतिनिधित्व है, जो भौतिक प्रारूप से भिन्न होता है। उदाहरण के लिए, दो रिकॉर्ड्स भिन्न-भिन्न प्रारूप में हो सकते हैं, क्योंकि एक के पास नियत लंबाई के फील्ड होते हैं और दूसरे में सीमाओं का उपयोग होता है, लेकिन वे पूर्णतयः एक ही डेटा को सम्प्रेषित कर सकते हैं और दोनों को एक ही सुचना समुच्चय द्वारा प्रतिष्ठित किया जाएगा)। एक ही डीएफडीएल स्कीमा भी डेटा को एक सुचना समुच्चय के उदाहरण से लिए जा सकता है और उसे अपने स्थानीय प्रारूप में लिखा जा सकता है (या "क्रमबद्ध या सीरियलाइज्ड")


डीएफडीएल ''[[वर्णनात्मक]]'' है न कि ''निर्देशात्मक''डीएफडीएल एक डेटा प्रारूप नहीं है, न ही यह किसी विशेष डेटा प्रारूप के उपयोग को लागू करता है। इसके बजाय यह कई अलग-अलग प्रकार के डेटा स्वरूपों का वर्णन करने का एक मानक तरीका प्रदान करता है। इस दृष्टिकोण के कई फायदे हैं।<ref>[http://cboblog.typepad.com/cboblog/2008/07/dfdl-data-forma.html The Syntax of Data, Mike Beckerle blog]</ref> यह एक एप्लिकेशन लेखक को एक मानक तरीके से वर्णन करते हुए उनकी आवश्यकताओं के अनुसार एक उपयुक्त डेटा प्रतिनिधित्व को डिजाइन करने की अनुमति देता है जिसे साझा किया जा सकता है, जिससे डेटा को सीधे इंटरचेंज करने के लिए कई प्रोग्राम सक्षम होते हैं।
डीएफडीएल ''[[वर्णनात्मक]] (''डिस्क्रिप्टिव'')'' होता है और ''निर्देशात्मक'' (प्रिस्क्रिप्टिव) नहीं होता है। डीएफडीएल एक डेटा प्रारूप नहीं है, और यह किसी विशेष डेटा प्रारूप के उपयोग को लागू करने की बाध्यता नहीं देता है। इसके बजाय, यह बहुत से विभिन्न प्रकार के डेटा प्रारूपों का वर्णन करने की एक मानक विधि प्रदान करता है। इस दृष्टिकोण के कई लाभ होते हैं।<ref>[http://cboblog.typepad.com/cboblog/2008/07/dfdl-data-forma.html The Syntax of Data, Mike Beckerle blog]</ref> यह एक अनुप्रयोग लेखक को उनकी आवश्यकताओं के अनुसार एक उचित डेटा प्रतिष्ठान डिज़ाइन करने की अनुमति प्रदान करता है जबकि इसे एक मानक विधि वर्णित किया जाता है जो साझा किया जा सकता है, जिससे अनेक प्रोग्राम प्रत्यक्ष डेटा का विनिमय कर सकते हैं।


DFDL इसे W3C XML स्कीमा|W3C XML स्कीमा 1.0 की सुविधाओं के आधार पर प्राप्त करता है। XML स्कीमा के एक सबसेट का उपयोग किया जाता है, जो गैर-XML डेटा के मॉडलिंग को सक्षम करने के लिए पर्याप्त है। इस दृष्टिकोण के लिए प्रेरणा एक पूरी तरह से नई स्कीमा भाषा का आविष्कार करने से बचना है, और सामान्य पाठ और बाइनरी डेटा को DFDL सूचना सेट के माध्यम से संबंधित XML दस्तावेज़ में परिवर्तित करना आसान बनाना है।
डीएफडीएल इसे डब्ल्यू3सी एक्सएमएल स्कीमा 1.0 की सुविधाओं पर निर्माण करके यह प्राप्त करता है। इसमें एक्सएमएल स्कीमा का एक उपसमुच्चय उपयोग किया जाता है, जो गैर-एक्सएमएल डेटा के मॉडलिंग को संभव बनाता है। इस दृष्टिकोण की प्रेरणा एक पूरी तरह से नई स्कीमा भाषा का आविष्कार करने से बचना है, और यह सरलता से सामान्य टेक्स्ट और डीएफडीएल सूचना सेट के माध्यम से सामान्य टेक्स्ट और बाइनरी डेटा को संबंधित एक्सएमएल दस्तावेज़ में परिवर्तित करना सरल बनाना है।


शैक्षिक सामग्री डीएफडीएल ट्यूटोरियल, वीडियो और कई व्यावहारिक डीएफडीएल प्रयोगशालाओं के रूप में उपलब्ध है।
शैक्षणिक सामग्री डीएफडीएल ट्यूटोरियल्स, वीडियो और कई हैंड्स-ऑन डीएफडीएल प्रयोगशालाओं के रूप में उपलब्ध है।


== इतिहास ==
== इतिहास ==
स्रोत की परवाह किए बिना डेटा को समझने में सक्षम होने के लिए ग्रिड एपीआई की आवश्यकता के जवाब में डीएफडीएल बनाया गया था। एक ऐसी भाषा की आवश्यकता थी जो विभिन्न प्रकार के मौजूदा टेक्स्ट और बाइनरी डेटा स्वरूपों को मॉडलिंग करने में सक्षम हो। एक [http://www.ogf.org/gf/group_info/view.php?group=dfdl-wg वर्किंग ग्रुप] ग्लोबल ग्रिड फोरम (जो बाद में ओपन ग्रिड फोरम बन गया) में एक विनिर्देश बनाने के लिए स्थापित किया गया था। ऐसी भाषा के लिए।
ग्रिड एपीआई को स्रोत के अनुसार डेटा को समझने की आवश्यकता के प्रतिक्रिया के अंतर्गत डीएफडीएल का निर्माण किया गया था। एक ऐसी भाषा की आवश्यकता थी जो स्थायी टेक्स्ट और बाइनरी डेटा प्रारूपों के विभिन्न प्रकार के मॉडलिंग की क्षमता रखती हो। एक [http://www.ogf.org/gf/group_info/view.php?group=dfdl-wg वर्किंग ग्रुप] को 2003 में वैश्विक ग्रिड फोरम (जो बाद में ओपन ग्रिड फोरम बन गया) में स्थापित किया गया था जो इस तरह की भाषा के लिए एक विनिर्देशिका बनाने के लिए निर्मित हुआ।


गैर-XML भौतिक अभ्यावेदन का वर्णन करने के लिए आवश्यक अतिरिक्त जानकारी ले जाने के लिए <xs:appinfo> एनोटेशन का उपयोग करते हुए [[W3C XML स्कीमा]] के एक सबसेट पर भाषा को आधार बनाने के लिए जल्दी निर्णय लिया गया था। यह एक स्थापित दृष्टिकोण है जो आज वाणिज्यिक प्रणालियों में पहले से ही उपयोग किया जा रहा है। DFDL इस दृष्टिकोण को अपनाता है और इसे कई पाठ या बाइनरी डेटा स्वरूपों का वर्णन करने में सक्षम एक खुले मानक में विकसित करता है।
गैर-एक्सएमएल भौतिक अभ्यावेदन का वर्णन करने के लिए आवश्यक अतिरिक्त जानकारी ले जाने के लिए <xs:appinfo> एनोटेशन का उपयोग करते हुए, [[W3C XML स्कीमा|डब्ल्यू3सी एक्सएमएल स्कीमा]] के उपसमुच्चय पर भाषा को आधार बनाने का निर्णय लिया गया था। यह एक स्थापित दृष्टिकोण है जो आज वाणिज्यिक प्रणालियों में पहले से ही उपयोग किया जा रहा है। डीएफडीएल इस दृष्टिकोण को अपनाता है और इसे विवृत मानक में विकसित करता है जो कई टेक्स्ट या बाइनरी डेटा प्रारूपों का वर्णन करने में सक्षम है।


भाषा पर कार्य जारी रहा, जिसके परिणामस्वरूप जनवरी 2011 में OGF प्रस्तावित अनुशंसा GFD.174 के रूप में DFDL 1.0 विनिर्देश का प्रकाशन हुआ।
भाषा पर काम जारी रहा, जिसके परिणामस्वरूप जनवरी 2011 में ओजीएफ प्रस्तावित संस्तुति जीएफडी.174 के रूप में डीएफडीएल 1.0 विनिर्देश का प्रकाशन हुआ।


आधिकारिक ओजीएफ सिफारिश फरवरी 2021 में प्रकाशित [http://www.ogf.org/documents/GFD.240.pdf GFD.240] है जो सभी पूर्व संस्करणों को अप्रचलित कर देता है और आज तक नोट किए गए सभी मुद्दों को शामिल करता है ([https: के रूप में भी उपलब्ध है: //htmlpreview.github.io/?https://github.com/OpenGridForum/DFDL/blob/master/docs/current/gwdrp-dfdl-v1.0.8-GFD-RP.240.htm html])। DFDL का [http://www.ogf.org/dfdl/ सारांश] और इसकी विशेषताएं OGF पर उपलब्ध हैं। विनिर्देश के साथ किसी भी मुद्दे को GitHub [https://github.com/OpenGridForum/DFDL/issues इश्यू ट्रैकर्स] का उपयोग करके ट्रैक किया जा रहा है।
आधिकारिक ओजीएफ संस्तुति [http://www.ogf.org/documents/GFD.240.pdf जीएफडी.240] है जो फरवरी 2021 में प्रकाशित हुई, जो सभी पूर्व संस्करणों को अप्रचलित करती है और आज तक नोट किए गए सभी समस्याओं को सम्मिलित करता है (https://github.com/OpenGridForum/DFDL/blob/master/docs/current/gwdrp-dfdl-v1.0.8-GFD-RP.240.htm के रूप में भी उपलब्ध है)। डीएफडीएल और इसकी विशेषताओं का [http://www.ogf.org/dfdl/ सारांश] ओजीएफ पर उपलब्ध है। विनिर्देशन से संबंधित किसी भी समस्या को गिटहब [https://github.com/OpenGridForum/DFDL/issues समस्या ट्रैकर्स] का उपयोग करके ट्रैक किया जा रहा है।


== कार्यान्वयन ==
== कार्यान्वयन ==
डीएफडीएल प्रोसेसर के कार्यान्वयन जो डीएफडीएल स्कीमा का उपयोग करके डेटा को पार्स और क्रमबद्ध कर सकते हैं, उपलब्ध हैं।
डीएफडीएल प्रोसेसर का कार्यान्वयन जो डीएफडीएल स्कीमा का उपयोग करके डेटा को पार्स और क्रमबद्ध कर सकता है, उपलब्ध हैं।


* आईबीएम के पास प्रोडक्शन के लिए तैयार डीएफडीएल 1.0 स्ट्रीमिंग पार्सर, मॉडलर और विजुअल टेस्टर है।<ref>[http://www-01.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/df20060_.htm IBM DFDL 1.0]</ref> यह [[आईबीएम ऐप कनेक्ट एंटरप्राइज]] सहित कई आईबीएम उत्पादों में उपलब्ध है (जिसे पहले [https://ibm.com/docs/en/integration-bus/10.0 IBM इंटीग्रेशन बस] के रूप में जाना जाता था)एक [https://ibm.com/marketing/iwm/iwm/web/dispatcher.do?source=swg-wmbfd निःशुल्क डेवलपर संस्करण] उपलब्ध है।
* आईबीएम के पास उत्पादन के लिए तैयार डीएफडीएल 1.0 स्ट्रीमिंग पार्सर, मॉडलर और विज़ुअल टेस्टर है।<ref>[http://www-01.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/df20060_.htm IBM DFDL 1.0]</ref> यह [[आईबीएम ऐप कनेक्ट एंटरप्राइज]] (पहले [https://ibm.com/docs/en/integration-bus/10.0 आईबीएम इंटीग्रेशन बस] के नाम से जाना जाता था) सहित कई आईबीएम उत्पादों में उपलब्ध है। एक [https://ibm.com/marketing/iwm/iwm/web/dispatcher.do?source=swg-wmbfd निःशुल्क डेवलपर संस्करण] उपलब्ध है।
*[https://daffodil.apache.org/ Apache Daffodil] एक ओपन-सोर्स DFDL प्रोसेसर है जिसमें पार्सर और अनपार्सर दोनों हैं, साथ ही [[Apache NiFi]] में एकीकरण, और [http://xmlcalabash.com XML Calabash XProc पाइपलाइन इंजन]यह सक्रिय विकास के तहत जारी है।
*[https://daffodil.apache.org/ अपाचे डैफोडिल] एक ओपन-सोर्स डीएफडीएल प्रोसेसर है जिसमें पार्सर और अनपार्सर दोनों होते हैं, साथ ही [[Apache NiFi|अपाचे निफ़ी]] और [http://xmlcalabash.com एक्सएमएल कैलाबैश एक्सप्रोक पाइपलाइन इंजन] में एकीकरण होता है। यह सक्रिय विकास के अधीन है।  
* यूरोपीय अंतरिक्ष एजेंसी परियोजना [http://eop-cfi.esa.int/index.php/applications/s2g-data-viewer S2G डेटा व्यूअर] में एक पार्सर DFDL4S शामिल है<ref>[http://eop-cfi.esa.int/index.php/applications/dfdl4s DFDL4S]</ref> जो DFDL 1.0 विनिर्देश के सबसेट को लागू करता है।
*यूरोपीय अंतरिक्ष एजेंसी परियोजना [http://eop-cfi.esa.int/index.php/applications/s2g-data-viewer एस2जी डेटा व्यूअर] में एक पार्सर डीएफडीएल4एस<ref>[http://eop-cfi.esa.int/index.php/applications/dfdl4s DFDL4S]</ref> सम्मिलित है जो डीएफडीएल 1.0 विनिर्देश के एक उपसमुच्चय को लागू करता है।
[https://archive.today/20130216030526/http://dfdlschemas.github.com/ GitHub] पर वाणिज्यिक और वैज्ञानिक डेटा प्रारूपों का वर्णन करने वाले DFDL स्कीमाओं के लिए एक सार्वजनिक भंडार स्थापित किया गया है। UN/EDIFACT, NACHA, MIL-STD-2045, NITF, और ISO8583 जैसे प्रारूपों के लिए DFDL स्कीमा मुफ्त डाउनलोड के लिए उपलब्ध हैं।
[https://archive.today/20130216030526/http://dfdlschemas.github.com/ गिटहब] पर व्यावसायिक और वैज्ञानिक डेटा प्रारूपों का वर्णन करने वाले डीएफडीएल स्कीमा के लिए एक सार्वजनिक संग्रह स्थापित किया गया है। यूएन/ईडीआईएफएसीटी, एनएसीएचए, एमआईएल-एसटीडी-2045, एनआईटीएफ और आईएसओ8583 जैसे प्रारूपों के लिए डीएफडीएल स्कीमा निः शुल्क डाउनलोड के लिए उपलब्ध हैं।


== उदाहरण ==
== उदाहरण ==
एक उदाहरण के रूप में निम्न टेक्स्ट डेटा स्ट्रीम लें जो किसी व्यक्ति का नाम, आयु और स्थान देता है:
एक उदाहरण के रूप में निम्नलिखित टेक्स्ट डेटा स्ट्रीम ले जिसमें किसी व्यक्ति का नाम, आयु और स्थान दिया गया है:


इस डेटा के तार्किक मॉडल को XML स्कीमा दस्तावेज़ के निम्नलिखित अंश द्वारा वर्णित किया जा सकता है। फ़ील्ड के क्रम, नाम, प्रकार और कार्डिनैलिटी को XML स्कीमा मॉडल द्वारा व्यक्त किया जाता है।
इस डेटा के लिए यहां एक एक्सएमएल स्कीमा डॉक्यूमेंट के निम्नलिखित अंशों का वर्णन किया जा सकता है जो इस डेटा के लिए तार्किक मॉडल प्रदान करता है। फ़ील्ड के क्रम, नाम, प्रकार और गणनीयता (कार्डिनैलिटी) एक्सएमएल स्कीमा मॉडल द्वारा व्यक्त की जाती है।


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 43: Line 43:
</xs:schema>
</xs:schema>
</syntaxhighlight>
</syntaxhighlight>
डेटा स्ट्रीम के भौतिक प्रतिनिधित्व को अतिरिक्त रूप से मॉडल करने के लिए, डीएफडीएल एक्सएस: एलिमेंट और एक्सएस: सीक्वेंस ऑब्जेक्ट्स पर एनोटेशन के साथ एक्सएमएल स्कीमा खंड को निम्नानुसार बढ़ाता है:
डेटा स्ट्रीम के भौतिक प्रतिनिधित्व को अतिरिक्त रूप से मॉडल करने के लिए, डीएफडीएल एक्सएमएल स्कीमा खंड को एक्सएस: एलिमेंट और एक्सएस: अनुक्रम ऑब्जेक्ट पर एनोटेशन के साथ निम्नानुसार बढ़ाता है:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 80: Line 80:
</xs:schema>
</xs:schema>
</syntaxhighlight>
</syntaxhighlight>
इन DFDL एनोटेशन पर गुण विशेषताएँ व्यक्त करती हैं कि डेटा को ASCII पाठ प्रारूप में दर्शाया जाता है, जिसमें फ़ील्ड चर लंबाई के होते हैं और अल्पविराम द्वारा सीमांकित होते हैं
इन डीएफडीएल एनोटेशन पर प्रॉपर्टी विशेषताएं का उपयोग करके यह व्यक्त किया जाता है कि डेटा एक एएससीआईआई टेक्स्ट प्रारूप में प्रतिष्ठित है, जहां फ़ील्ड अस्थायी लंबाई के होते हैं और कॉमा द्वारा विभाजित होते हैं।


एक वैकल्पिक, अधिक कॉम्पैक्ट सिंटैक्स भी प्रदान किया जाता है, जहां डीएफडीएल गुणों को एक्सएमएल स्कीमा ऑब्जेक्ट्स पर गैर-देशी विशेषताओं के रूप में ले जाया जाता है।
एक वैकल्पिक, अधिक कॉम्पैक्ट सिंटेक्स भी प्रदान किया जाता है, जहां डीएफडीएल प्रॉपर्टीज एक्सएमएल स्कीमा ऑब्जेक्ट्स पर नॉन-नेटिव एट्रिब्यूट के रूप में ले जाया जाता है।


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 104: Line 104:
</xs:schema>
</xs:schema>
</syntaxhighlight>
</syntaxhighlight>


== विशेषताएं ==
== विशेषताएं ==
DFDL का लक्ष्य एक समृद्ध मॉडलिंग भाषा प्रदान करना है जो किसी भी पाठ या बाइनरी डेटा प्रारूप का प्रतिनिधित्व करने में सक्षम हो। 1.0 रिलीज इस लक्ष्य की दिशा में एक बड़ा कदम है। क्षमता में इसके लिए समर्थन शामिल है:
डीएफडीएल का लक्ष्य किसी भी टेक्स्ट या बाइनरी डेटा प्रारूप का प्रतिनिधित्व करने में सक्षम एक समृद्ध मॉडलिंग भाषा प्रदान करना है। यह लक्ष्य की दिशा में 1.0 रिलीज एक बड़ा कदम है। इसकी क्षमता में निम्नलिखित सपोर्ट सम्मिलित है:
* टेक्स्ट डेटा प्रकार जैसे स्ट्रिंग्स, संख्याएं, ज़ोनड दशमलव, कैलेंडर और बूलियन
* टेक्स्ट डेटा प्रकार जैसे स्ट्रिंग, संख्या, ज़ोन डेसिमल, कैलेंडर और बूलियन
* बाइनरी डेटा प्रकार जैसे कि दो पूरक पूर्णांक, बीसीडी, पैक्ड दशमलव, फ़्लोट्स, कैलेंडर और बूलियन
* बाइनरी डेटा प्रकार जैसे दो के कॉम्प्लीमेंट पूर्णांक, बीसीडी, पैक्ड डेसीमल, फ्लोट, कैलेंडर और बूलियन
* फिक्स्ड लेंथ डेटा और टेक्स्ट या बाइनरी मार्कअप द्वारा सीमांकित डेटा
* फिक्स्ड लेंथ डेटा और टेक्स्ट या बाइनरी मार्कअप द्वारा सीमांकित डेटा
* [[COBOL]], C (प्रोग्रामिंग भाषा) और PL/1 जैसी भाषाओं में पाई जाने वाली भाषा डेटा संरचनाएँ
*भाषा डेटा संरचनाएँ [[COBOL]], C और PL/1 जैसी भाषाओं में पाई गईं
* कॉमा से अलग किए गए मान, SWIFT, FIX, [[स्वास्थ्य स्तर 7]], X12, HIPAA, [[EDIFACT]], [[ISO 8583]] जैसे उद्योग मानक
* उद्योग मानक जैसे सीएसवी, स्विफ्ट, फिक्स, [[स्वास्थ्य स्तर 7|एचएल7]], एक्स12, एचआईपीएए, [[EDIFACT|ईडीआईएफएसीटी]], [[ISO 8583|आईएसओ 8583]]
* कोई एन्कोडिंग और एंडियन-नेस
* कोई एन्कोडिंग और एंडियन-नेस
* मनमाना लंबाई का बिट डेटा
* यादृच्छिक लंबाई का बिट डेटा
* पाठ संख्या और कैलेंडर के लिए पैटर्न भाषाएँ
* टेक्स्ट संख्याओं और कैलेंडरों के लिए पैटर्न भाषाएँ
* आदेशित, अक्रमित और अस्थायी सामग्री
* क्रमबद्ध, अव्यवस्थित और फ़्लोटिंग सामग्री
* पार्सिंग और क्रमांकन पर डिफ़ॉल्ट मान
* पार्सिंग और क्रमांकन पर डिफ़ॉल्ट मान
* आउट-ऑफ़-बैंड डेटा को संभालने के लिए शून्य मान क्षमता
* आउट-ऑफ़-बैंड डेटा के प्रबंधन की क्षमता निल मान है
* फिक्स्ड और वेरिएबल सरणियाँ
* निश्चित और परिवर्तनीय सरणियाँ
* [[XPath]] 2.0 अभिव्यक्ति भाषा जिसमें गतिशील डेटा मॉडल करने के लिए चर शामिल हैं
* डायनेमिक डेटा को मॉडल करने के लिए चर सहित [[XPath|एक्सपाथ]] 2.0 अभिव्यक्ति भाषा
* सट्टा पार्सिंग और अन्य तंत्र विकल्पों और वैकल्पिकता को हल करने के लिए
* विकल्पों और वैकल्पिकता को हल करने के लिए स्पेक्युलेटिवे पार्सिंग और अन्य मैकेनिज्म
* एक्सएमएल स्कीमा 1.0 नियमों का सत्यापन
* एक्सएमएल स्कीमा 1.0 नियमों का सत्यापन
* एक स्कोपिंग मैकेनिज्म जो कॉमन प्रॉपर्टी वैल्यू को कई एनोटेशन पॉइंट्स पर लागू करने की अनुमति देता है
* एक स्कोपिंग मैकेनिज्म जो सामान्य प्रॉपर्टी मानों को कई एनोटेशन बिंदुओं पर लागू करने की अनुमति देता है
* सूचना सेट से डेटा में तत्वों को छिपाना
* सूचना समुच्चय से डेटा में तत्वों को छिपाना
* सूचना सेट के लिए तत्व मूल्यों की गणना करना
* सूचना समुच्चय के लिए तत्व मानों की गणना


== यह भी देखें ==
== यह भी देखें ==
* ओपन ग्रिड फोरम
* ओपन ग्रिड फोरम
* W3C XML स्कीमा
*डब्ल्यू3सी एक्सएमएल स्कीमा


==संदर्भ==
==संदर्भ==
Line 140: Line 139:
*[http://www.ogf.org/documents/GFD.240.pdf OGF DFDL 1.0 specification GFD.240 (pdf)]
*[http://www.ogf.org/documents/GFD.240.pdf OGF DFDL 1.0 specification GFD.240 (pdf)]
*[https://htmlpreview.github.io/?https://github.com/OpenGridForum/DFDL/blob/master/docs/current/gwdrp-dfdl-v1.0.8-GFD-R-P.240.htm OGF DFDL 1.0 specification GFD.240 (html)]
*[https://htmlpreview.github.io/?https://github.com/OpenGridForum/DFDL/blob/master/docs/current/gwdrp-dfdl-v1.0.8-GFD-R-P.240.htm OGF DFDL 1.0 specification GFD.240 (html)]
*[http://www.w3.org/TR/xmlschema-0/ W3C XML Schema 1.0]
*[http://www.w3.org/TR/xmlschema-0/ W3C एक्सएमएल Schema 1.0]
*[https://github.com/OpenGridForum/DFDL DFDL Working Group documents]
*[https://github.com/OpenGridForum/DFDL DFDL Working Group documents]
*[http://www.ibm.com/developerworks/library/se-dfdl/index.html Getting started with DFDL] including videos
*[http://www.ibm.com/developerworks/library/se-dfdl/index.html Getting started with DFDL] including videos
*[https://dfdlschemas.github.io/ DFDLSchemas on GitHub]
*[https://dfdlschemas.github.io/ DFDLSchemas on GitHub]
*[http://xmlcalabash.com XML Calabash]
*[http://xmlcalabash.com एक्सएमएल Calabash]
[[Category: डेटा मॉडलिंग भाषाएँ]] [[Category: ग्रिड कंप्यूटिंग]]  
[[Category: डेटा मॉडलिंग भाषाएँ]] [[Category: ग्रिड कंप्यूटिंग]]  



Revision as of 12:26, 28 June 2023

डाटा फॉर्मेट विवरण भाषा (डीएफडीएल, प्रायः डै-फो-डिल के रूप में उच्चारित किया जाता है), फरवरी 2021 में एक ओपन ग्रिड फोरम संस्तुति के रूप में प्रकाशित हुआ है, जो साधारणतयः सामान्य टेक्स्ट और बाइनरी डेटा का वर्णन करने के लिए मॉडलिंग भाषा है। डीएफडीएल मॉडल या स्कीमा किसी भी टेक्स्ट या बाइनरी डेटा को उसके स्थानीय प्रारूप से पढ़ने (या "पार्स करने") और किसी सुचना समुच्चय के एक उदाहरण के रूप में प्रस्तुत करने की अनुमति प्रदान करता है। (एक सुचना समुच्चय डेटा सामग्री का तार्किक प्रतिनिधित्व है, जो भौतिक प्रारूप से भिन्न होता है। उदाहरण के लिए, दो रिकॉर्ड्स भिन्न-भिन्न प्रारूप में हो सकते हैं, क्योंकि एक के पास नियत लंबाई के फील्ड होते हैं और दूसरे में सीमाओं का उपयोग होता है, लेकिन वे पूर्णतयः एक ही डेटा को सम्प्रेषित कर सकते हैं और दोनों को एक ही सुचना समुच्चय द्वारा प्रतिष्ठित किया जाएगा)। एक ही डीएफडीएल स्कीमा भी डेटा को एक सुचना समुच्चय के उदाहरण से लिए जा सकता है और उसे अपने स्थानीय प्रारूप में लिखा जा सकता है (या "क्रमबद्ध या सीरियलाइज्ड")।

डीएफडीएल वर्णनात्मक (डिस्क्रिप्टिव) होता है और निर्देशात्मक (प्रिस्क्रिप्टिव) नहीं होता है। डीएफडीएल एक डेटा प्रारूप नहीं है, और यह किसी विशेष डेटा प्रारूप के उपयोग को लागू करने की बाध्यता नहीं देता है। इसके बजाय, यह बहुत से विभिन्न प्रकार के डेटा प्रारूपों का वर्णन करने की एक मानक विधि प्रदान करता है। इस दृष्टिकोण के कई लाभ होते हैं।[1] यह एक अनुप्रयोग लेखक को उनकी आवश्यकताओं के अनुसार एक उचित डेटा प्रतिष्ठान डिज़ाइन करने की अनुमति प्रदान करता है जबकि इसे एक मानक विधि वर्णित किया जाता है जो साझा किया जा सकता है, जिससे अनेक प्रोग्राम प्रत्यक्ष डेटा का विनिमय कर सकते हैं।

डीएफडीएल इसे डब्ल्यू3सी एक्सएमएल स्कीमा 1.0 की सुविधाओं पर निर्माण करके यह प्राप्त करता है। इसमें एक्सएमएल स्कीमा का एक उपसमुच्चय उपयोग किया जाता है, जो गैर-एक्सएमएल डेटा के मॉडलिंग को संभव बनाता है। इस दृष्टिकोण की प्रेरणा एक पूरी तरह से नई स्कीमा भाषा का आविष्कार करने से बचना है, और यह सरलता से सामान्य टेक्स्ट और डीएफडीएल सूचना सेट के माध्यम से सामान्य टेक्स्ट और बाइनरी डेटा को संबंधित एक्सएमएल दस्तावेज़ में परिवर्तित करना सरल बनाना है।

शैक्षणिक सामग्री डीएफडीएल ट्यूटोरियल्स, वीडियो और कई हैंड्स-ऑन डीएफडीएल प्रयोगशालाओं के रूप में उपलब्ध है।

इतिहास

ग्रिड एपीआई को स्रोत के अनुसार डेटा को समझने की आवश्यकता के प्रतिक्रिया के अंतर्गत डीएफडीएल का निर्माण किया गया था। एक ऐसी भाषा की आवश्यकता थी जो स्थायी टेक्स्ट और बाइनरी डेटा प्रारूपों के विभिन्न प्रकार के मॉडलिंग की क्षमता रखती हो। एक वर्किंग ग्रुप को 2003 में वैश्विक ग्रिड फोरम (जो बाद में ओपन ग्रिड फोरम बन गया) में स्थापित किया गया था जो इस तरह की भाषा के लिए एक विनिर्देशिका बनाने के लिए निर्मित हुआ।

गैर-एक्सएमएल भौतिक अभ्यावेदन का वर्णन करने के लिए आवश्यक अतिरिक्त जानकारी ले जाने के लिए <xs:appinfo> एनोटेशन का उपयोग करते हुए, डब्ल्यू3सी एक्सएमएल स्कीमा के उपसमुच्चय पर भाषा को आधार बनाने का निर्णय लिया गया था। यह एक स्थापित दृष्टिकोण है जो आज वाणिज्यिक प्रणालियों में पहले से ही उपयोग किया जा रहा है। डीएफडीएल इस दृष्टिकोण को अपनाता है और इसे विवृत मानक में विकसित करता है जो कई टेक्स्ट या बाइनरी डेटा प्रारूपों का वर्णन करने में सक्षम है।

भाषा पर काम जारी रहा, जिसके परिणामस्वरूप जनवरी 2011 में ओजीएफ प्रस्तावित संस्तुति जीएफडी.174 के रूप में डीएफडीएल 1.0 विनिर्देश का प्रकाशन हुआ।

आधिकारिक ओजीएफ संस्तुति जीएफडी.240 है जो फरवरी 2021 में प्रकाशित हुई, जो सभी पूर्व संस्करणों को अप्रचलित करती है और आज तक नोट किए गए सभी समस्याओं को सम्मिलित करता है (https://github.com/OpenGridForum/DFDL/blob/master/docs/current/gwdrp-dfdl-v1.0.8-GFD-RP.240.htm के रूप में भी उपलब्ध है)। डीएफडीएल और इसकी विशेषताओं का सारांश ओजीएफ पर उपलब्ध है। विनिर्देशन से संबंधित किसी भी समस्या को गिटहब समस्या ट्रैकर्स का उपयोग करके ट्रैक किया जा रहा है।

कार्यान्वयन

डीएफडीएल प्रोसेसर का कार्यान्वयन जो डीएफडीएल स्कीमा का उपयोग करके डेटा को पार्स और क्रमबद्ध कर सकता है, उपलब्ध हैं।

गिटहब पर व्यावसायिक और वैज्ञानिक डेटा प्रारूपों का वर्णन करने वाले डीएफडीएल स्कीमा के लिए एक सार्वजनिक संग्रह स्थापित किया गया है। यूएन/ईडीआईएफएसीटी, एनएसीएचए, एमआईएल-एसटीडी-2045, एनआईटीएफ और आईएसओ8583 जैसे प्रारूपों के लिए डीएफडीएल स्कीमा निः शुल्क डाउनलोड के लिए उपलब्ध हैं।

उदाहरण

एक उदाहरण के रूप में निम्नलिखित टेक्स्ट डेटा स्ट्रीम ले जिसमें किसी व्यक्ति का नाम, आयु और स्थान दिया गया है:

इस डेटा के लिए यहां एक एक्सएमएल स्कीमा डॉक्यूमेंट के निम्नलिखित अंशों का वर्णन किया जा सकता है जो इस डेटा के लिए तार्किक मॉडल प्रदान करता है। फ़ील्ड के क्रम, नाम, प्रकार और गणनीयता (कार्डिनैलिटी) एक्सएमएल स्कीमा मॉडल द्वारा व्यक्त की जाती है।

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ...>

<xs:complexType name="person_type">
  <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="age" type="xs:short"/>
    <xs:element name="county" type="xs:string"/>
    <xs:element name="country" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

</xs:schema>

डेटा स्ट्रीम के भौतिक प्रतिनिधित्व को अतिरिक्त रूप से मॉडल करने के लिए, डीएफडीएल एक्सएमएल स्कीमा खंड को एक्सएस: एलिमेंट और एक्सएस: अनुक्रम ऑब्जेक्ट पर एनोटेशन के साथ निम्नानुसार बढ़ाता है:

<xs:schema xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:xs="http://www.w3.org/2001/XMLSchema" ...>

<xs:complexType name="person_type">
  <xs:sequence>
    <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:sequence encoding="ASCII" sequenceKind="ordered" 
                       separator="," separatorType="infix" separatorPolicy="required"/>                   
    </xs:appinfo></xs:annotation>
    <xs:element name="name" type="xs:string">
      <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:element lengthKind="delimited" encoding="ASCII"/>                   
      </xs:appinfo></xs:annotation>
    </xs:element>
    <xs:element name="age" type="xs:short">
      <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:element representation="text" lengthKind="delimited" encoding="ASCII"
                      textNumberRep="standard" textNumberPattern="#0" textNumberBase="10"/>                   
      </xs:appinfo></xs:annotation>
    </xs:element>
    <xs:element name="county" type="xs:string">
      <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:element lengthKind="delimited" encoding="ASCII"/>                   
      </xs:appinfo></xs:annotation>
    </xs:element>
    <xs:element name="country" type="xs:string">
      <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:element lengthKind="delimited" encoding="ASCII"/>                   
      </xs:appinfo></xs:annotation>
    </xs:element>
  </xs:sequence>
</xs:complexType>

</xs:schema>

इन डीएफडीएल एनोटेशन पर प्रॉपर्टी विशेषताएं का उपयोग करके यह व्यक्त किया जाता है कि डेटा एक एएससीआईआई टेक्स्ट प्रारूप में प्रतिष्ठित है, जहां फ़ील्ड अस्थायी लंबाई के होते हैं और कॉमा द्वारा विभाजित होते हैं।

एक वैकल्पिक, अधिक कॉम्पैक्ट सिंटेक्स भी प्रदान किया जाता है, जहां डीएफडीएल प्रॉपर्टीज एक्सएमएल स्कीमा ऑब्जेक्ट्स पर नॉन-नेटिव एट्रिब्यूट के रूप में ले जाया जाता है।

<xs:schema xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:xs="http://www.w3.org/2001/XMLSchema" ...>

<xs:complexType name="person_type">
  <xs:sequence dfdl:encoding="ASCII" dfdl:sequenceKind="ordered" 
               dfdl:separator="," dfdl:separatorType="infix" dfdl:separatorPolicy="required">
    <xs:element name="name" type="xs:string"
                dfdl:lengthKind="delimited" dfdl:encoding="ASCII"/>                   
    <xs:element name="age" type="xs:short"
                dfdl:representation="text" dfdl:lengthKind="delimited" dfdl:encoding="ASCII"
                dfdl:textNumberRep="standard" dfdl:textNumberPattern="##0" dfdl:textNumberBase="10"/>                   
    <xs:element name="county" type="xs:string"
                dfdl:lengthKind="delimited" dfdl:encoding="ASCII"/>                   
    <xs:element name="country" type="xs:string"
                dfdl:lengthKind="delimited" dfdl:encoding="ASCII"/>                   
  </xs:sequence>
</xs:complexType>

</xs:schema>

विशेषताएं

डीएफडीएल का लक्ष्य किसी भी टेक्स्ट या बाइनरी डेटा प्रारूप का प्रतिनिधित्व करने में सक्षम एक समृद्ध मॉडलिंग भाषा प्रदान करना है। यह लक्ष्य की दिशा में 1.0 रिलीज एक बड़ा कदम है। इसकी क्षमता में निम्नलिखित सपोर्ट सम्मिलित है:

  • टेक्स्ट डेटा प्रकार जैसे स्ट्रिंग, संख्या, ज़ोन डेसिमल, कैलेंडर और बूलियन
  • बाइनरी डेटा प्रकार जैसे दो के कॉम्प्लीमेंट पूर्णांक, बीसीडी, पैक्ड डेसीमल, फ्लोट, कैलेंडर और बूलियन
  • फिक्स्ड लेंथ डेटा और टेक्स्ट या बाइनरी मार्कअप द्वारा सीमांकित डेटा
  • भाषा डेटा संरचनाएँ COBOL, C और PL/1 जैसी भाषाओं में पाई गईं
  • उद्योग मानक जैसे सीएसवी, स्विफ्ट, फिक्स, एचएल7, एक्स12, एचआईपीएए, ईडीआईएफएसीटी, आईएसओ 8583
  • कोई एन्कोडिंग और एंडियन-नेस
  • यादृच्छिक लंबाई का बिट डेटा
  • टेक्स्ट संख्याओं और कैलेंडरों के लिए पैटर्न भाषाएँ
  • क्रमबद्ध, अव्यवस्थित और फ़्लोटिंग सामग्री
  • पार्सिंग और क्रमांकन पर डिफ़ॉल्ट मान
  • आउट-ऑफ़-बैंड डेटा के प्रबंधन की क्षमता निल मान है
  • निश्चित और परिवर्तनीय सरणियाँ
  • डायनेमिक डेटा को मॉडल करने के लिए चर सहित एक्सपाथ 2.0 अभिव्यक्ति भाषा
  • विकल्पों और वैकल्पिकता को हल करने के लिए स्पेक्युलेटिवे पार्सिंग और अन्य मैकेनिज्म
  • एक्सएमएल स्कीमा 1.0 नियमों का सत्यापन
  • एक स्कोपिंग मैकेनिज्म जो सामान्य प्रॉपर्टी मानों को कई एनोटेशन बिंदुओं पर लागू करने की अनुमति देता है
  • सूचना समुच्चय से डेटा में तत्वों को छिपाना
  • सूचना समुच्चय के लिए तत्व मानों की गणना

यह भी देखें

  • ओपन ग्रिड फोरम
  • डब्ल्यू3सी एक्सएमएल स्कीमा

संदर्भ


बाहरी संबंध