使用JAXB-API
2.3.1
和Java 8使用StringWriter
forJAXBMarshaller
:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"currencyCode",
"discountValue",
"setPrice"
})
@XmlRootElement(name = "countryData")
public class CountryData {
protected String currencyCode;
protected String discountValue = "";
protected String setPrice = "";
// setters and setters
}
StringWriter sw = new StringWriter();
jaxbMarshaller.marshal(countryDataObject, sw);
sw.toString();
<currencyCode>GBP</currencyCode>
<discountValue/>
<setPrice/>
<currencyCode>GBP</currencyCode>
<discountValue></discountValue>
<setPrice></setPrice>
不要初始化变量。使用nillable
属性并将其值设置为true
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "currencyCode", "discountValue", "setPrice" })
@XmlRootElement(name = "countryData")
public class CountryData {
@XmlElement(nillable=true)
protected String currencyCode;
@XmlElement(nillable=true)
protected String discountValue;
@XmlElement(nillable=true)
protected String setPrice;
// getters and setters
}
输出
<currencyCode>GBP</currencyCode>
<discountValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<setPrice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
问题内容: 我正在使用JAXB生成XML。但是JAXB会生成一个空的Tag来自我关闭。但是我的客户想要单独的空标签。我知道两者都是平等的,但他不同意我的看法。请任何人提出解决方案。谢谢。 样例代码: 实际输出: 预期产量: 编组代码: 我正在使用JDK 6.0 问题答案: 如果您已经从XSD生成了类,那么您还将生成ObjectFactory类。如果没有,请参考这里有关如何生成ObjectFacto
我正在使用Xerces库在文档中编写XML。为此,我使用OutputFormat类在XMLSerializer中传递OutputFormat的对象。但我所有的空xml元素都转换为自动关闭的xml元素。 我想要这个: 但它的到来就像 我尝试了以下代码: 有人能帮我解决这个问题吗。 谢谢
问题内容: 我需要在jaxb中将空值显示为空元素。我正在使用jaxb的moxy实现。我找到了这个选项 是否可以在类级别应用任何类似的扩展(对于其中定义的所有元素) 问题答案: 我强烈建议使用不存在节点或使用属性来表示。这与模式验证(即或不是有效的type元素)一起使用时效果最佳。但是,如果不能这样做,那么可以完成用例: 标准JAXB行为 使用标准的API,你可以控制NULL是表示为不存在的节点或与
我正在使用JAXB生成用于编组/解组XML的类。问题是父类的命名空间仅适用于XML中的父元素,而不适用于JAXB注释类中使用的子类。 我不知道我犯了什么错误。下面是我的xsd和xml以及类。 XSD: 项目Responses.xsd JAXB类 项目响应.java 项目响应.java Money.java XML输出: 包信息。java有以下条目 货币类别不在同一个包中。如何将其包含在 Jaxb
我有这种结构的xml文件: 有没有可能将这种XML解组到一个对象中。问题是每个元素都有一些独特的标签。我想把这些值放到列表中,但是我不知道怎么做。
如何使用JAXB生成以下结构?在我的例子中,我有一个动态属性列表,它可能有3种类型:整数、字符串或列表。但是,列表属性具有嵌套元素。我怎样才能做到这一点?