我有一个预定义的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>
我在这里找到了一个解决方案:这里。
现在,我只需要针对属性Date1而不是DateList1执行此操作。是否有一种通过使用其属性
maxOccurs =“5”
来排除DateList1的方法?
javaType
的东西实际上与 Hyperjaxb 没有任何关系。这是纯粹的 JAXB 功能。 - lexicore