我有以下的,很簡單的XML文件(顯著削減從原來的回這個問題的目的):實體引入氧引起的Xerces「元素類型...必須聲明」的錯誤
<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY % entities SYSTEM "test.dtd">
%entities;
]>
<root>
</root>
存在文件test.dtd
,但同樣爲了這個問題的目的,它是空的。
麻煩的是,氧XML編輯器引發錯誤:
E [Xerces] Element type "root" must be declared.
如果我刪除%entities;
線或從上面的線%
符號,不會引發錯誤,因爲氧氣則是不實際解析實體文件(很明顯,當引入真正的實體時,引用它們失敗)。不幸的是,我所做的研究表明,Xerces由於多種不同的原因而拋出了這個錯誤,我無法縮小這種情況下的錯誤。
爲什麼在引入實體時會拋出此錯誤,即使這些實體沒有,我該怎麼辦?
氧氣10.3,如果該事項(我公司只授權給五歲的軟件:-()
你怎麼沒有得到「沒有與文檔相關的模式或DTD」。當你嘗試驗證錯誤?上面的示例沒有出現任何格式錯誤,但它肯定無法驗證,因爲沒有DTD/Schema來驗證。如果我將<!ELEMENT root(#PCDATA)>'添加到內部子集中,它會驗證正確(使用空的'test.dtd')。 (這是在oxygen 15.) –
不知道爲什麼我沒有得到那個錯誤。我並沒有真正嘗試驗證(除了連續自動驗證oXygen做),但我的XML知識不是很好,我不明白爲什麼添加空實體導致它引發錯誤。 我懷疑問題是在oXygen中的一些設置 - Microsoft XML記事本2007(它與我和舊軟件?!;有什麼關係)處理它很好。 – AJR