![](/img/trans.png)
[英]JAXB - Solution and strategies for “collision in the object factory class”
[英]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.