9

java オブジェクトにマーシャリングしようとしている xsd 注釈があります。Java の値が BigDecimal になるようにしたいと思います。これを行うには xsd に何を入力すればよいですか? xjc ant タスクを使用しています

<xjc schema="my.xsd" destdir="generated" header="false" extension="true" />

関連するxsdは次のとおりです-

<complexType name="Size">
    <attribute name="height" type="BigDecimal"></attribute> <!-- this is wrong-->
</complexType>

生成されたクラスについてこれで終わりにしたいと思います-

public class Size { 
@XmlAttribute(name = "height")
    protected BigDecimal height;
}
4

2 に答える 2

2

私はこれを理解しました。答えは binding.xjb クラスを使用することです

バインディング =

<jxb:javaType 
     name="java.math.BigDecimal" 
     xmlType="xs:decimal"/>

蟻 -

<xjc schema="my.xsd" destdir="generated" binding="myBinding.xjb" header="false" extension="true" />

xsd =

<attribute name="height" type="decimal"></attribute>

これは、小数型としてマークされたものはすべて大きな小数に変わることを意味しますが、私の場合は問題ありません。これが他の誰かに役立つことを願っています。

于 2013-07-24T00:47:21.690 に答える