根据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”?这是什么意思?我在哪里可以找到关于此的官方文件?
答案 0 :(得分:3)
连字符表示必需,O表示可选。因此“ - O”表示需要开始标记,结束标记是可选的。您可以在§3.3.3
中阅读更多内容答案 1 :(得分:2)
像@erickson所说,连字符表示“必需”,“O”表示可选。第一个 - / O用于开始标记,第二个用于结束标记。这称为标签最小化。
只允许在SGML DTD中使用标记最小化。 这就是您在HTML Strict DTD中看到它的原因,但是您没有在XML规范中看到它或w3schools上的XML示例。