![](/img/trans.png)
[英]How do I specifiy the same namespace for all java classes when I want to generate a xsd-file with jaxb2?
[英]How do i exclude a field using a bindings file when using jaxb2 basics to generate the toString method
旧站点上有一些文档,但是不清楚在使用绑定文件时如何应用配置。
这是我用来将toString,equals等添加到生成的JAXB对象的Maven配置。
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaIncludes>
<include>*.xsd</include>
</schemaIncludes>
<args>
<arg>-Xfluent-api</arg>
<arg>-XautoNameResolution</arg>
<arg>-XtoString</arg>
<arg>-Xequals</arg>
<arg>-XhashCode</arg>
<arg>-Xcopyable</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-fluent-api</artifactId>
<version>3.0</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.9.4</version>
</plugin>
</plugins>
</configuration>
</plugin>
将文件bindings.xjb添加到src/main/resources
,该文件绑定到您的xsd,选择相关元素,然后添加toString:ignored
批注。
您还可以使用hashCode:ignore
,或从所有插件basics:ignore
<jaxb:bindings jaxb:version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:toString="http://jaxb2-commons.dev.java.net/basic/toString"
xmlns:basic="http://jaxb2-commons.dev.java.net/basic"
jaxb:extensionBindingPrefixes="basic copyable equals hashCode mergeable toString">
<jaxb:bindings schemaLocation="PasswordPolicy.xsd">
<jaxb:bindings node="xs:complexType[@name='ppValidatePolicyRequestType']//xs:element[@name='password']">
<toString:ignored/>
</jaxb:bindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="UserManagement.xsd">
<jaxb:bindings node="xs:complexType[@name='umCreateUserRequestType']//xs:element[@name='password']">
<toString:ignored/>
</jaxb:bindings>
<jaxb:bindings node="xs:complexType[@name='umUpdateUserRequestType']//xs:element[@name='password']">
<toString:ignored/>
</jaxb:bindings>
<jaxb:bindings node="xs:complexType[@name='umResetUserPasswordRequestType']//xs:element[@name='password']">
<toString:ignored/>
</jaxb:bindings>
<jaxb:bindings node="xs:complexType[@name='umCreateUserRequestType']//xs:element[@name='secretAnswer']">
<toString:ignored/>
</jaxb:bindings>
<jaxb:bindings node="xs:complexType[@name='umUpdateUserRequestType']//xs:element[@name='secretAnswer']">
<toString:ignored/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
如果您从toString中忽略,现在应该在生成的类中看到适用的字段已从appendFields(...)
方法中删除
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.