首页 > 解决方案 > 如何在 DTD 文件中定义自关闭 XML 元素?

问题描述

我要定义的元素:

<testing-element code="Input"/>

我放在我的 DTD 文件中的代码:

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

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

标签: xmlvalidationdtd

解决方案


您可以像这样声明元素:

<!ELEMENT testing-element EMPTY>

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

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

<testing-element/>

或使用开始和结束元素标签:

<testing-element></testing-element>

没有办法要求空元素语法(由于 XML 的 SGML 遗产)。

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

<ELEMENT e (f?)>

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


推荐阅读