Я пытаюсь расширить документ xhtml, чтобы разрешить дополнительные атрибуты.
В w3.org приведен пример, подобный следующему:
<!ATTLIST a myattr CDATA #IMPLIED >
См .: 6.1. Определение дополнительных атрибутов - http://www.w3.org/TR/1999/xhtml-modularization-19990406/developing.html#s_dev_attrs
Однако я не уверен, куда поместить это утверждение.
Я пытался добавить его так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <!ATTLIST a myattr CDATA #IMPLIED > <html xmlns="http://www.w3.org/1999/xhtml"> <head> ... </head> <body> ... </body>
Но когда я беру документ с помощью DOM, этот дополнительный DTD-оператор игнорируется.
Я также пробовал:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [ <!ATTLIST a myattr CDATA #IMPLIED > ]> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ... </head> <body> ... </body>
Но это действительно заставило DOM шататься.
Так что я был бы признателен, если бы кто-нибудь показал мне образец документа xhtml, у которого был определен дополнительный атрибут. (т. е. минимальный полный документ, который может подтвердить)
Как вы уже догадались .... xhtml не моя сильная сторона.
Ваш второй пример верный, за исключением отсутствующего </html> конечного тега. С этим добавленным это анализирует хорошо для меня. Что именно «выбрасывает шаткое»?
</html>
Объявление ATTLIST действительно должно идти в DTD, внутреннее подмножество которого находится в квадратных скобках внутри объявления DOCTYPE.
ATTLIST
DOCTYPE
(Чего вы надеетесь достичь с помощью этого? Браузерам все равно, даже если они работают в собственном режиме application/xhtml+xml. В обычном режиме text/html теговый суп внутреннее подмножество DTD просто запутает их.)
application/xhtml+xml
text/html