2012-12-23 160 views
2

我是XML新手。我很困惑DTD文檔如何驗證XML文檔。以下是我的代碼,如果我錯了,請糾正我。使用dtd文檔驗證xml文檔

<?xml version="1.0" encoding="iso-8859-1"?> 

<!DOCTYPE note 
[ 
<!ELEMENT note (to,from,heading,body)> 
<!ELEMENT to (#PCDATA)> 
<!ELEMENT from (#PCDATA)> 
<!ELEMENT heading (#PCDATA)> 
<!ELEMENT body (#PCDATA)> 
]> 

<note> 
<to>Tove</to> 

<rom>Jani</rom> // Here i've miss-spelled the tag <from> but still not getting error 

<heading>Reminder</heading> 
<body>Don't forget me this weekend!</body> 
</note> 

我知道一個DTD用於驗證XML數據。元素名稱爲<form>。我剛剛將<form>的拼寫更改爲<rom>,但仍未在我的瀏覽器中收到任何錯誤消息。我被困在這一點上。

+0

我認爲大多數瀏覽器並不是爲了驗證XML,而是爲了儘可能好地呈現標記。我會建議使用外部工具進行驗證。例如,我只是發現http://www.xmlvalidation.com來得心應手。 – hielsnoppe

+0

那麼如果有人想要以XML的形式發送和接收數據,那麼最好的方法是什麼。如何使用DTD驗證數據 – luckyali444

+0

我不確切知道您的發送/接收是什麼意思,但顯然您需要驗證服務器端的DTD(如果有涉及的服務器)的XML文件。以下是使用Java的XML驗證示例:[XML驗證](http://stackoverflow.com/questions/1332686/java-xml-dtd-validation)。 – izilotti

回答

1

歡迎來到XML社區。

您將需要爲XML找到並使用驗證解析器;如果你想使用網絡瀏覽器,你可能會感到失望。默認情況下,較早版本的Internet Explorer針對DTD驗證XML;新版本不(但我相信你可以配置他們這樣做,如果你能弄清楚如何)。基於Mozilla的瀏覽器根本沒有驗證XML解析器。

大多數認真使用XML的人最終會使用特定於XML的工具進行驗證。在我的最愛了命令行驗證是

  • xmllint(命令行界面libxml2的,這是Gnome項目的一部分,但也可以使用Gnome的外面)

  • RXP(理查德·託賓愛丁堡大學)的

  • 的XercesĴ,Xerces的C(這些都是Apache項目)

還有XML的EDI在編輯器內提供集成驗證(有時來自您選擇的幾個解析器)。

+0

@Sperberg如果您已經提到哪些支持XML的編輯器提供集成驗證,那將會很棒。 – denim