私は奇妙な問題に直面しています。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 プラグインなどを使用して、これらの SimpleTypes を 1 つに集約するか、少なくとも抽象クラス構造を生成して、無関係な重複コードの量を減らすことができるかということです。