XML इंस्टा डॉक्यूमेंट से XSD स्कीमा जेनरेट करने के लिए कोई टूल? [बन्द है]


146

मैं एक ऐसे टूल की तलाश कर रहा हूं, जो XML इंस्टेंस डॉक्यूमेंट ले और एक एक्सडीएस स्कीमा आउटपुट करे।

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

जवाबों:


65

माइक्रोसॉफ्ट XSD अनुमान उपकरण एक अच्छा, मुक्त समाधान है। कई XML संपादन उपकरण, जैसे XmlSpy (@Garth Gilmour द्वारा उल्लिखित) या OxygenXML संपादक में भी यह सुविधा है। वे हालांकि महंगे हैं, हालांकि। BizTalk Server में एक XSD इनफ़ॉर्मेशन टूल भी है।

संपादित करें: मैंने अभी .net XmlSchemaInference वर्ग की खोज की है , इसलिए यदि आप .net का उपयोग कर रहे हैं तो आपको उस पर विचार करना चाहिए


1
वाह, महीनों बाद आपने मुझे XSD रूपांतरण के लिए एक त्वरित XDR करने के लिए एक महान समाधान की ओर इशारा किया! धन्यवाद!
बैतालक्ष्मी

6
मेरे लिए इस टूल (xsd.exe) के लिए डाउनलोड खोजना मुश्किल था, लेकिन यह पहले से ही C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin में मेरे सिस्टम पर था। बस मैंने सोचा कि मैं किसी भी मामले में मदद करूंगा।
oob

2
यदि किसी के पास विजुअल स्टूडियो स्थापित नहीं है, तो यहाँ xsd डाउनलोड करने के लिए एक वैकल्पिक लिंक दिया गया है: juliankay.com/development/download-xsd-exe
MD

5
निर्देशिका xsd.exeविंडोज 7 पर बदल गई लगती है। मेरे पास कई Microsoft SDKsनिर्देशिकाओं में है (इसलिए यह जरूरी नहीं कि अब विजुअल स्टूडियो पर निर्भर हो?), जिसके बीच यह है C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools:। मुझे इसे xml युक्त निर्देशिका में चलाना था, ताकि "रास्ते में अवैध पात्रों" के बारे में एक त्रुटि को रोका जा सके, लेकिन यह मेरे लंबे फ़ाइल नाम के कारण हो सकता है।
याहू सीरियस

किसी और को एमएस एक्सएसडी इंजेक्शन उपकरण का उपयोग करने में परेशानी हो रही है, 200 जीबी एक्सएमएल फ़ाइल के लिए आउटगोफैमरी एक्ससेप्शन को बढ़ाकर अभी भी 8 जीबी मुफ्त रैम से अधिक है?
फेलिप सबिनो

54

आप एक खुले स्रोत और क्रॉस-प्लेटफ़ॉर्म विकल्प का उपयोग कर सकते हैं: Apache के XMLBeans से inst2xsd । मुझे यह बहुत उपयोगी और आसान लगता है।

बस डाउनलोड, अनज़िप और प्ले करें (इसके लिए जावा की आवश्यकता होती है)।


महान टिप, कि वास्तव में मुझे बहुत मदद की, thx!
एडेप्टर

2
OMG यह सब इतना है कि Powershell बकवास से बेहतर है! खासकर जब से मेरे पास XSD फाइल नहीं है!
च्लोए

3
एक आकर्षण की तरह काम किया :: सीडी <xml_bean_bin_directory>; ./inst2xsd -design ss -simple-content-type स्मार्ट -enumerations 4 <input_file.xml> -outDir <output_Directory>
डायरी


3
ध्यान दें कि XMLBeans को attic.apache.org पर स्थानांतरित कर दिया गया है , जो सेवानिवृत्त अपाचे परियोजनाओं का घर है। दूसरे शब्दों में, इसे 2012 के बाद से अपडेट नहीं किया गया है।
मैग्नीलेक्स

51

ट्रेंग यहां सबसे अच्छा विकल्प है। ओपन सोर्स और क्रॉस प्लेटफॉर्म (हालाँकि जावा की आवश्यकता है)

ट्रेंग वेबसाइट से:

ट्रेंग XML के लिए विभिन्न स्कीमा भाषाओं के बीच परिवर्तित होता है। यह निम्नलिखित भाषाओं का समर्थन करता है

  • RELAX NG (XML सिंटैक्स)
  • RELAX एनजी कॉम्पैक्ट वाक्यविन्यास
  • XML 1.0 DTDs
  • W3C XML स्कीमा

किसी भी समर्थित स्कीमा भाषा में लिखे गए स्कीमा को किसी अन्य समर्थित स्कीमा भाषा में परिवर्तित किया जा सकता है, सिवाय इसके कि डब्ल्यू 3 सी एक्सएमएल स्कीमा केवल आउटपुट के लिए समर्थित है, इनपुट के लिए नहीं।

ट्रांग एक या एक से अधिक एक्सएमएल दस्तावेजों से एक स्कीमा का अनुमान लगा सकता है।

डाउनलोड लिंक


ट्रांग भी एक या एक से अधिक एक्सएमएल डॉक्स से अपने एक्सएसडी इंजेक्शन करने के लिए ऑक्सीजनएक्सएमएल में एकीकृत उपकरण है। पहले प्रयास में यह अच्छी तरह से काम करने लगता है।
Redcalx

4
यदि आप सभी की जरूरत xml फ़ाइल से xsd उत्पन्न करते हैं, तो trang सबसे अच्छा, सबसे तेज़ और सबसे आसान IMHO है।
क्रिया जूल

2
ट्रांसग प्रलेखन थोड़ा पतला है। स्कीमा बनाने के लिए, रन करें $ trang file.xml schema.xsd
जो मोर्निन

खिड़कियों पर चलाएं: java -jar trang.jar file.xml schema.xsd
एलेक्सी

मेरे XML नमूने में विभिन्न स्थानों पर एक ही रूप में दिखाई देने वाली बाधाएं थीं, ट्रांग ने पुनरावृत्ति का पता लगाने और एक न्यूनतम एक्सएसडी उत्पन्न करने के लिए एक सही काम किया, जो कि मुझे चाहिए था। बहुत अच्छा!
टॉमिस्लाव नाकिक-अल्फेयरविक

17

VS2010 में यदि आप XML फ़ाइल को संपादक में लोड करते हैं, तो XML मेनू >> स्कीमा बनाएँ पर क्लिक करें।


3
और उच्च संस्करणों में
जे जे जे

12

वहाँ भी है XML schema learnerजो Github पर उपलब्ध है ।

यह कई xml फ़ाइलें ले सकता है और उन सभी फ़ाइलों से एक सामान्य XSD निकाल सकता है


1
ध्यान रहे यह टूल php में लिखा गया है, इसलिए यह सेटअप के लिए मामूली नहीं है।
79E09796

5
@ 79E09796 के साथ एक cli php इंस्टॉल करना sudo apt-get install php5-cliऔर रन करना ./learn --help--- मुझे वास्तव में उस और जावा, अजगर या रूबी में लिखे टूल के बीच का अंतर दिखाई नहीं देता है :)
edorian

1
बस विंडोज़ के तहत कोशिश की - किसी भी स्थापना के बिना php 5.4 के साथ महान काम किया। दोनों php और XML स्कीमा सीखने वाले ने बस अनजाने और पूर्ण पथों का उपयोग करके निष्पादित किया;)
vak

localityफ़ील्ड पर छोटी टिप्पणी : यदि XML में कई स्थानों पर अलग-अलग तत्वों का जिक्र करते हुए एक फ़ील्ड नाम का उपयोग किया जाता है , localityतो 1 से बड़े मूल्य की आवश्यकता होती है, उदाहरण के लिए root/itemऔर root/something/itemविभिन्न प्रकारों का संदर्भ लें, तो --locality 2न्यूनतम
shadi के

10

यदि आपके पास .Net स्थापित है, तो XSD स्कीमा और कक्षाएं उत्पन्न करने के लिए एक उपकरण पहले से ही डिफ़ॉल्ट रूप से शामिल है।
मेरे लिए, XSD टूल को निम्न संरचना के तहत स्थापित किया गया है। यह आपकी स्थापना निर्देशिका के आधार पर भिन्न हो सकता है।

C:\Program Files\Microsoft Visual Studio 8\VC>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.

xsd.exe -
   Utility to generate schema or class files from given source.

xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:]
xsd.exe <assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]

आम तौर पर वर्ग और स्कीमा जो इस उपकरण को अच्छी तरह से काम करते हैं, खासकर यदि आप उन्हें एक एनएएनएस भाषा में उपभोग करने जा रहे हैं

मैं आमतौर पर XML दस्तावेज़ लेता हूं जो मैं बाद में हूं, /o:<your path>स्कीमा (xsd) उत्पन्न करने के लिए ध्वज के साथ XSD टूल के माध्यम से इसे धक्का देता हूं और फिर /classes /L:VB (or CS) /o:<your path>कक्षाओं के माध्यम से टूल के माध्यम से xsd फ़ाइल को वापस धक्का देता हूं ताकि कक्षाएं प्राप्त कर सकें कि मैं आयात और उपयोग कर सकता हूं मेरे दिन से दिन .Net परियोजनाओं में


6

यदि आप चाहते हैं कि XSD है, तो LiquidXML का एक नि: शुल्क संस्करण है जो XSDs करता है, और इसके लिए एक GUI मिला है ताकि आप चाहें तो XSD को ट्विक कर सकें। वैसे भी आजकल मैं अपने एक्सएसडी को हाथ से लिखता हूं, लेकिन इसका सभी को धन्यवाद।

http://www.liquid-technologies.com/


4

यदि आप जावा दुनिया में काम कर रहे हैं - intelliJ विचार में भी xsd पीढ़ी सहित xml पीढ़ी और samle xml सहित व्यापक xml समर्थन है, और प्लगइन्स के साथ आप xslt डीबगर प्राप्त कर सकते हैं। - विशेष रूप से अच्छा है अगर आप बाद में जक्सब जैसे उपकरणों का उपयोग करने की योजना बनाते हैं।


2
और यह आइडिया के मुफ्त सामुदायिक संस्करण में भी उपलब्ध है।
lbalazscs


3

यह एक पुराना धागा है, लेकिन मुझे लगा कि यह इस लिंक को पोस्ट करने के लिए उपयोगी हो सकता है: बस इस उपकरण को पाया: XML से xsd-gen जनरेट XML योजनाएँ

और यह वही हुआ जो मुझे चाहिए था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.