xsd到java的转换与默认出现的元素不同

sg24os4d  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(310)

给定xsd文件中的两个元素a和b。两者都是int类型,但区别在于 minOccurs="0" 而b不是。所以现在,当从这个xsd生成一个java类时,它包含一个 Integer 而b是 int . 请解释一下。

<?xml version="1.0" ?>
<xs:complexType name="SearchAB">
<xs:element name="a" minOccurs="0" type="xs:int">
<xs:annotation>`enter code here`
    <xs:documentation>a</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="b" type="xs:int">
<xs:annotation>
    <xs:documentation>b</xs:documentation>
</xs:annotation>
</xs:element>"
</xs:complexType>

java类:

protected Integer a;
protected int b;
cbeh67ev

cbeh67ev1#

案例b
默认情况下, minOccurs="1" 以及 maxOccurs="1" . 因此,只有一个整数元素(不能少也不能多),它可以有效地Map到一个简单的 int .
案例a
如果元素已设置 minOccurs="0" ,它是可选的。但是,在java中,int不能为null。那么你会用什么值来表示元素被省略了呢?为了处理这种可能性,该值因此被存储为 Integer 对象,可以是 null . 因此,如果元素存在 a 变量将具有整数值。否则,设置为 null 表示省略的元素。

相关问题