我面临一个奇怪的问题。我应该使用一些第三方XSD来进行网络服务。我选择的框架是Apache CXF,我使用它的Maven插件生成代码。到目前为止一切顺利,一切正常,无论是生成还是网络服务本身都存在问题。
但是,由于XSD的作者很奇怪而且我自己无法改变它们,我遇到了一个问题:它们使用了许多基本上重复的SimpleType定义。他们都有自己的名字,但做同样的事情。
示例:
<xs:simpleType name="VehicleFittedWithEcoInnovInd">
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:enumeration value="Y"/>
<xs:enumeration value="N"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TypeApprTranspDangerGoodsInd">
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:enumeration value="Y"/>
<xs:enumeration value="N"/>
</xs:restriction>
</xs:simpleType>
还有更多(数字,字符串定义等)。
所以问题是,是否有可能通过jaxb-plugin或类似方法将这些SimpleType聚合为一个,或至少生成一个抽象类结构,以便减少不相关重复代码的数量?