我有XJB绑定文件,我想用java.util.Date替换所有日期,并且我想要一个特定元素(名称为“ MyElementName”)来扩展我的自定义类:
My XJB file:
<jaxb:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
jaxb:version="2.0">
<!-- replace JAXBElement with real object where nillable="true" and minOccurs="0" -->
<jaxb:globalBindings generateElementProperty="false">
<!-- replace all dates with java.util.Date -->
<jaxb:javaType xmlType="xsd:dateTime" name="java.util.Date"
parseMethod="cz.i.sdp.nsessapi.util.DataTypeConverter.parseDateTime"
printMethod="cz.i.sdp.nsessapi.util.DataTypeConverter.printDateTime"/>
<jaxb:javaType xmlType="xsd:date" name="java.util.Date"
parseMethod="cz.i.sdp.nsessapi.util.DataTypeConverter.parseDateTime"
printMethod="cz.i.sdp.nsessapi.util.DataTypeConverter.printDateTime"/>
<jaxb:javaType xmlType="xsd:time" name="java.util.Date"
parseMethod="cz.i.sdp.nsessapi.util.DataTypeConverter.parseDateTime"
printMethod="cz.i.sdp.nsessapi.util.DataTypeConverter.printDateTime"/>
</jaxb:globalBindings>
<!-- Only element with name 'MyElementName' should extend
<jaxb:bindings schemaLocation="mySchema.xsd">
<jaxb:bindings node="//xs:element[@name='MyElementName']">
<xjc:superClass name="net.test.Whatever"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
除非XJC增强功能位于<globalBindings>
内,否则它们将被静默忽略。但是所有生成的类都将扩展我的自定义类,而我不想要那样。
是否可以将全局绑定与“作用域”绑定一起指定?
在here中提到了“全局范围”,“模式范围”,“定义范围”和“组件范围”,并且他们说:“特别地,朝向金字塔顶部的声明继承并取代了它们下方的声明”。