DTD根元素

5

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


当你说“内部”,你是指不包括DTD的文件吗? - LarsH
通常情况下,您会在单独的文件中编写DTD,在编写XML文档(另一个文件)之前,您会说<!DOCTYPE "root-element" "dtd-url">。我的问题是:是否有另一种在DTD文件中指定根元素的方法? - temelm
你为什么想要这样做?知道原因会使这个问题对其他人更有用,并且可能帮助我们建议另一种实现相同目标的方法。 - LarsH
1个回答

6
根元素由声明确定。根元素可以是DTD中的任何元素。
例如,在下面的DTD(test.dtd)中,通常将是根元素:
<!ELEMENT book (chapter+)>
<!ELEMENT chapter (section+)>
<!ELEMENT section EMPTY>

然而,如果我们在文档类型中使用section,那么section将成为根元素。
<!DOCTYPE section SYSTEM "test.dtd">
<section/>

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接