Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “如何隐藏”;空=';正确'&引用;在jaxbxml中_Java_Xml_Jaxb - Fatal编程技术网

Java “如何隐藏”;空=';正确'&引用;在jaxbxml中

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

我通过JAXB生成了一个xml文件,其结果如下所示:

<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吗?