声明DTD元素类型时,“ - O”是什么意思?

问题描述:

根据W3C XML规范,元素的形式宣布:声明DTD元素类型时,“ - O”是什么意思?

[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”的?这是什么意思?我在哪里可以找到关于此的官方文件?

装置所需的连字符时,O意味着可选的。所以“ - O”表示开始标签是必需的,结束标签是可选的。你可以阅读更多的§3.3.3

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

标签最小化只允许在SGML的DTD。这就是为什么你在HTML严格DTD看到它,但你看不到它在XML规格或W3Schools的将XML实例。

+0

非常感谢。 – btpka3