Ниже bean-компонент JAXB содержит два пространства имен, одно из которых "http://xyz/", а другое - пустое пространство имен в NO1 и NO2. Но вывод xml не определяет пустое пространство имен. Если я указываю значение, отличное от пустого, оно работает но для пустого это не так. Как я могу передать пустое пространство имен в NO1?
package com.abhi.test;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name ="errorData", namespace="http://xyz/")
@XmlType
@XmlAccessorType(XmlAccessType.FIELD)
public class ErrorData
{
@XmlElement(name="NO1", namespace="")
private String no1;
@XmlElement(name="NO2", namespace="")
private String no2;
public String getNo1() {
return no1;
}
public void setNo1(String no1) {
this.no1 = no1;
}
public String getNo2() {
return no2;
}
public void setNo2(String no2) {
this.no2 = no2;
}
public static void main(String[] args) {
try {
JAXBContext jaxbContext =
JAXBContext.newInstance(ErrorData.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
ErrorData data = new ErrorData();
data.setNo1("data1");
data.setNo2("data2");
jaxbMarshaller.marshal(data, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
Вывод вышеуказанного кода ниже xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:errorData xmlns:ns2="http://xyz/">
<NO1>data1</NO1>
<NO2>data2</NO2>
</ns2:errorData>
Однако я ищу ниже xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:errorData xmlns:ns2="http://xyz/">
<NO1 xmlns="">data1</NO1>
<NO2 xmlns="">data2</NO2>
</ns2:errorData>