带有EMPTY和PCDATA的DTD元素

时间:2018-01-20 15:10:53

标签: xml dtd xml-dtd

我们可以在DTD中声明一个元素:

<!ELEMENT name (EMPTY | (#PCDATA))>

谢谢

1 个答案:

答案 0 :(得分:4)

如果您尝试声明一个空元素或者可能包含字符数据(文本)的元素,那么不能,您不能声明这样的元素。

请参阅specs

中的“contentspec”
[46]      contentspec    ::=      'EMPTY' | 'ANY' | Mixed | children

你可以声明一个像:

这样的元素
<!ELEMENT name (#PCDATA|EMPTY)*>

但这就是说name包含mixed content(字符数据和子元素)。在这种情况下,可能的子元素是名为EMPTY的元素。

你应该声明这样的元素:

<!ELEMENT name (#PCDATA)>

这将允许name包含字符数据或为空。

例如,以下name元素都有效:

<name></name>
<name/>
<name>balimaco00</name>