我正在使用 xsd 生成我的模型,以下是我的 xsd 文件之一,我正在使用它生成 Generator
模型,这里我的问题是我想要其中一个变量的类型是 Long
类类型,但我得到的是 long
premitive 数据类型。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc" jaxb:version="1.0">
<xsd:complexType name="Generator">
<xsd:sequence>
<xsd:element name="id" type="xsd:string" minOccurs="1" />
<xsd:element name="name" type="xsd:string" minOccurs="1" />
<xsd:element name="age" type="xsd:int" minOccurs="1" />
<xsd:element name="timestamp" type="xsd:long" minOccurs="1" />
</xsd:sequence>
</xsd:complexType>
生成的类是这样的:-
public class Generator
implements Cloneable, CopyTo, Equals, ToString
{
@XmlElement(required = true)
protected String id;
@XmlElement(required = true)
protected String name;
@XmlElement(required = true)
protected int age;
@XmlElement(required = true)
protected long timestamp;
// settter and getter methods
}
生成的 timestamp
值是 long
类型,但我想要它是 Long
类型
最佳答案
几天前我遇到了类似的问题。在玩 xsd 之后,我发现了以下两点:
- 如果需要该属性,则 xjc 将生成基本类型,例如整型,长型
- 如果该属性是可选的,那么您将拥有对象类型,例如整数、长整型等
这是有意义的,因为必填字段需要有默认值。回到您的案例,如果您希望 timestamp
为 Long,则删除 minOccurs
。希望对您有所帮助。
关于java - 如何在java中从xsd生成Long类类型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47504474/