Что означает "- O" при объявлении типа элемента DTD? - PullRequest
4 голосов
/ 01 ноября 2011

В соответствии со спецификацией W3C XML элемент объявляется в виде:

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

И образцы в w3school равны:

 <!ELEMENT br EMPTY>

Но в html 4.01 строгий dtd элемент br имеет вид:

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

Почему во втором объявлении добавляется «- O» ?Что это означает?И где я могу найти официальный документ об этом?

Ответы [ 2 ]

3 голосов
/ 01 ноября 2011

Дефис означает обязательный, O означает необязательный.Так что «- O» означает, что открывающий тег обязателен, а закрывающий тег необязателен.Вы можете прочитать больше в §3.3.3

2 голосов
/ 01 ноября 2011

Как сказал @erickson, дефис означает «обязательный», а «О» означает необязательный. Первый - / O для начального тега, а второй - / O для конечного тега. Это называется минимизацией тегов.

Минимизация тегов разрешена только в DTD SGML. Именно поэтому вы видите его в строгом DTD HTML, но не видите его в спецификации XML или XML примеры на w3schools.

...