Java xjc和成吨的插曲文件

Java xjc和成吨的插曲文件,java,jaxb,xsd,xjc,Java,Jaxb,Xsd,Xjc,我一直在尝试使用JAXB-RI和xjc来为我的XSD生成类(当我说我的XSD时,我指的是做得很糟糕的XSD。稍后将对此进行详细介绍) 我遇到的第一个问题是,在整个设置中,我总共只有两个名称空间。尽管如此,在不同的文件中多次定义相同的内容,名称略有不同,但在XSD中没有区别。例如,我可以有两个XSD bar_v01_00.xsd <xsd:schema xmlns="http://www.foo.com/" targetNamespace="http://www.foo.com/" xmln

我一直在尝试使用JAXB-RI和xjc来为我的XSD生成类(当我说我的XSD时,我指的是做得很糟糕的XSD。稍后将对此进行详细介绍)

我遇到的第一个问题是,在整个设置中,我总共只有两个名称空间。尽管如此,在不同的文件中多次定义相同的内容,名称略有不同,但在XSD中没有区别。例如,我可以有两个XSD

bar_v01_00.xsd

<xsd:schema xmlns="http://www.foo.com/" targetNamespace="http://www.foo.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xsd:element name="foo">
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:element name="elem1" type="xsd:string" />
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>
而bar_v02_00.xsd将编译成

package www.foo.com.bar.Major02.Minor00;
诚然,这是不雅的,但很有效。现在,这些文件可以包含/导入,每个文件本身可以包含更多的包含/导入,其中一些可以深入32层!总的来说,这些包含是有原因的,即它们被多次重复使用

我有超过120个服务,每个服务都有一个请求和响应XSD,可能有一半有多个版本,如上所述。我已经设法将这个文件总数重构到636个,这可不是什么了不起的壮举

我不想将300份相同的常见内容生成到单独的包中,所以我尝试使用.eption文件。这是可行的,但仅限于3个深度的包含。如果我尝试包括超过3集,xjc就会死亡。我试着把这些片段放进一个jar文件中,然后意识到它只会以这种方式查找一个片段。如果我尝试将这些剧集的内容合并到一个文件中,它也不会起作用


有什么我能做的吗,或者我被困在这里了吗?

我找到了一个更好的方法,将所有相关的剧集文件添加到一个大文件中,以包括在内。这需要一些工作、一些解析和一些思考,但这一切都是自动化的,而且很有效

package www.foo.com.bar.Major01.Minor00;
package www.foo.com.bar.Major02.Minor00;