Полный пример документа XHTML, показывающий, как определить дополнительные атрибуты - PullRequest
0 голосов
/ 17 февраля 2010

Я пытаюсь расширить документ 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 не моя сильная сторона.

1 Ответ

1 голос
/ 17 февраля 2010

Ваш второй пример верный, за исключением отсутствующего </html> конечного тега. С этим добавленным это анализирует хорошо для меня. Что именно «выбрасывает шаткое»?

Объявление ATTLIST действительно должно идти в DTD, внутреннее подмножество которого находится в квадратных скобках внутри объявления DOCTYPE.

(Чего вы надеетесь достичь с помощью этого? Браузерам все равно, даже если они работают в собственном режиме application/xhtml+xml. В обычном режиме text/html теговый суп внутреннее подмножество DTD просто запутает их.)

...