我对此有一个中途解决方法,但是这非常耗时。我必须<execution/>
为每个具有重复条目的文件创建一个单独的文件。
<executions>
<execution>
<id>jaxb-mac</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<forceRegenerate>true</forceRegenerate>
<generatePackage>my.company.mac</generatePackage>
<schemaDirectory>src/main/schema</schemaDirectory>
<schemaIncludes>
<include>mac-3.4.xsd</include>
</schemaIncludes>
</configuration>
</execution>
<execution>
<id>jaxb-stylesheet</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<forceRegenerate>true</forceRegenerate>
<generatePackage>my.company.stylesheet</generatePackage>
<schemaDirectory>src/main/schema</schemaDirectory>
<schemaIncludes>
<include>mac-stylesheet-3.4.xsd</include>
</schemaIncludes>
</configuration>
</execution>
这个<forceRegenerate>true</forceRegenerate>
很重要,或者只有第一个<execution/>
会运行,其余的会认为没有必要运行,因为我正在生成同一个目录。
我仍然希望使用劳动强度较小的解决方案来处理重复项。
我认为,如果我将第一个主.xsd制作成一个单独的模块,并将其内置到自己的.jar文件中,那么我可以使用<episode/>
标签,并让它跳过一遍又一遍地生成相同的重复元素,因为它们的定义相同。
从那以后,我决定尽可能放弃XML并完全放弃JAXB。 从此编辑开始,有更新更好的方法来解析XML并将其映射到对象。