使用错误的URL验证jdoconfig

10

我正在使用jdo,并通过jdoconfig.xml配置持久性管理器。

然而,无论我在哪里查找有关jdoconfig.xml的文档,都会说明应该使用http://java.sun.com/xml/ns/jdo/jdoconfig进行验证。

<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">
etc

这个URL指向一个不存在的文件,我的XML验证器报告了一个错误。

使用它的目的是什么?我们能够相信这些URL永远不会改变吗?如果URL改变了,那么所有的XML文件都不能再通过验证了。

有人知道新的URL吗?

4个回答

26

xmlns不是一个真正的文件/目录,更像是一个命名空间,所以不应该存在!版本号被附加在末尾以获取真正的XSD文件,即http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd

也许是这样。

<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd">

那么xsi:noNamespaceSchemaLocation应该指向http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd吗? - jontro
1
xmlns= 后有两个引号。即使我删除其中一个,Eclipse 仍然报错。这是因为 java.sun.com 现在更改成了 www.oracle.com 吗?我们可以将 jdoconfig_3_0.xsd 包含在 META_INF 中并完成它吗?虽然我不知道我们从哪里可以获取它? - Yoichi

2
只需替换
xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">

使用

xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd"

1
这正是上面答案所述的 :) - jontro

0
在Eclipse中,构建路径指向Eclipse插件JAR包。当我清理(删除插件路径)我的构建路径时,突然出现了问题,所以我改变了xmlns路径,像下面这样,它就可以工作了。
    <?xml version="1.0" encoding="UTF-8" ?>
    <jdoconfig xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdoconfig"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdoconfig">  

0

将jdoconfigile更改为以下内容对我有用。

   <jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接