当 maxOccurs 大于 5000 时,jaxb2-maven-plugin 抛出异常

jaxb2-maven-plugin throws Exception when maxOccurs is greater than 5000

当我 运行 遗留的 jaxb2-maven-plugin xsd 它抛出这个异常:

解析器的当前配置不允许将 maxOccurs 属性值设置为大于值 5,000

谷歌搜索此错误表明这是出于安全目的对 jaxp 施加的限制。它可以在这样的代码中禁用

SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,false);

但我需要在 Maven 中执行此操作。此外,xjc 有一个 -nv 开关来关闭此验证,这看起来像是要走的路。我无法更改 xsd.

在 jaxb2-maven-plugin 中传递 -nv 开关的语法是什么?

我的同事 Vic Ganora 在 jaxb2-maven-plugin 的源代码中找到了答案。在 <plugin>...<configuration> 元素中,您需要添加

 <laxSchemaValidation>true</laxSchemaValidation>.