mzy*_*iol 6 java xsd jaxp xerces xml-parsing
我的问题是解析具有maxOccurs大于5000(但不是unbounded)的元素的XSD架构.
这实际上是Xerces(我正在使用的版本2.9.1)或JAXP中的一个已知问题,如下所述:http://bugs.sun.com/view_bug.do;jsessionid=85335466c2c1fc52f0245d20b2e?bug_id= 4990915
我已经知道,如果我将XSD中的maxOccurs数字从大于5000的数字更改为unbounded一切正常.遗憾的是,在我的情况下,这不是一个选项(我不能插入XSD文件).
我的问题是:
谢谢!
小智 12
我有同样的问题.我用过这个:
System.setProperty("jdk.xml.maxOccurLimit", "XXXXX");
Run Code Online (Sandbox Code Playgroud)
我找到了一个不需要更改解析器的解决方案.
有一个FEATURE_SECURE_PROCESSING功能可以对maxOccurs(以及其他几个)进行5000限制.
以下是描述限制的文档:http://docs.oracle.com/javase/7/docs/technotes/guides/xml/jaxp/JAXP-Compatibility_160.html#JAXP_security
xjc在控制台中使用命令时,我在寻找此问题的解决方案时遇到了这个线程。
对于使用xjc命令解析 xsd 的任何人,这对我有用:
$ xjc -nv foo.xsd
Run Code Online (Sandbox Code Playgroud)
但请注意:
默认情况下,XJC 绑定编译器在处理之前对源模式执行严格的验证。使用此选项可禁用严格的架构验证。这并不意味着绑定编译器不会执行任何验证,而是意味着它将执行不太严格的验证。
因此,如果您认为您的 xsd 来自一个好的来源,那么使用不太严格的验证应该不是问题。
| 归档时间: |
|
| 查看次数: |
9330 次 |
| 最近记录: |