Java 当required设置为true时,JAXB minOccurs将消失

Java 当required设置为true时,JAXB minOccurs将消失,java,jaxb,jax-rs,jaxb2,Java,Jaxb,Jax Rs,Jaxb2,我从@xmlement的JAXB文档中得到了这个 如果required()为true,则Javabean 属性映射到XML架构 元素声明 minOccurs=“1”。maxOccurs对于一个 单值属性与“无界” 对于多值属性 但是当我说 @XmlElement(name = "Name", required = true, nillable = false) 我在.xsd中得到了以下内容 <xs:element name="Name" type="xs:string"/>

我从@xmlement的JAXB文档中得到了这个

如果required()为true,则Javabean 属性映射到XML架构 元素声明 minOccurs=“1”。maxOccurs对于一个 单值属性与“无界” 对于多值属性

但是当我说

@XmlElement(name = "Name", required = true, nillable = false)
我在.xsd中得到了以下内容

<xs:element name="Name" type="xs:string"/>

我想知道如何使minOccurs等于1。似乎
required=true
导致
minOccurs
消失

编辑 我意识到默认值是1。在.xsd中,minOccurs显示为1是否还有其他原因

<xs:element name="Name" type="xs:string"/>
Edit2
我正在使用JAXBContext.generateSchema生成模式(仅供参考)

我不是JAXB专家,但我相信默认情况下,“minOccurs”设置为1,带有xs:element标记。换句话说,如果标记中缺少“minOccurs”属性,则其默认值为1


编辑:抱歉,直到太晚了才看到您的编辑

xs:element的默认值是minOccurs=1。 因此,可以省略该属性,并且仍然具有相同的含义,这可能就是jaxb所做的


编辑:看到你的编辑太晚了。我从未见过这样做的方法,但这并不意味着这是不可能的。

JAXB规范定义了以下行为:

如果required()为true,则Javabean 属性映射到XML架构 元素声明 minOccurs=“1”。maxOccurs对于一个 单值属性与“无界” 对于多值属性

独立实现(,)可以根据此规则自由地生成XML模式。Metro和MOXy(我是技术负责人)选择不使用minOccurs属性来表示minOccurs=“1”