簡體   English   中英

將ENTITY引入oXygen會導致Xerces“元素類型…必須聲明”錯誤

[英]Introducing ENTITY into oXygen causes Xerces “Element type … must be declared” error

我有以下非常簡單的XML文件(出於這個問題的目的,它與原始文件相比明顯減少了):

    <?xml version="1.0"?>
    <!DOCTYPE root [
    <!ENTITY % entities SYSTEM "test.dtd">
    %entities;
    ]>

    <root>
    </root>

文件test.dtd存在,但再次出於此問題的目的,為空。

問題是oXygen XML Editor引發錯誤:

E [Xerces] Element type "root" must be declared.

如果我刪除%entities; 行或上一行中的%符號,不會引發任何錯誤,因為oXygen實際上並未解析實體文件(因此,很顯然,當引入真正的實體時,對它們的引用會失敗)。 不幸的是,我所做的研究表明Xerces出於多種不同的原因拋出此錯誤,在這種情況下,我無法縮小錯誤的范圍。

為什么在引入實體時會引發此錯誤,即使那里沒有實體,我該怎么辦?

oXygen v10.3,如果這很重要的話(我的公司僅被許可使用五年的舊軟件:-()

文件test.dtd存在,但再次出於此問題的目的,為空。

您僅會得到此錯誤,因為即使正確找到了文件test.dtd ,它也不包含任何內容,尤其是對於“ root”元素沒有聲明。 因此,Xerces會向您拋出錯誤:

E [Xerces] Element type "root" must be declared.

如果您簡單地聲明<!DOCTYPE root SYSTEM "test.dtd"> (與上面所做的操作完全一樣),我敢打賭,您將獲得相同的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM