2013-05-10 64 views
2

我的問題是,我有兩個架構A.xsd B.xsd根元素已經被定義JAXB

它們共用同根生,我要去嘗試例證

A.xsd 
<xs:element name="A"> 
    <xs:complexType> 
     .my elements on A 
    </xs:complexType> 
</xs:element> 

B.xsd 
<xs:element name="A"> 
    <xs:complexType> 
    .my elements on B 
    </xs:complexType> 
</xs:element> 

當我嘗試生成類的輸出是元素'A'已經定義。 因此,我創建,定義爲xsd甲綁定文件,對於元件A創建了一個類C,併爲XSD B創建的元素A類d

X.xjb 
<bindings schemaLocation="A.xsd"> 
    <bindings node="//xs:element[@name='A']"> 
    <class name="C"> 
    </bindings> 
</bindings> 

<bindings schemaLocation="B.xsd"> 
    <bindings node="//xs:element[@name='A']"> 
    <class name="D"> 
    </bindings> 
</bindings> 

但是沒有工作時,其輸出相同的錯誤,'A'已經定義好了,所以我試着用屬性代替綁定文件中的類。

X.xjb 
<bindings schemaLocation="A.xsd"> 
    <bindings node="//xs:element[@name='A']"> 
    <property name="C"> 
    </bindings> 
</bindings> 

<bindings schemaLocation="B.xsd"> 
    <bindings node="//xs:element[@name='A']"> 
    <property name="D"> 
    </bindings> 
</bindings> 

,沒有工作或者

他們沒有一個目標名稱

任何人做過這樣的事情?

回答

2

只要指定他們to different Java packages,你應該沒問題。

<jxb:schemaBindings> 
    <jxb:package name="primer.myPo"> 
     <jxb:javadoc> 
      <![CDATA[<body> Package level documentation for generated package primer.myPo.</body>]]> 
     </jxb:javadoc> 
    </jxb:package> 
    <jxb:nameXmlTransform> 
     <jxb:elementName suffix="Element"/> 
    </jxb:nameXmlTransform> 
</jxb:schemaBindings> 
+0

沒有工作,同樣的錯誤 – Mattos 2013-05-13 22:03:44

+0

@ user2370372,你能不能請張貼XJC命令行或參數等? – 2013-05-14 18:04:08

+0

當然,我使用的參數是-npa和-b mybindingfile.xjb – Mattos 2013-05-15 12:32:55