是否可以在使用XJC2Task生成Javaclasses时为每个complexType生成额外的子包?
我有一个问题从xsd生成我有一个名为Traveler的complexType,它有一个名为“ElementNumber”的元素。
但也有一个名为TravellerElementNumber的complexType。
生成i时收到错误“两个声明导致ObjectFactory类中的冲突。
有没有办法在不更改xsd的情况下修复此问题?
最诚挚的问候,
性病
答案 0 :(得分:0)
不,您无法为复杂类型OOTB生成子包。
是的,您可以在不更改架构的情况下修复它。使用jaxb:factoryMethod
绑定元素。
<jaxb:bindings version="1.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxb:bindings
schemaLocation="ogc/gml/3.1.1/base/feature.xsd"
node="/xs:schema">
<jaxb:bindings node="xs:element[@name='_FeatureCollection']">
<jaxb:factoryMethod name="AFeatureCollectionElement"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
您必须将绑定指向您遇到冲突的其中一个元素。别忘了包含绑定文件(参见this example)。