gpt4 book ai didi

Java JaxB 生成,如何从我的 xsd 中获取 bigDecimal?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:43:34 27 4
gpt4 key购买 nike

我有一个 xsd 注释,我试图将其 Marshal 转换为 java 对象。我希望 java 最终以 BigDecimal 的值(value)结束。我要在 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;
}

最佳答案

A JAXB (JSR-222)实现将从 decimal 类型生成一个 java.math.BigDecimal(参见表 6-1JAXB 2.2 规范)。

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 schema.xsd

Java 模型(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;

...

}

关于Java JaxB 生成,如何从我的 xsd 中获取 bigDecimal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17822990/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com