繁体   English   中英

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

[英]Will the JaxB object factory populate default values to mandatory elements

我们正在使用ObjectFactory类创建对象以将其编组为xml文件。 创建新对象时,ObjectFactory类是否会将默认值填充为必填元素。

在XSD中:

element name="MerchantCategoryCode" default="5541

Java:

ObjectFactory ob = new ObjectFactory();
MyObject myOb  = ob.createMyObject();
myOb.getMerchantCategoryCode(); // giving null value

引用自: 元素默认值和编组
当类的元素属性具有默认值时,并且如果该值为null,则编组器将不生成XML中的相应元素。

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

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

上面的输出将是:<product />

缺少元素时,默认元素不会出现在图片中,这根据XSD是​​正确的。

如果您希望上述值包含默认值,只需在Java级别将其分配,如下所示:

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


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

上面的输出是:

<product> <modelName> Apple </ product>

暂无
暂无

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

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