xml - 具有 EMPTY 和 PCDATA 的 DTD 元素

标签 xml dtd

我们可以像这样在 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/

相关文章:

java - 升级到 Struts 2.3.15 - 约定插件导致启动时崩溃

xml - 如何声明空或非空的 dtd 元素

c# - 使用 XMLTextReader 读取节点值

xml - XPath 等效于 current()

arrays - 在 XSLT 中创建动态数组

xml - DTD - ID 属性的唯一性

java - 将 XML 文件中的子节点拆分为自己的 XML 文件

java - Xades4j - XML 签名验证错误 - SignaturePolicyNotAvailableException

xml - XML Schema 和 DTD 有什么区别?

java - W3C 通过从网站中删除模块来破坏 XHTML 1.1 解析