空元素是否可以包含子元素

时间:2012-10-25 18:22:23

标签: xml dtd

我有一个带有以下元素定义的DTD

<!ELEMENT a EMPTY>
<!ELEMENT b EMPTY>

以下XML是否基于此DTD有效:

<a><b></b></a>

1 个答案:

答案 0 :(得分:3)

不,那不会有效。空元素不能包含任何子元素。这包括以下类型的节点:文本,元素,注释和处理指令。如果定义了元素,则元素可以具有属性。

如果您在EMPTY声明中将ANY更改为ba,则有效:

<!DOCTYPE a [
<!ELEMENT a ANY>
<!ELEMENT b EMPTY>
]>
<a><b></b></a>