带有“Unexpected element:CDATA”消息的org.apache.xmlbeans.XmlException是什么意思?

时间:2009-09-10 19:02:30

标签: java xml xmlbeans xmlexception

我正在尝试解析并加载XML文档,但是当我在扩展XmlObject的类上调用parse方法时,我遇到了这个异常。不幸的是,它没有让我知道哪个元素是意外的,这是我的问题。

我无法为此分享代码,但我可以尝试在必要时提供更多信息。

3 个答案:

答案 0 :(得分:1)

无法共享代码或输入数据,您可以考虑以下方法。这是一种非常常见的二分法诊断方法,我担心,事实上你可能已经开始了......

尝试通过删除部分XML来减小输入XML的大小,确保底层XML文档保持良好格式且可能有效(如果解析器的设置需要有效性)。如果你保持有效性,这可能需要改变模式(DTD或其他)的[副本],因为在剪切和尝试方法期间可能会删除任务... ...顺便说一句,错误消息似乎暗示更多一个基本的良构性断言问题的验证问题。

除非对触发解析器投诉的区域有特别的预感,否则我们通常会删除(或重新添加,当事情开始工作时)大约是先前剪切或重新添加的一半。

你也可以从尝试一个基本上空的文件开始,断言解析器确实可以正常工作......还有一个想法是“划分为优先级”:是XML输入还是解析器中的问题? (记住可能有两个问题,一个在输入中,一个在解析器中,而这些问题甚至可能是无关的......)

对不起belabor基本的诊断技术,你可能会很流利...

答案 1 :(得分:1)

你应该检查你传递给方法parse()的参数; 如果你直接传递一个字符串来解析或文件或输入流(File / InputStream / String)等。

答案 2 :(得分:1)

异常是由XML文件的长度引起的。如果您在文件中添加或删除一个字符,解析器将会成功。

问题出现在XMLBeans所依赖的第三方PiccoloLexer库中。它已在修订版959082中修复,但尚未应用于xbean 2.5 jar。

XMLBeans - Problem with XML files if length is exactly 8193bytes

Issue reported on XMLBean Jira