如何在 DTD 文件中定义自闭 XML 元素?

How can I define a self closing XML element in a DTD file?

我要定义的元素:

<testing-element code="Input"/>

我放入 DTD 文件的代码:

<!ELEMENT testing-element ()>
<!ATTLIST testing-element code CDATA #REQUIRED>

问题是,目前不允许您将 !ELEMENT 标记中的括号留空

您可以这样声明元素:

<!ELEMENT testing-element EMPTY>

您示例中的一对空括号不是有效的内容模型声明语法。

这将允许您在 XML 样式的空元素语法中指定元素

<testing-element/>

或带有开始和结束元素标签:

<testing-element></testing-element>

无法要求 空元素语法(由于 XML 的 SGML 继承)。

从技术上讲,您还可以对恰好接受空内容的任何元素使用空结束元素语法,例如。有一个内容模型,所有元素都是可选的:

<ELEMENT e (f?)>

或者在使用宽松验证时根本没有声明。