Java 生成源中的Netbeans注释

Java 生成源中的Netbeans注释,java,netbeans,jaxb,annotations,Java,Netbeans,Jaxb,Annotations,我正在使用NetBeans 8.2。 我使用提供给我的JaxB和xsd模式生成了一些java源代码 (顺便说一下,xsd模式是给定的,不应更改) 现在,为了能够正确地将对象封送到xml(例如具有正确的时间戳格式),我必须向生成的源添加一些注释,如下所示 @XmlJavaTypeAdapter(DateTimeAdapter.class) protected XMLGregorianCalendar timestamp; 一切顺利 但是,问题是,在clean和build上,所有生成的文

我正在使用NetBeans 8.2。

我使用提供给我的JaxBxsd模式生成了一些java源代码

(顺便说一下,
xsd
模式是给定的,不应更改)

现在,为了能够正确地将对象封送到
xml
(例如具有正确的时间戳格式),我必须向生成的源添加一些注释,如下所示

 @XmlJavaTypeAdapter(DateTimeAdapter.class)
    protected XMLGregorianCalendar timestamp;
一切顺利

但是,问题是,在clean和build上,所有生成的文件都会重新生成,添加的注释也会丢失

我能做些什么,以便:

  • 清理和构建将使生成的源保持不变
  • 清理和生成后,所需的注释会自动插入到生成的文件中
    我认为您想要归档的内容可以通过jax绑定定制来实现:

    通过外部文件对JAXB绑定进行自定义 包含绑定声明的一般形式如下所示

    
    *
    
    • schemaLocation是对远程架构的URI引用

    • node是一个XPath 1.0表达式,用于标识中的架构节点 与给定绑定声明关联的schemaLocation


    我认为您想要归档的内容可以通过jax绑定定制来实现:

    通过外部文件对JAXB绑定进行自定义 包含绑定声明的一般形式如下所示

    
    *
    
    • schemaLocation是对远程架构的URI引用

    • node是一个XPath 1.0表达式,用于标识中的架构节点 与给定绑定声明关联的schemaLocation


    因此,
    Netbeans
    中的
    jaxb
    绑定创建
    JaxBBindings
    目录,将绑定
    xsd
    文件放在其中

    我们需要做的是编辑这个
    xsd
    ,并添加适当的(内联)绑定定制。 请注意,为了编译以下内容,我必须在
    “更改JAXB选项”
    菜单中选中
    “使用扩展”
    (右键单击bindings子文件夹)

    
    ...
    ...
    
    因此,
    Netbeans
    中的
    jaxb
    绑定创建
    JaxBBindings
    目录,将绑定
    xsd
    文件放在其中

    我们需要做的是编辑这个
    xsd
    ,并添加适当的(内联)绑定定制。 请注意,为了编译以下内容,我必须在
    “更改JAXB选项”
    菜单中选中
    “使用扩展”
    (右键单击bindings子文件夹)

    
    ...
    ...
    
    感谢您的回复-这是一个正确的方向;-)所以,我正在投票,我将把我的最终解决方案作为一个单独的答案发布。谢谢你的回复-这是朝着正确的方向推进;-)所以,我正在投票,我将把我的最终解决方案作为一个单独的答案发布。
    <jxb:bindings schemaLocation = "xs:anyURI">
       <jxb:bindings node = "xs:string">*
          <binding declaration>
       <jxb:bindings>
    </jxb:bindings> 
    
    <xsd:schema ...
          xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
          xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
          jaxb:extensionBindingPrefixes="xjc"
    >
    ...
        <xsd:element name="Timestamp" type="xsd:dateTime">
             <xsd:annotation>
                  <xsd:appinfo>
                    <xjc:javaType name="javax.xml.datatype.XMLGregorianCalendar" adapter="myadapters.DateTimeAdapter"/>
                  </xsd:appinfo>
             </xsd:annotation>
         </xsd:element>
    ...