【发布时间】:2016-10-03 09:08:55
【问题描述】:
我有一个预定义的 XSD,如下所示:
<xs:element name="JavaClass1">
<xs:complexType>
<xs:sequence>
...
<xs:element name="Date1" type="xs:date" minOccurs="0">
</xs:element>
<xs:element name="DateList1" type="xs:date" minOccurs="0" maxOccurs="5">
</xs:element>
...
</xs:sequence>
</xs:complexType>
</xs:element>
为了从 XSD 生成 Java 类,同时将 XMLGregorianCalendar 替换为 java.util.Date,我使用了以下外部绑定:
<globalBindings>
<javaType
name="java.util.Date"
xmlType="xs:dateTime"
parseMethod="XsdDateTimeConverter.unmarshal"
printMethod="XsdDateTimeConverter.marshalDateTime"
/>
<javaType
name="java.util.Date"
xmlType="xs:date"
parseMethod="XsdDateTimeConverter.unmarshal"
printMethod="XsdDateTimeConverter.marshalDate"
/>
</globalBindings>
我找到了这个解决方案here。
现在,我只需要为 Date1 属性而不是 DateList1 执行此操作。有没有办法通过使用它的属性 maxOccurs="5" 来排除 DateList1?
【问题讨论】:
-
这个
javaType东西实际上与 Hyperjaxb 无关。那是纯粹的 JAXB 功能。
标签: java jpa xsd hyperjaxb xjb