我想解析并加载一个XML文档,但是当我在扩展XmlObject的类上调用解析方法时,我收到了这个异常。不幸的是,它没有给出我意想不到的元素的想法,这是我的问题。带有“Unexpected element:CDATA”消息的org.apache.xmlbeans.XmlException是什么意思?
我无法分享此代码,但我可以尝试在必要时提供更多信息。
我想解析并加载一个XML文档,但是当我在扩展XmlObject的类上调用解析方法时,我收到了这个异常。不幸的是,它没有给出我意想不到的元素的想法,这是我的问题。带有“Unexpected element:CDATA”消息的org.apache.xmlbeans.XmlException是什么意思?
我无法分享此代码,但我可以尝试在必要时提供更多信息。
不能共享代码或输入数据,您可以考虑以下方法。这是一个很普通的二分的方法来诊断,我很害怕,的确你可以很容易地开始吧...
尝试通过去除它的部分减少输入XML的大小,确保底层XML文档保持完好,并且可能有效(如果解析器设置中需要有效性)。如果你保持有效性,这可能需要修改Schema(DTD或其他)的副本,因为在切入和尝试方法期间可能会删除权限元素......顺便说一句,错误消息似乎更多地提示一个验证问题,即一个基本的良构性断言问题。
除非人们对触发解析器投诉的区域有特别的预感,否则我们通常会删除(或在工作开始时重新添加)大约一半之前剪切或重新添加的内容。
您也可以尝试使用大部分为空的文件来断言解析器确实可以工作......还有一种想法是“分而合之”:XML输入或解析器中的问题? (记住可能存在两个问题,一个是输入问题,另一个问题是解析器问题,甚至可能与此问题无关......)
对不起,您可能会流利使用的基本诊断技术..
您应该检查传递给方法parse()的参数; 如果你直接传递一个字符串来相应地解析或文件或输入流(File/InputStream/String)等。
异常是由XML文件的长度引起的。如果您添加或删除文件中的一个字符,解析器将会成功。
问题发生在XMLBeans依赖的第三方PiccoloLexer库中。它已在修订版959082中修复,但尚未应用于xbean 2.5 jar。
XMLBeans - Problem with XML files if length is exactly 8193bytes
有谷歌的一大堆命中这个..你有没有发现其中的任何照明? – skaffman
虽然你不能'共享代码',你可以共享XML文档本身或其中的一部分吗?或者,其他建议,你可以尝试使用另一个XML文档,它可以在普通的XML编辑器(如XML Notpad)中正常读取吗? – mjv
不能共享任何东西......专有的东西和所有的东西,并且XML文档在记事本中打开正常 - 它格式良好并根据模式进行验证 –