我面临一个奇怪的问题。我应该为 Web 服务使用许多第三方 XSD。我选择的框架是 Apache CXF,我使用它的 Maven 插件生成代码。到目前为止一切顺利,一切正常,生成和 Web 服务本身都没有问题。
但是,由于 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 聚合为一个,或者至少生成一个抽象类结构,从而减少不相关的重复代码的数量?