繁体   English   中英

如何在生成的JAXB类中构造XSD以使其具有原始包装而不是原始类型?

[英]How can I construct XSD to have primitive wrapper instead of primitive type in generated JAXB class?

我的XSD中具有以下属性:

<xs:attribute name="fromFraction" type="xs:float" use="optional" default="0.0"/>

我从此XSD生成类,并且将属性创建为float ,然后如果没有此类中的该属性,就无法编组XML(据我所知,在这种情况下,它将始终具有将被编组的某些值)。

如何在绑定期间更改XSD以创建Float类型 ,以便在此字段中可以使用null(以便在编组期间将其省略)?

或者,也许有更好的方法从不存在的XML中删除此属性?

据此: http : //reast.net/2009/08/jaxb-generating-primitive-type-getters/及其参考: http : //docs.oracle.com/cd/E17802_01/webservices/webservices/docs/ 1.5 / JAXB / vendorCustomizations.html#序列化

您应该将此添加到您的XSD:

<xs:annotation>
   <xs:appinfo>
      <jaxb:globalBindings>
          <xjc:serializable uid="12343"/>
      </jaxb:globalBindings>
   </xs:appinfo>
</xs:annotation>

我在binding.xjb文件中有以下代码,我曾经用来生成类:

<jxb:globalBindings optionalProperty="primitive"/>

当我删除它时,生成的类包含适当的原始包装器,正如我想要的那样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM