【问题标题】:What is "- O" meaning when declare a DTD element type?声明 DTD 元素类型时“-O”是什么意思?
【发布时间】:2011-12-19 04:38:42
【问题描述】:

根据 W3C XML 规范,元素以以下形式声明:

[45]    elementdecl    ::=      '<!ELEMENT' S Name S contentspec S? '>'
[46]    contentspec    ::=      'EMPTY' | 'ANY' | Mixed | children

w3school 上的样本是:

 <!ELEMENT br EMPTY>

但是在html 4.01 strict dtd元素中br是:

<!ELEMENT BR - O EMPTY                 -- forced line break -->

为什么第二个声明要加上“-O”?这是什么意思?我在哪里可以找到有关此的官方文档?

【问题讨论】:

    标签: xml dtd sgml


    【解决方案1】:

    连字符表示必需,O 表示可选。所以“-O”表示开始标签是必需的,结束标签是可选的。你可以在§3.3.3阅读更多内容

    【讨论】:

      【解决方案2】:

      就像@erickson 所说,连字符表示“必需”,“O”表示可选。第一个 -/O 用于开始标记,第二个 -/O 用于结束标记。这称为标签最小化。

      标签最小化只允许在 SGML DTD 中。 这就是为什么您在 HTML Strict DTD 中看到它,但在 XML Spec 或w3schools 上的 XML 示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-27
        • 2022-01-02
        • 2017-01-09
        • 2014-04-23
        • 1970-01-01
        • 2014-10-19
        • 2014-09-20
        • 1970-01-01
        相关资源
        最近更新 更多