2011-05-19 50 views
1

這裏我再次:/ 我設法使存在數據庫運行在嵌入式模式。但是,我無法做的工作是隱式的XML驗證。 http://exist.sourceforge.net/validation.htmlXML數據庫eXist和語法驗證

這是我conf.xml中:

<validation mode="auto"> 
    <entity-resolver> 
    <catalog uri="/db/catalog.xml" /> 
    </entity-resolver> 
</validation> 

這是我的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是問題,但我不知道我應該放在裏面。我試圖搜索很多,但它沒有任何用處。

我會感謝任何幫助,因爲我真的需要做這項工作。

提前致謝。

回答

0

查看我的answer to a different question,其中可能有幫助。簡而言之,如果您的應用程序位於一個封閉的Intranet中,那麼catalog.xml文件中DOCTYPE聲明的出現可能是問題,因爲它的系統標識符將無法解析。 DOCTYPE聲明不是必需的(除了驗證文件),因此在生產時將其刪除。