2011-10-25 116 views
3

是否可以在內部定義哪個元素是DTD中的根元素。換句話說,當DTD在單獨的文件中時,是否可以定義根元素?DTD根元素

+0

當你說「內部」,你的意思是在一個不包含DTD的文件中? – LarsH

+0

通常你在一個單獨的文件中寫入一個dtd,並且在你寫入xml文檔(另一個文件)之前,你會說<!DOCTYPE「root-element」「dtd-url」>「。我的問題是:是否有另一種方式指定dtd文件中的根元素? – temelm

+0

不,沒有 – StaxMan

回答

5

根元素由DOCTYPE聲明確定。根元素可以是DTD中的任何元素。

例如在下面的DTD(test.dtd)book通常是根元素:

<!ELEMENT book (chapter+)> 
<!ELEMENT chapter (section+)> 
<!ELEMENT section EMPTY> 

然而,如果我們在DOCTYPE使用sectionsection是根元素:

<!DOCTYPE section SYSTEM "test.dtd"> 
<section/> 

我在外部DTD中使用DOCTYPE聲明來直接指定根元素,但我不認爲這是規範允許的。我所做的就是將DOCTYPE保存在外部DTD中,並從XML文件中刪除DOCTYPE。我能夠將DTD與我正在使用的程序的命令行上的XML文件相關聯。