2009-11-29 12 views
12

क्या आप ऐसे टूल के बारे में जानते हैं जो एक्सएमएल फाइलों के नमूना सेट से डीटीडी (या अन्य एक्सएमएल संरचना विनिर्देश प्रारूप) प्राप्त करेगा?एक्सएमएल फ़ाइल नमूने से डीटीडी (या अन्य एक्सएमएल स्पेक प्रारूप) कैसे प्राप्त करें

वर्तमान में हमारे पास एक एक्सएमएल एन्कोडेड डीएसएल के लिए एकमात्र (स्वचालित) सत्यापन है जो पर्ल में लिखे गए एक विरासत पार्सर है, लेकिन स्थिरता कारणों से सभी पर्ल कोड को सी-तेज में पोर्ट किया जाना चाहिए।

उत्तर

7

http://www.stylusstudio.com/dtd_generator.html एक डीटीडी जनरेटर लागू करने वाला वास्तविक सॉफ्टवेयर है।

http://www.pmg.csail.mit.edu/~chmoh/pubs/wecwis.pdf आपको जिस चीज की आवश्यकता है उस पर एक अच्छा पेपर जैसा लगता है, लेकिन मुझे अब तक पेपर में वास्तविक कोड (लिंक) नहीं मिल रहा है।

इस पर एक और पेपर है, फिर से, कोई कोड नहीं मिला: http://www.softnet.tuc.gr/~minos/Papers/debull03.pdf

अंत में, मैं सुझाव देता हूं कि आप इसके बजाय अपने एक्सएमएल को सत्यापित करने के लिए RELAX NG या Schematron का उपयोग करने का सुझाव दें। वे भाषाएं अधिक अभिव्यक्तिपूर्ण हैं, जिससे उन्हें पढ़ने में आसान बना दिया जाता है और उन चीजों में अधिक शक्तिशाली होते हैं जिन्हें आप मान्य कर सकते हैं। (एक्सएमएल स्कीमा को छोड़ना सुनिश्चित करें, जिसे व्यापक रूप से गड़बड़ माना जाता है।)

+1

दिलचस्प दस्तावेज! बहुत बुरा उन्होंने कभी भी कोड जारी नहीं किया (जिस तरह से मैं पा सकता हूं :-) – lexu

+1

http://www.hitsw.com/xml_utilites/ एक XML फ़ाइल से डीटीडी/स्कीमा बनाने का वादा करता है .. – lexu

+0

RE - RELAX NG या Schematron: मैं देखता हूँ कि dotNet पर्यावरण के लिए वैधकर्ता मौजूद हैं या नहीं। सुझावों के लिए धन्यवाद! – lexu

1

Altova's XMLSpy में एक डीटीडी/एक्सएमएल स्कीमा जेनरेटर है।

उत्पन्न डीटीडी/एक्सएमएल स्कीमा को आमतौर पर थोड़ा tweaking की आवश्यकता होती है। उदाहरण के लिए, टूल विशेषता या तत्वों की एक सूची का आकलन कर सकता है, जब आप किसी भी मूल्य की अनुमति देने के लिए "मतलब" रखते हैं। आप इसे केवल अपनी समस्या स्थान का नमूना दे रहे हैं, और इसे विशिष्ट से सामान्य तक जाना है, हालांकि। इसी कारण से, जब मैं अपने दिमाग को पढ़ने में विफल रहता हूं तो मुझे आकार से बाहर नहीं मिलता है।

मैं उत्पन्न डीटी या स्कीमा को एक प्रारंभिक बिंदु मानता हूं। यह शून्य से हाथ से रोलिंग से बेहतर है। एर, यदि आप मौजूदा एक्सएमएल दस्तावेज़ों से शुरू कर रहे हैं, तो यह है।

भले ही आप जेनरेट किए गए डीटी का उपयोग नहीं कर रहे हैं, फिर भी यह अपरिचित XML दस्तावेज़ों के सेट की संरचना के आसपास अपना सिर प्राप्त करने का एक बहुत अच्छा तरीका है।

1

एक्सएमएलमैक्स संपादक एक्सएमएल फ़ाइल से एक्सएसडी बनाएगा। नि: शुल्क परीक्षण (कोई रजिस्ट्रेशन/छोटी डाउनलोड फ़ाइल) आपके लिए यह नहीं करेगा। यदि आप इसे कोड में करना चाहते हैं, तो .NET Framework में XmlSchemaInference क्लास है जो स्वचालित रूप से एक एक्सएमएल फ़ाइल से एक्सएसडी बनाता है।

8

आप किसी दिए गए XML फ़ाइल के लिए XML स्कीमा उत्पन्न करने के लिए xsd.exe (दृश्य स्टूडियो का हिस्सा) का उपयोग कर सकते हैं।

0

आप Trang या Instance to Schema Tool (XMLBeans का हिस्सा) आजमा सकते हैं।

मैंने उन्हें 1 जीबी एक्सएमएल फ़ाइल के साथ एक परीक्षण में डाल दिया।

Trang:

max memory [kB] - 98,480 
time [MM:SS] - 0:24 

Instance to Schema Tool:

max memory [kB] - 5,993,240 
time [MM:SS] - 7:36 
2

यहां कार्यक्रम है कि मुझे DTDGenerator के लिए काम किया है यहाँ के परिणाम हैं। आपको इसे जावा के साथ संकलित करने की आवश्यकता है, लेकिन यह अच्छी तरह से काम करता है। मैं एक ऐसी भाषा के लिए मुफ्त सॉफ्टवेयर की कमी से हैरान हूं जो लंबे समय से आसपास रहा है, लेकिन यह मोज़िला पब्लिक लाइसेंस संस्करण 1.0 के तहत स्वतंत्र है।

+0

यह सवाल काफी पुराना है, लेकिन अभी भी प्रासंगिक प्रतीत होता है। वर्तमान सुझावों के साथ एक जवाब स्वागत है। – lexu

+0

आपको बहुत बहुत धन्यवाद ... वास्तव में, मुफ्त सॉफ्टवेयर की कमी है! आपकी सहायता के लिए धन्यवाद!! :) –

4

आप जेटब्रेन आईडीईए समुदाय संस्करण डाउनलोड कर सकते हैं जो निःशुल्क है। यह GTDs और स्कीमा पैदा करने के लिए अंतर्निहित टूल है:

http://www.jetbrains.com/idea/webhelp/generating-dtd.html

हो सकता है कि सही नहीं है, लेकिन यह कुछ है।

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