JAXB xs:maxLength 和 minOccurs="0" 未在 xsd 生成的类中显示
Posted
技术标签:
【中文标题】JAXB xs:maxLength 和 minOccurs="0" 未在 xsd 生成的类中显示【英文标题】:JAXB xs:maxLength and minOccurs="0" didn't show in generated class by xsd 【发布时间】:2013-11-27 05:07:25 【问题描述】:我在 xsd 模式中有不同的复杂类型,我使用 Jaxb 在 java 类上呈现这个。我以这种方式在 javaclass 中展示了成功的复杂类型枚举:
<xs:element name="SistemaEmissione" type="SistemaEmissione" />
<xs:simpleType name="SistemaEmissione">
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:enumeration value="P"/>
<xs:enumeration value="G"/>
</xs:restriction>
</xs:simpleType>
但我无法在 java 生成的类中表达这个限制
<xs:element name="Master" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
minOccurs="0" 和 maxLength value="15" 都播种在生成的 java 类中。
任何人都可以帮助我吗? tnx
【问题讨论】:
【参考方案1】:minOccurs="0"
minOccurs
在@XmlElement
注释的required
属性中被捕获。
xs:maxLength
这不会在元数据中捕获。如果您希望验证您的对象数据,您可以在您的Marshaller
或Unmarshaller
上设置Schema
的实例。
【讨论】:
Tnx 我非常尝试在编组阶段使用验证处理程序 但是如果我不想在最终的 xml 结果中包含一个不尊重 maxLength 的节点,我该怎么办?以上是关于JAXB xs:maxLength 和 minOccurs="0" 未在 xsd 生成的类中显示的主要内容,如果未能解决你的问题,请参考以下文章