Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAXB-如何将包前缀应用于所有XSD_Java_Xsd_Jaxb_Prefix - Fatal编程技术网

Java JAXB-如何将包前缀应用于所有XSD

Java JAXB-如何将包前缀应用于所有XSD,java,xsd,jaxb,prefix,Java,Xsd,Jaxb,Prefix,我正在尝试处理的项目使用XSD模式的多个版本,其中包括数百个其他XSD文件,以形成完整的对象 我目前让JAXB使用一些自定义绑定为所有xsd文件生成代码,以删除重复项,但是当为一个较新版本生成相同的类文件时,它会覆盖原始版本 我需要为所有生成的类添加一个版本包前缀 这个问题问了同样的问题,但没有得到解决。 项目布局示例: Version1\test.xsd-----------------------------(package foo) Version1\externalXSDv1\exte

我正在尝试处理的项目使用XSD模式的多个版本,其中包括数百个其他XSD文件,以形成完整的对象

我目前让JAXB使用一些自定义绑定为所有xsd文件生成代码,以删除重复项,但是当为一个较新版本生成相同的类文件时,它会覆盖原始版本

我需要为所有生成的类添加一个版本包前缀

这个问题问了同样的问题,但没有得到解决。

项目布局示例:

Version1\test.xsd-----------------------------(package foo)
Version1\externalXSDv1\external.xsd---(package bar)
Version2\test.xsd-----------------------------(package foo)
Version2\externalXSDv2\external.xsd---(package bar)
xsd文件包含相同的命名空间,并且大多数类都是相同的

我需要在所有版本1生成的类前面加上'version1.foo'和'version1.bar',而版本2生成的类将显示为'version2.foo'和'version2.bar'

有什么办法吗


jaxb:schemaBindings不起作用,除非我指定每个xsd文件,并且-p将所有类放在同一个包中,这会剥离所有原始包。

您可以使用package name参数从每个目录运行命令4次?我已经尝试过了。由此产生的问题是,我必须生成的模式中至少包含100个xsd文件。我尝试了一些成功的插曲文件,但是各种xsd文件都在不同的包中相互引用,这导致在各地生成重复的类。您是否尝试使用外部
?我广泛使用绑定,但是我必须重新绑定至少100个(确切地说是303个)单独以包为目标。@Mciccarone如果您想为所有XSD定义一个不同的包,我想下面可能会有用。