2011-01-24 13 views
8

में पार्सिंग परिणाम अगर यह एक डुप्लिकेट है तो मुझे क्षमा करें। यहाँ मेरी binding.xjb फ़ाइल है। लेकिन अब मुझे नियमित त्रुटि मिल रही है कि जटिल प्रकार का लक्ष्य "AddBankVaultRplyType" नहीं मिला है। मुझे कोई समस्या नहीं दिख रही है। क्या कोई मेरी इस बारे में मदद कर सकता है? मैं XSD कि मैंजेएक्सबी बाहरी कस्टम बाध्यकारी एक्सजेसी अंक - खाली नोड

<jxb:bindings 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
xmlns:pd="http://chubb.com/cpi/polsvc/xmlobj" 
xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance" 
jxb:extensionBindingPrefixes="inheritance" 
jxb:version="2.1" 
> 


<jxb:bindings node="/xs:schema/xs:ServiceReply/xs:complexType[@name='AddBankVaultRplyType']"> 
<inheritance:extends>com.print.poc.AddressTypeHelper</inheritance:extends> 
</jxb:bindings> 

यहाँ अनुकूलित करने के लिए कोशिश कर रहा हूँ है XSD का टुकड़ा है कि मैं

<xs:schema xmlns:pd="http://com/polsvc/xmlobj" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://com/polsvc/xmlobj" elementFormDefault="qualified" attributeFormDefault="unqualified"> 
<xs:complexType name="AddBankVaultRplyType"> 

</xs:complexType> 
<xs:element name="ServiceReply"> 
    <xs:complexType> 
    <xs:sequence> 
    <xs:element name="ReplyHeader" type="pd:MsgHeaderType"/> 
    <xs:element name="RequestHeader" type="pd:MsgHeaderType"/> 
    <xs:choice> 
    <xs:element name="AddBankVaultReply" type="pd:AddBankVaultRplyType"/> 
</xs:choice> 
</xs:sequence> 
    </xs:complexType> 
</xs:element> 
</xs:schema> 

अनुकूलित करने के लिए अब कोशिश कर रहा हूँ लिस्टिंग हूँ अगर मैं चलाने XJC यह मुझे कह रहा है कि लक्ष्य "/xs:schema/xs:ServiceReply/xs:complexType[@name='AddBankVaultRplyType']" खाली नोड में परिणाम। मैं यहां क्या गलती कर रहा हूं

उत्तर

8

आपको एक बाइंडिंग में लपेटने की आवश्यकता होगी जिसमें स्कीमा स्थान सेट है। अधिक जानकारी के लिए

<jxb:bindings 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:pd="http://chubb.com/cpi/polsvc/xmlobj" 
    xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance" 
    jxb:extensionBindingPrefixes="inheritance" 
    version="2.1"> 
    <jxb:bindings schemaLocation="your-schema.xsd"> 
     <jxb:bindings node="//xs:complexType[@name='AddBankVaultRplyType']"> 
      <inheritance:extends>com.print.poc.AddressTypeHelper</inheritance:extends> 
     </jxb:bindings> 
    </jxb:bindings> 
</jxb:bindings> 

:: यह की तरह कुछ होना चाहिए

+0

हाय ब्लेज, बाहर काम नहीं। एक ही त्रुटि फेंक दिया जा रहा है !! – Shiv

+0

शिव - मैंने अपना जवाब अपडेट किया है, इसे अब बेहतर काम करना चाहिए। –

+3

फिर से धन्यवाद। ऐसा लगता है कि यह ठीक काम करता है लेकिन यह इस त्रुटि को दिखा रहा है। एक स्कीमा ... [त्रुटि] असमर्थित बाध्यकारी नामस्थान "http://jaxb2-commons.dev.java.net/basic/inheritance"। शायद आप "http://java.sun.com/xml/ns/jaxb/xjc" का मतलब था? – Shiv

4

मैं अंत में मिल गया मेरा उपवर्गीकरण साथ workign उन डांग complexTypes कि उपयोग किया जाता है के लिए @XmlRootElement जोड़ने के साथ ही रूट तत्व द्वारा (मुझे नहीं पता कि जेएक्सबी इसे मेरे लिए क्यों नहीं जोड़ता है, लेकिन यह ऐसा करने की चाल है क्योंकि JAXB नहीं करता है)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<jaxb:bindings 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:annox="http://annox.dev.java.net" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd 
        http://annox.dev.java.net " 
    jaxb:extensionBindingPrefixes="xjc annox" 
    version="2.1"> 

    <jaxb:globalBindings> 
    <jaxb:serializable uid="1"/> 
    <!-- All generated classes must have MySignature interface (supplied in dependencies) --> 
    <xjc:superClass name="com.cigna.framework.DataObject"/> 
    <xjc:superInterface name="com.cigna.framework.InterfaceTest"/> 
    <!-- All temporal fields are implemented as Joda DateTime and use DateUtils as an adapter --> 
    <jaxb:javaType 
     name="org.joda.time.DateTime" 
     xmlType="xs:time" 
     parseMethod="com.cigna.framework.util.DateUtil.stringToDateTime" 
     printMethod="com.cigna.framework.util.DateUtil.dateTimeToString" 
     /> 
    </jaxb:globalBindings> 



    <!-- Application of annotations to selected classes within schemas --> 

    <!-- org.example.SomeRootType @XmlRootElement --> 
    <jaxb:bindings schemaLocation="../schemas/externalaction_2012_03.xsd" node="/xs:schema"> 
    <jaxb:schemaBindings > 
     <jaxb:package name="com.framework.action"></jaxb:package> 
    </jaxb:schemaBindings> 

    </jaxb:bindings> 

    <jaxb:bindings schemaLocation="../schemas/common_2012_04.xsd" node="/xs:schema"> 
    <jaxb:schemaBindings > 
     <jaxb:package name="com.framework.common"></jaxb:package> 
    </jaxb:schemaBindings> 

    <jaxb:bindings node="xs:complexType[@name='PersonNameType']"> 
     <annox:annotate> 
     <annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement" name="SomeRootType"/> 
     </annox:annotate> 
    </jaxb:bindings> 
    </jaxb:bindings> 

    <jaxb:bindings schemaLocation="../schemas/utilities_2012_03.xsd" node="/xs:schema"> 
    <jaxb:schemaBindings > 
     <jaxb:package name="com.framework.util"></jaxb:package> 
    </jaxb:schemaBindings> 

    </jaxb:bindings> 

</jaxb:bindings> 

बेशक मैंने pom.xml के साथ संघर्ष किया लेकिन आखिरकार इस समाधान में आया जो मेरे लिए काम करता था।

 <plugin> 
      <groupId>org.jvnet.jaxb2.maven2</groupId> 
      <artifactId>maven-jaxb2-plugin</artifactId> 
      <version>0.8.1</version> 
      <executions> 
       <execution> 
        <id>process-xsd</id> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <phase>generate-sources</phase> 
        <configuration> 
         <schemaIncludes> 
          <include>schemas/*.xsd</include> 
         </schemaIncludes> 
         <bindingIncludes> 
          <include>schemas/*.xjb.xml</include> 
         </bindingIncludes> 
         <generateDirectory>${project.build.directory}/generated-sources</generateDirectory> 
         <extension>true</extension> 
         <args> 
          <arg>-Xannotate</arg> 
         </args> 
         <plugins> 
          <plugin> 
           <groupId>org.jvnet.jaxb2_commons</groupId> 
           <artifactId>jaxb2-basics-annotate</artifactId> 
           <version>0.6.3</version> 
          </plugin> 
          <plugin> 
           <groupId>org.jvnet.jaxb2_commons</groupId> 
           <artifactId>jaxb2-basics</artifactId> 
           <version>0.6.3</version> 
          </plugin>        
         </plugins> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin>   

बाद में, डीन

+0

क्या आपने कक्षाओं या बस एमवीएन स्वच्छ पैकेज बनाने के लिए एक विशेष मेवेन कमांड का उपयोग किया था? –

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