2010-09-09 6 views
12

मुझे अपने एक्सएमएल स्कीमा (एक्सएसडी) से पैकेज (.jar) में कई कक्षाएं उत्पन्न करने की आवश्यकता है। मैं इन कक्षाओं को क्रमबद्ध करने के लिए कैसे कॉन्फ़िगर कर सकता हूं?एक्सएसडी से कक्षाएं कैसे उत्पन्न करें जो धारावाहिक लागू करता है?

(मैं ग्रहण और उपयोग कर रहा हूँ JAX-बी)

+1

सटीक अनुलिपि [कैसे एक जावा वर्ग जो XSD से Serializable इंटरफ़ेस लागू करता है JAXB का उपयोग कर उत्पन्न करने के लिए?] (Http://stackoverflow.com/questions/1513972/how-to -जनेरेट-ए-जावा-क्लास-जो-इम्प्लीमेंट्स-सीरियलज़ेबल-इंटरफ़ेस-से-xsd-usi) –

+0

@ पास्कल: क्षमा करें, मुझे – Topera

+0

से पहले कोई प्रश्न नहीं दिखाई दिया। लेकिन फिर भी, यह एक डुप्ली है :) –

उत्तर

20

आप XJC उपयोग कर रहे हैं, मैं तुम्हें सिफारिश इस संदर्भ पढ़ने के लिए: JavaTM Architecture for XML Binding: JAXB RI Vendor Extensions Customizations:

आप करने के लिए अपने स्कीमा aditional नामस्थान परिभाषा जोड़ने के लिए <jaxb:globalBindings> भीतर

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

      xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
      xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
      jaxb:extensionBindingPrefixes="xjc" 
      jaxb:version="1.0"> 

फिर, एक <xjc:serializable> नोड सहित: aditional मार्कअप xjc जोड़ने

<xs:annotation> 
    <xs:appinfo> 
     <jaxb:globalBindings generateIsSetMethod="true"> 
      <xjc:serializable uid="12343"/> 
     </jaxb:globalBindings> 
    </xs:appinfo> 
</xs:annotation> 

इससे सभी ठोस वर्ग Serializable इंटरफेस को लागू करेंगे। साथ ही, आप परिणामस्वरूप वर्गों के यूयूआईडी मान को परिभाषित कर सकते हैं (यह एक वैकल्पिक विशेषता है)।

+0

ás Tks! हमें एक ही लिंक मिला :)। मैं आपको +1 दूंगा और – Topera

+0

@ टोपेरा भी आपको धन्यवाद दूंगा। –

+0

और उसके बाद कमांड लाइन से कक्षाएं उत्पन्न करने के लिए। xjc -extension -d location_where_classes_to_be_generated xsd_location – Ashish

4

मैं

पाया है
<schema 
    xmlns="http://www.w3.org/2001/XMLSchema" 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    jaxb:extensionBindingPrefixes="xjc" 
    jaxb:version="1.0" 
    > 

    <!-- FORCE ALL CLASSES IMPLEMENTS SERIALIZABLE --> 
    <annotation> 
    <appinfo> 
     <jaxb:globalBindings generateIsSetMethod="true"> 
     <xjc:serializable uid="1"/> 
     </jaxb:globalBindings> 
    </appinfo> 
    </annotation> 

    .... 

</schema> 
की
संबंधित मुद्दे