null可能なdouble値が必要

私は double という要素データ型を持つxsdスキーマを以下のように使います:


jaxB unmarschallerを使用して、適切なオブジェクトと属性を持つJavaクラスを作成します。結果は次のようになります。

protected double value;

今、xmlデータはnull値の要素を送ることができますが、私はxsdスキーマをDouble.classデータ型に適合させることができません。 Javaクラスの属性を上書きすることは可能ですか?

4

2 答え

nillable要素が送信された場合、スキーマは実際には次のようになります。


次に、JAXBは double の代わりに Double を使用する必要があります。

1
追加された
この情報をありがとう。私はこれについて顧客と話をしなければならないと思う)
追加された 著者 MartinVonMartinsgrün,

value要素をnillableにするためにXMLスキーマを変更できない場合は、JAXB外部バインディング・ファイルを使用して次の処理を実行できます。

外部バインディングファイル(binding.xml)

次のような外部バインディングファイルを使用できます。


    
        
            
                
            
      
   

XMLスキーマ - 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
追加された