当前位置: 首页 > 面试题库 >

JAXB Bean生成

养淇
2023-03-14
问题内容

我正在使用JAXB在Maven中使用JAXB插件从XSD生成bean。一切正常,希望代码包含每个字段的isSetXXXXXX()方法。

例如

对于字段 firstName ,它将产生以下代码:

@XmlElement(name = "FirstName", required = true)
    protected String firstName;

  public String getFirstName() {
        return firstName;
    }

 public void setFirstName(String firstName) {
        this.token = firstName;
    }

    public boolean isSetFirstName() {
        return (this.firstName!= null);
    }

这是isSetFirstName()方法引起的问题,我不希望JAXB生成这些问题。

有没有办法阻止这种行为?

谢谢。

更新

解决此问题:问题出在xjb文件中,generateIsSetMethod设置为true。

<xs:annotation>
   <xs:appinfo>
      <jaxb:globalBindings generateIsSetMethod="true">

      bindingStyle="modelGroupBinding"
         choiceContentProperty="true" >

           <xjc:serializable uid="12343"/>
           <jaxb:javaType name="short" 
              xmlType="xs:long" 
              printMethod="javax.xml.bind.DatatypeConverter.printShort"   
              parseMethod="javax.xml.bind.DatatypeConverter.parseShort"/>

      </jaxb:globalBindings>
   </xs:appinfo>
</xs:annotation>

问题答案:

默认情况下,JAXB(JSR-222)实现不会生成isSet方法。由于要获取它们,因此必须满足以下条件之一:

  1. 您可以指定以下架构注释: <jaxb:globalBindings generateIsSetMethod="true"/>
  2. 您有一个外部绑定文件,该文件指定: <jaxb:globalBindings generateIsSetMethod="true"/>
  3. 您正在为Maven插件指定属性以生成isSet方法。


 类似资料:
  • 我正在尝试生成android apk用于反应原生。通过https://facebook.github.io/react-native/docs/signed-apk-android.html#content给出的文档 1)生成密钥库 2) 设置 gradle 变量 3)将签名配置添加到应用程序的 gradle 配置 # 4) 生成签名 apk 以通过 android studio 发布 (buil

  • 服务器:版本:1.12.6 API版本:1.24 Go版本:Go1.6.3 Git提交:78D1802 build:Tue Jan 31 23:47:34 2017 OS/arch:linux/amd64 Docker--Version docker Version1.12.6,构建78D1802 docker-compose-版本docker-compose版本1.5.2,构建未知

  • 我试图建立APK,以张贴我的请求在离子在游戏商店。但是当涉及到下面的命令时,我得到了错误: PS c:\projetos\xxx>jarsigner-verbose-sigalg sha1withrsa-digestalg sha1-keystore android.keystore platforms/android/app/build/outputs/apk/release/app-relea

  • 我正在尝试将一个网站从Heroku迁移到AWS,但在代码构建方面遇到了麻烦。源代码在GitHub上,我使用的是CodePipeline-CodeBuild-Elastic Beanstalk。管道运行良好,代码似乎正在向Elastic Beanstalk过渡。然而,我被困在代码构建步骤。(buildspec.yml如下所示) 日志似乎可以很好地运行命令,但是当我将构建输出到S3存储桶时,没有构建文

  • 大约34小时前,我生成了一个签名的apk,但现在,我无法生成一个签名的apk,我不知道如何解决这个问题。请帮忙 这是我的输出消息 > 错误:任务“:app:LintVitalRelease”执行失败。 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获得完整的见解。 这是我的Build.Gradle(应用程

  • 我正在尝试生成我的第一个.apk,并且在过去几天中遇到了错误。我在stack overflow和github上搜索ans,但没有任何帮助 根据这里的说明,我可以构建调试版本,但是当运行<code>gradlew assembleerelease</code>时,我会出错 E:\p1\placementScript\android\app\build\intermediates\res\merged

  • 1、创建 list 的方式 之前经过我们的学习,都知道如何创建一个 list ,可是有些情况,用赋值的形式创建一个 list 太麻烦了,特别是有规律的 list ,一个一个的写,一个一个赋值,太麻烦了。比如要生成一个有 30 个元素的 list ,里面的元素为 1 - 30 。我们可以这样写: # -*- coding: UTF-8 -*- list1=list ( range (1,31) )

  • 这篇文档阐述了如何通过使用Django视图动态输出PDF。这可以通过一个出色的、开源的Python PDF库ReportLab来实现。 动态生成PDF文件的优点是,你可以为不同目的创建自定义的PDF -- 这就是说,为不同的用户或者不同的内容。 例如,Django在kusports.com上用来为那些参加March Madness比赛的人,生成自定义的,便于打印的 NCAA 锦标赛晋级表作为PDF