jaxb как мы можем передать пустое пространство имен - PullRequest
0 голосов
/ 15 сентября 2018

Ниже 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>
...