读书人

JAVA解释XML时setValidating替true的时

发布时间: 2013-01-09 09:38:15 作者: rapoo

JAVA解释XML时setValidating为true的时候报错
本帖最后由 Jason20Ming 于 2010-08-09 22:30:50 编辑 情况如下:

在/src目录下有一个access-rules.xml文件及其对应的schema文件access-rules.xsd

xml头部描述如下:

<?xml version="1.0" encoding="UTF-8"?>
<lms:access-rules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://qnear.com/access-rules" xmlns:lms="http://qnear.com/access-rules"
xsi:schemaLocation="http://qnear.com/access-rules access-rules.xsd ">


在Eclipse中,能通过编辑器的校验,没有红叉。但是使用Java的解释器去读取的时,如果将DocumentBuilder的setValidating(true)的话,就会有如下的错误提示,如果让其默认不校验的话就不会有任何错误。

Error: URI=null Line=4: Document root element "lms:access-rules", must match DOCTYPE root "null".
Error: URI=null Line=4: Document is invalid: no grammar found.


但是我明明配置了schema已经命名空间的了,为何还提示“no grammar found”呢?
[解决办法]
access-rules.xsd 是否有放在你应用程序的文件夹下呢?
估计还是相对路径的问题,还不然你直接用绝对路径。

读书人网 >XML SOAP

热点推荐