我有一个xsd注释,我正试图将它编组到一个java对象中。我希望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;
}发布于 2013-07-24 09:41:06
JAXB (JSR-222)实现将从decimal类型生成java.math.BigDecimal (请参见JAXB2.2规范中的表6-1 )。
XML架构(schema.xsd)
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/schema"
xmlns:tns="http://www.example.org/schema"
elementFormDefault="qualified">
<element name="foo">
<complexType>
<sequence>
<element name="bar" type="decimal"/>
</sequence>
</complexType>
</element>
</schema>XJC调用
xjc schema.xsdJava Model (Foo)
package org.example.schema;
import java.math.BigDecimal;
import javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"bar"})
@XmlRootElement(name = "foo")
public class Foo {
@XmlElement(required = true)
protected BigDecimal bar;
...
}发布于 2013-07-24 08:47:22
我想通了。答案是使用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>这意味着任何标记为decimal类型的东西都会变成一个大的decimal,但在我的例子中,这是可以的。希望这对其他人有帮助。
https://stackoverflow.com/questions/17822990
复制相似问题