Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中如何从xsd生成长类类型变量_Java_Xml_Xsd - Fatal编程技术网

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

java中如何从xsd生成长类类型变量,java,xml,xsd,Java,Xml,Xsd,我正在生成使用xsd分类的模型,下面是我的一个xsd文件,我正在使用它生成生成器模型,这里我的问题是我希望其中一个变量的类型是Long class type,但我得到的是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.s

我正在生成使用xsd分类的模型,下面是我的一个xsd文件,我正在使用它生成生成器模型,这里我的问题是我希望其中一个变量的类型是Long class type,但我得到的是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>

生成的时间戳值是long类型,但我希望它是long类型

几天前我遇到过类似的问题。在使用xsd之后,我发现了以下两点:

如果该属性是必需的,那么xjc将使用基本类型(例如int、long)生成 如果该属性是可选的,那么您将拥有对象类型,例如Integer、Long等。
这是有意义的,因为必填字段需要有默认值。回到您的案例,如果您希望时间戳很长,那么删除minOccurs。希望有帮助。

几天前我也遇到过类似的问题。在使用xsd之后,我发现了以下两点:

如果该属性是必需的,那么xjc将使用基本类型(例如int、long)生成 如果该属性是可选的,那么您将拥有对象类型,例如Integer、Long等。
这是有意义的,因为必填字段需要有默认值。回到您的案例,如果您希望时间戳很长,那么删除minOccurs。希望有帮助。

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

对于您的情况,请尝试下面给出的选项4。它应该像对我一样有效

type=xs:long minOccurs=0 maxOccurs=1>生成-long value对象

type=xs:long minOccurs=0 maxOccurs=1 nillable=true>生成-JAXBElement值对象

type=xs:long minOccurs=1 maxOccurs=1>生成-long值原语

type=xs:long minOccurs=1 maxOccurs=1 nillable=true>Generates-long value对象
我知道回复得很晚,但它可能会帮助其他面临此类问题的人。

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

对于您的情况,请尝试下面给出的选项4。它应该像对我一样有效

type=xs:long minOccurs=0 maxOccurs=1>生成-long value对象

type=xs:long minOccurs=0 maxOccurs=1 nillable=true>生成-JAXBElement值对象

type=xs:long minOccurs=1 maxOccurs=1>生成-long值原语

type=xs:long minOccurs=1 maxOccurs=1 nillable=true>Generates-long value对象 我知道现在回复很晚,但这可能会帮助其他面临此类问题的人

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
}