当 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>.
当我 运行 遗留的 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>.