трэба обнулять падвойнае значэнне

я выкарыстаць XSD схему з элементам тыпу дадзеных двайны , як гэта:


Я выкарыстоўваю unmarschaller JAXB стварыць клас Java з адпаведным аб'ектам і атрыбутамі. Вынік выглядае наступным чынам:

protected double value;

Цяпер дадзеныя xml можа адправіць NULLABLE элементы кошту, але я не ў стане, каб адпавядаць схеме XSD да тыпу дадзеных Double.class. Ці можна перапісаць атрыбут у класе Java?

4

2 адказы

Калі nillable элементы пасылаюць то схема павінна быць сапраўды:


Затым JAXB варта выкарыстоўваць Double замест двайны .

1
дададзена
Дзякуй за гэтую інфармацыю. Я думаю, я павінен пагаварыць з заказчыкам пра гэта;)
дададзена аўтар MartinVonMartinsgrün, крыніца

Калі вы не можаце змяніць схему XML, каб значэнне элемента nillable, то вы можаце зрабіць наступнае з вонкавымі прывязкамі файлам JAXB:

<Моцны> Знешнія Bindings File (binding.xml)

Вы можаце выкарыстоўваць вонкавы файл прывязак, як наступнае:


    
        
            
                
            
      
   

<Моцны> xml Schema - double.xsd

Вышэй прывязкі файл адносіцца да XML-схеме, якая выглядае наступным чынам:

<?xml version="1.0" encoding="UTF-8"?>

    
        
            
                
            
        
    

<Моцны> XJC Выклік

xjc -d out -b binding.xml double.xsd

<Моцны> Згенераваны клас

package generated;

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;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"value"})
@XmlRootElement(name = "Root")
public class Root {

    @XmlElement(required = true, type = Double.class)
    protected Double value;

    public Double getValue() {
        return value;
    }

    public void setValue(Double value) {
        this.value = value;
    }

}
1
дададзена