我们可以像这样在 DTD 中声明一个元素吗:
<!ELEMENT name (EMPTY | (#PCDATA))>
谢谢
最佳答案
如果您尝试声明一个空元素或可能包含字符数据(文本)的元素,那么不可以,您不能声明这样的元素。
请参阅 specs 中的“内容规范” :
[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>
关于xml - 具有 EMPTY 和 PCDATA 的 DTD 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48357674/