Java JAXB:缺少命名空间

Java JAXB:缺少命名空间,java,xml,namespaces,jaxb,Java,Xml,Namespaces,Jaxb,我试图从通过JAXB生成的类序列化XML 班级: package ws.avail; @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "pos", "uniqueID", "availStatusMessages" }) @XmlRootElement(name = "OTA_HotelAvailNotifRQ") public class OTAHotelAvailNoti

我试图从通过JAXB生成的类序列化XML

班级:

package ws.avail;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "pos",
    "uniqueID",
    "availStatusMessages"
})
@XmlRootElement(name = "OTA_HotelAvailNotifRQ")
public class OTAHotelAvailNotifRQ {
 ...
}
文件“package info.java”:

封送拆收器(简化而无错误处理):

此代码生成:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
<OTA_HotelAvailNotifRQ Version="1.000" Target="TEST">  
....

....
我期待这样的事情:

<?xml version="1.0" encoding="UTF-8"?>  
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.000" Target="TEST">  
....

....

我有一个类似的代码,工作正常,但我不明白为什么这段代码不显示名称空间。有线索吗?谢谢

您的映射是正确的

我试用了你的模型,它对我很有用:

演示

package ws.avail;

import java.io.StringWriter;
import javax.xml.bind.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        OTAHotelAvailNotifRQ rootElement = new OTAHotelAvailNotifRQ();
        StringWriter stringWriter = new StringWriter();

        JAXBContext context = JAXBContext.newInstance(rootElement.getClass());
        Marshaller marshaller = context.createMarshaller();
        marshaller.marshal(rootElement, stringWriter);
        System.out.println(stringWriter.toString());
    }

}
输出

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"/>


解决方案

通常当出现此问题时,
包信息
类未编译或未与应用程序打包


了解更多信息

package ws.avail;

import java.io.StringWriter;
import javax.xml.bind.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        OTAHotelAvailNotifRQ rootElement = new OTAHotelAvailNotifRQ();
        StringWriter stringWriter = new StringWriter();

        JAXBContext context = JAXBContext.newInstance(rootElement.getClass());
        Marshaller marshaller = context.createMarshaller();
        marshaller.marshal(rootElement, stringWriter);
        System.out.println(stringWriter.toString());
    }

}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"/>