如何从java中的xsd生成Long类型变量

时间:2017-11-27 05:30:50

标签: java xml xsd

我正在使用xsd生成我的模型,以下是我的xsd文件之一,使用它我正在生成Generator模型,这里我的问题是我想要一个变量的类型是{{1} }类型,但我得到Long premitive数据类型。

long

Generated Class就像: -

<?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

1 个答案:

答案 0 :(得分:0)

我在XSD中也遇到了同样的问题,而我需要对象而不是原始对象。

对于您的情况,请尝试以下给出的选项4。它应该像对我一样起作用。

  1. type =“ xs:long” minOccurs =“ 0” maxOccurs =“ 1”>(生成)-长值(对象)

  2. type =“ xs:long” minOccurs =“ 0” maxOccurs =“ 1” nillable =“ true”>(生成)-JAXBElement值(对象)

  3. type =“ xs:long” minOccurs =“ 1” maxOccurs =“ 1”>(生成)-长值(原始)

  4. type =“ xs:long” minOccurs =“ 1” maxOccurs =“ 1”可填充 =“ true”>(生成)-长值(对象)< / li>

我知道这是一个很晚的答复,但它可能会帮助面临此类问题的其他人。