2010-04-16 40 views
2

我不能讓我生成的類實現任何接口。JAXB,Netbeans和接口插入插件

這是我的XML schema文件:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"    
     xmlns:jxb="http://java.sun.com/xml/ns/jaxb/" 
     xmlns:ai="http://jaxb.dev.java.net/plugin/if_insertion" 
     jxb:extensionBindingPrefixes="ai"> 


    <xs:element name="header"> 
     <xs:annotation> 
      <xs:appinfo> 
       <ai:interfaces check="1"> 
        utility.RuleInterface 
       </ai:interfaces> 
      </xs:appinfo> 
     </xs:annotation> 

     <xs:complexType> 
      bla bla bla 
     </xs:complexType> 

    .... 

我檢查的JAXB選項「擴展」選項,我已經加入了xjc-if-ins.jar到我的項目屬性的「庫」部分。

但是生成的Header類沒有實現utility.RuleInterface

我可以弄清楚我做錯了什麼......它是否缺少了什麼?

回答

1

你真的啓動了插件嗎?有像-Xinheritance這樣的選項?

這裏是你可以使用另一個插件:

http://confluence.highsource.org/display/J2B/Inheritance+plugin

下面是一個樣本項目(Ant和Maven):

http://download.java.net/maven/2/org/jvnet/jaxb2_commons/jaxb2-basics-sample-po/0.5.2/

+0

在這裏https:// jaxb2-commo ns.dev.java.net/interface-insertion/它說我必須使用-extension選項,我認爲這是我檢查NetBeans上的「擴展」選項的方法。 只有現在我看到-Xifins選項...我想現在它會工作,太糟糕了不可能使用netbeans中的xese選項 – Segolas 2010-04-19 08:20:23

+0

您還需要使用像我指定的選項打開此特定插件。擴展是不夠的。 – lexicore 2010-04-19 08:24:43

+0

是的,我現在把它弄清楚了。 (我編輯了我的第一條評論)。 感謝您的回答! – Segolas 2010-04-19 08:26:29

1

又一個音符爲其他有同樣的問題。 XML模式文件中的元素應該寫成這樣:

<xs:complexType name="header"> 
    <xs:annotation> 
     <xs:appinfo> 
      <ai:interfaces check="0"> 
       utility.RuleInterface 
      </ai:interfaces> 
     </xs:appinfo> 
    </xs:annotation>   
</xs:complexType> 

和您可以參考他們:

<xs:element name="rule"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="header" type="header" maxOccurs="unbounded" /> 
       ... 
      </xs:sequence> 
     <xs:complexType> 

我的問題是,我宣佈了頭作爲<xs:element name="header">和我所指的元素與<xs:element ref="header" maxOccurs="unbounded" />和這種方法似乎不工作...