Java “如何隐藏”;空=';正确'&引用;在jaxbxml中
我通过JAXB生成了一个xml文件,其结果如下所示:Java “如何隐藏”;空=';正确'&引用;在jaxbxml中,java,xml,jaxb,Java,Xml,Jaxb,我通过JAXB生成了一个xml文件,其结果如下所示: <someData null="true"/> 是否有注释或其他机制可以生成一个输出,如果xml为nil,则该输出将从xml中删除某些数据,或者生成一个空元素,如下所示: <someData/> 为您的对象模型提供以下演示代码: package forum10437439; import javax.xml.bind.*; import javax.xml.namespace.QName; public cla
<someData null="true"/>
是否有注释或其他机制可以生成一个输出,如果xml为nil,则该输出将从xml中删除某些数据,或者生成一个空元素,如下所示:
<someData/>
为您的对象模型提供以下演示代码:
package forum10437439;
import javax.xml.bind.*;
import javax.xml.namespace.QName;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(someClass.class);
someClass someClass = new someClass();
someClass.setSomeData(null);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
JAXBElement<someClass> je = new JAXBElement<someClass>(new QName("root"), someClass.class, someClass);
marshaller.marshal(je, System.out);
}
}
用于UM10437439的包;
导入javax.xml.bind.*;
导入javax.xml.namespace.QName;
公开课演示{
公共静态void main(字符串[]args)引发异常{
JAXBContext jc=JAXBContext.newInstance(someClass.class);
someClass someClass=新的someClass();
someClass.setSomeData(空);
Marshaller=jc.createMarshaller();
setProperty(marshaller.JAXB_格式化的_输出,true);
JAXBElement je=新的JAXBElement(新的QName(“根”),someClass.class,someClass);
元帅,元帅(je,系统输出);
}
}
将生成您要查找的XML结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root/>
可能原因
您是否在包级别注册了一个
XmlAdapter
,它可能正在将String
的实例转换为您看到的表示形式?给定您的对象模型以下演示代码:
package forum10437439;
import javax.xml.bind.*;
import javax.xml.namespace.QName;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(someClass.class);
someClass someClass = new someClass();
someClass.setSomeData(null);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
JAXBElement<someClass> je = new JAXBElement<someClass>(new QName("root"), someClass.class, someClass);
marshaller.marshal(je, System.out);
}
}
用于UM10437439的包;
导入javax.xml.bind.*;
导入javax.xml.namespace.QName;
公开课演示{
公共静态void main(字符串[]args)引发异常{
JAXBContext jc=JAXBContext.newInstance(someClass.class);
someClass someClass=新的someClass();
someClass.setSomeData(空);
Marshaller=jc.createMarshaller();
setProperty(marshaller.JAXB_格式化的_输出,true);
JAXBElement je=新的JAXBElement(新的QName(“根”),someClass.class,someClass);
元帅,元帅(je,系统输出);
}
}
将生成您要查找的XML结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root/>
可能原因
您是否在包级别注册了一个
XmlAdapter
,它可能正在将String
的实例转换为您看到的表示形式?不包括空元素是默认行为。注释看起来不错。您可以发布您的代码片段来说明如何调用JAXB吗?不包含null元素是默认行为。注释看起来不错。您可以发布您的代码片段来说明如何调用JAXB吗?