Java 当required设置为true时,JAXB minOccurs将消失
我从@xmlement的JAXB文档中得到了这个 如果required()为true,则Javabean 属性映射到XML架构 元素声明 minOccurs=“1”。maxOccurs对于一个 单值属性与“无界” 对于多值属性 但是当我说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"/>
@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”