DTD根元素

tem*_*elm 4 xml dtd root

是否可以在内部定义哪个元素将成为DTD中的根元素.换句话说,当DTD在单独的文件中时,是否可以定义根元素?

Dan*_*ley 6

根元素由DOCTYPE声明确定.根元素可以是DTD中的任何元素.

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

<!ELEMENT book (chapter+)>
<!ELEMENT chapter (section+)>
<!ELEMENT section EMPTY>
Run Code Online (Sandbox Code Playgroud)

但是,如果我们section在doctype中使用,section则是根元素:

<!DOCTYPE section SYSTEM "test.dtd">
<section/>
Run Code Online (Sandbox Code Playgroud)

DOCTYPE在外部DTD中使用了声明来直接指定根元素,但我不认为规范允许这样做.我所做的是保留DOCTYPE外部DTD并DOCTYPE从XML文件中删除.我能够将DTD与我正在使用的程序的命令行上的XML文件相关联.