1

我正在尝试在我的 xjb 生成的存根上添加不推荐使用的注释。

 <jaxb:bindings schemaLocation="../../../../../server/target/schemas/schema2.xsd">
      <jaxb:bindings node="xs:complexType[@name='someForms']/xs:all/xs:element[@name='detailsForm']">
          <annox:annotate target="getter">@java.lang.Deprecated</annox:annotate>
  </jaxb:bindings>
</jaxb:bindings>

它不会失败,但不会将 xml 属性放在字段上。这就是 xsd 的外观 -

<xs:complexType name="approvalForms">
    <xs:all>
       <xs:element name="detailsForm" type="formRef" minOccurs="0"/>
    </xs:all>
</xs:complexType>

但是,以下工作

<jaxb:bindings schemaLocation="../../../../../server/target/schemas/schema2.xsd">
  <jaxb:bindings node="xs:complexType[@name='someForms']">
     <annox:annotate>
        <annox:annotate annox:class="org.codehaus.jackson.annotate.JsonTypeName"
           value="SomeForm" />
     </annox:annotate>
  </jaxb:bindings>

我错过了什么吗?如何在 stub 的 getDetailsForm() 上添加 @Deprecated ?

4

1 回答 1

1

语法实际上看起来是正确的。可能是错误,请在此项目中通过 PR 提交问题并提供测试用例:

我会照顾它的。

顺便说一句,您的自定义与您的 XSD 不匹配:someFormsapprovalForms. 这也可能是一个问题——您可能正在寻找错误的课程。

免责声明:我是作者。

于 2015-02-02T08:36:47.630 回答