Java JaxB对象工厂是否将默认值填充到必需元素

Java JaxB对象工厂是否将默认值填充到必需元素,java,jaxb,Java,Jaxb,我们正在使用ObjectFactory类创建对象以封送xml文件。当我们创建新对象时,ObjectFactory类会将默认值填充到必需元素中 在XSD中: element name="MerchantCategoryCode" default="5541 爪哇: 引自: 当类具有默认值的元素属性时,如果值为null,封送拆收器将不会在XML中生成相应的元素 @XmlRootElement class Product { @XmlElement(defaultValue="Apple") p

我们正在使用ObjectFactory类创建对象以封送xml文件。当我们创建新对象时,ObjectFactory类会将默认值填充到必需元素中

在XSD中:

element name="MerchantCategoryCode" default="5541
爪哇:

引自: 当类具有默认值的元素属性时,如果值为null,封送拆收器将不会在XML中生成相应的元素

@XmlRootElement
class Product {
  @XmlElement(defaultValue="Apple") public String modelName=null;
}

 marshaller.marshal(new Product(),System.out);
上述各项的产出将为:

当元素不存在时,元素默认值不会出现在图片中,根据XSD,这是正确的

如果希望上述值包含默认值,只需在java级别分配它,如下所示:

 @XmlRootElement
class Product {
  @XmlElement public String modelName="Apple";
}


marshaller.marshal(new Product(),System.out);
以上各项的产出如下:

苹果

 @XmlRootElement
class Product {
  @XmlElement public String modelName="Apple";
}


marshaller.marshal(new Product(),System.out);