im在项目中工作。a有一个带有某些属性的Java bean。我用标签@xmlelement标记每个属性,例如:
@XmlElement(name="id", nillable = true)
private String test;
我放了这个"可nillable",它向我展示了标签,即使null true,但它在null是null
时向我显示了一条消息<id xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
但是当它为零时,我只想用标签显示一个空值,例如
<id></id>
我不知道该怎么做。我搜索了,但我找不到是如何的,这就是我要问的原因。
以及更多1件事,我可以生成没有属性的XML吗?因为我是我的XML,我必须生成Aloot空白标签,而没有内部,只有标签,我不想让Aloot属于Aloot,如果我不会使用它来显示标签
谢谢!
我使用
的导入和某些配置import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="test")
---------解决方案---------------
嗨,伙计们,我找到了一个解决方案。我想分享是否有人陷入同一问题。您将班级的财产声明为空,类似字符串personname =";
他们不需要创建getters和setter,如果您不更改此值,而只想XML中的标签Apper
注意:对于这项工作,您必须使用@xmlaccessortype(xmlaccesstype.field)在您的课程中。谢谢大家。再见
有两种表示XML中null
值的方法。
一个选项是所描述的xsi:nil
。它只是为您的属性添加一个空标签,并将其注释为保留空值。如果您用nillable = true
注释您的属性,则该表格由JAXB生成。
请注意,en空标签与带有空字符串的标签不同 - 但稍后会更多。
另一个选项根本不表示该属性。XML中的属性不会有标签。JAXB默认使用此方法,如果您不使用nillable = true
注释Java代码,但是属性仍然具有null
值。
就是这样。
现在,您想实现的目标。渲染 <id></id>
基本上意味着您具有 id
属性,该属性容纳空字符串。尽管当它等效于null
值(例如Oracle的PL/SQL)时,您可能会找到一种语言,但显然它与Java中的null
值相当。
id
建模为Java Bean中的long
或int
(或任何非弦乐类型),则解析器将无法将此类XML归为bean实例。