1

我面临一个奇怪的问题。我应该为 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 聚合为一个,或者至少生成一个抽象类结构,从而减少不相关的重复代码的数量?

4

0 回答 0