Java XML数据库存在与语法验证
我又来了:/ 我设法使exist数据库在嵌入式模式下运行。然而,我不能做的是隐式XML验证。 我按照这一页进行: 这是我的conf.xml:Java XML数据库存在与语法验证,java,xml,xsd,catalog,exist-db,Java,Xml,Xsd,Catalog,Exist Db,我又来了:/ 我设法使exist数据库在嵌入式模式下运行。然而,我不能做的是隐式XML验证。 我按照这一页进行: 这是我的conf.xml: <validation mode="auto"> <entity-resolver> <catalog uri="/db/catalog.xml" /> </entity-resolver> </validation> 这是我插入exist数据库的catalog.xml:
<validation mode="auto">
<entity-resolver>
<catalog uri="/db/catalog.xml" />
</entity-resolver>
</validation>
这是我插入exist数据库的catalog.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<uri name="http://www.w3.org/2001/XMLSchema" uri="videodes.xsd"/>
</catalog>
我的XML模式videodes.xsd也插入到数据库中,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
...
</xsd:schema>
我认为这个文件的全部内容都不重要,只会让这个问题变得太长
这是我插入数据库的videodes.xml文件,我想对它进行验证:
<?xml version="1.0" encoding="UTF-8"?>
<videodes xsi:noNamespaceSchemaLocation="videodes.xsd" xmlns=""
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</videodes>
同样,我认为没有必要把全部内容放在这里
不幸的是,验证不起作用,我可以在videodes.xml中插入无效数据。
我错过了什么?我想我的catalog.xml是个问题,但我不知道应该在里面放什么。我试着搜索了很多,但没有任何用处
我将感谢任何帮助,因为我真的需要使这项工作
提前感谢。查看我的,这可能会有所帮助。简言之,如果应用程序位于封闭的intranet中,则catalog.xml文件中是否存在DOCTYPE声明可能是问题所在,因为其系统标识符将无法解决。DOCTYPE声明不是必需的,只是为了验证文件,以便在生产中删除它