首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用jaxb2基础知识生成toString方法时,如何使用绑定文件排除字段

在使用jaxb2基础知识生成toString方法时,如何使用绑定文件排除字段
EN

Stack Overflow用户
提问于 2015-10-12 10:30:15
回答 1查看 1.4K关注 0票数 1

old site上有一些文档,但不清楚在使用绑定文件时如何应用配置。

下面是我的maven配置,我使用它将toString、equals等添加到我生成的JAXB对象中。

代码语言:javascript
复制
  <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>
EN

回答 1

Stack Overflow用户

发布于 2015-10-12 10:30:15

将绑定到您的xsd的文件bindings.xjb添加到src/main/resources,选择相关元素,然后添加toString:ignored注释。

您还可以使用hashCode:ignore或从所有插件中忽略basics:ignore

代码语言:javascript
复制
    <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(...)方法中删除了适用的字段

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33072400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档