【问题标题】:JAXB xs:maxLength and minOccurs="0" didn't show in generated class by xsdJAXB xs:maxLength 和 minOccurs="0" 未在 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

【问题讨论】:

    标签: java xml jaxb xsd


    【解决方案1】:

    minOccurs="0"

    minOccurs@XmlElement 注释的required 属性中被捕获。

    xs:maxLength

    这不会在元数据中捕获。如果您希望验证您的对象数据,您可以在您的MarshallerUnmarshaller 上设置Schema 的实例。

    【讨论】:

    • Tnx 我非常尝试在编组阶段使用验证处理程序
    • 但是如果我不想在最终的 xml 结果中包含一个不尊重 maxLength 的节点,我该怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2011-07-03
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    相关资源
    最近更新 更多