Java 生成源中的Netbeans注释
我正在使用NetBeans 8.2。 我使用提供给我的JaxB和xsd模式生成了一些java源代码 (顺便说一下,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上,所有生成的文
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>
...