मेरे पास कई बड़ी डीटीडी फ़ाइलें हैं। मैंने एक्सएसडी फाइलों में कनवर्ट करने के लिए trang का उपयोग किया है, इसलिए मैं इसे आसानी से जेएक्सबी और अन्य उपयोगिताओं से उपयोग कर सकता हूं। हालांकि, जेनरेट की गई एक्सएसडी फ़ाइल में शीर्ष स्तर पर सभी घोषित तत्व हैं। इसका मतलब है कि कोई तत्व इनपुट एक्सएमएल का मूल तत्व हो सकता है। मैं केवल एक विशेष तत्व निर्दिष्ट करना चाहता हूं।परिभाषित रूट (प्रारंभ) तत्व के साथ डीटीडी से एक्सएसडी में कनवर्ट करें
इन एकाधिक रूट तत्वों को होने से कुछ समस्याएं होती हैं, उदा। xjc
सभी कक्षाओं के लिए @XmlRootElement
उत्पन्न करता है, इसलिए मुझे और अतिरिक्त चेक जोड़ने की आवश्यकता है।
मैं समझता हूँ के रूप में, मैं अगर सब कर सत्यापित करने के लिए element type
रों में, <xs:complexType>
रों करने के लिए उत्पन्न XSD पुनर्लेखन, चलती <xs:element>
रों बदलते element ref
रों और इतने पर करने की जरूरत है, लेकिन यह बहुत ज्यादा बंदर काम हो सकता है, कोई रास्ता नहीं के साथ सही ढंग से।
क्या ऐसा करने के लिए एक और अधिक प्रभावी तरीका है?
एक सवाल है कि समझ में आता है के लिए +1, लेकिन यह भी साफ किया DTD XSD करने के लिए रूपांतरण हमेशा केवल अनुमानित है कि बनाते हैं। –
@ जिर्काहनिका जैसा कि मैं समझता हूं कि उत्पन्न एक्सएसडी एक डीटीडी का अनुमान लगाता है। शायद DOCTYPE परिभाषाओं (हालांकि कोई आश्चर्य नहीं) और कुछ नामस्थान सामान को छोड़कर। इसके अलावा कुछ अजीब डीटीडी संरचनाओं को अच्छी तरह से एक्सएसडी में परिवर्तित नहीं किया जा सका। इस समय मुझे एकमात्र समस्या का सामना करना पड़ रहा है, कि डीटीडी रूट तत्व की धारणा को परिभाषित नहीं करता है। (RelaxNG इसे '' के साथ परिभाषित करता है, लेकिन यह खराब रूप से समर्थित है, 'xjc' इसके साथ विफल रहा है)। –
kan
हां लेकिन नेमस्पेस सामान एक बड़ी बात है।इसके अतिरिक्त कई संरचनाएं जिन्हें समान नाम दिया गया है, का अर्थ काफी अलग है। पहले जवाब में +1 क्योंकि यह किसी भी एक्सएसडी अर्थशास्त्र का नाटक नहीं करता है। –