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

时间:2015-09-16 13:34:40

标签: maven jaxb2-maven-plugin

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

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

Google搜索此错误表明这是出于安全目的而放在jaxp上的限制。它可以在像这样的代码中禁用

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

但我需要在maven中这样做。此外,xjc有一个-nv开关来关闭此验证,这看起来像是要走的路。我无法改变xsd。

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

1 个答案:

答案 0 :(得分:3)

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

 <laxSchemaValidation>true</laxSchemaValidation>.