В моих XHTML документах nxml-mode (через включенный XHTML Компактная схема Relax NG) помечает значения атрибутов usemap
ошибкой Attribute value invalid
.
<img src="sample_image.png"
usemap="#sample_image_map"
alt="Sample Image"
border="0" />
Проблема заключается в наличии ведущего символа #
в значении атрибута usemap
. Если я удалю символ #
, nxml-mode укажет, что значение допустимо. Но ведущий символ #
обычно ожидается в значении usemap
, которое обычно используется для ссылки на определение map
в другом месте файла.
Не вызывает ли nxml-mode ложное сообщение об ошибке проверки для значения usemap
?
(Обратите внимание, что я использую Emacs 24.2.1 и версию nxml-mode, которую он включает.)
Вот полный пример XHTML, который проверяется на валидаторе W3C:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>nxml-mode Validation Problem</title>
</head>
<body>
<!-- The '#' is OK here. -->
<a href="#sample_link">Sample Link</a>
<map id="sample_image_map">
<area shape="poly" coords="100,0, 200,0, 200,50, 100,50"
alt="Sample Area"/>
</map>
<!--
* For the value of the 'usemap' attribute, 'nxml-mode'
* issues the error 'Attribute value invalid'.
*
* However, if the '#' is removed from the value
* '#sample_image_map', 'nxml-mode' indicates the value
* is valid.
-->
<img src="sample_image.png"
usemap="#sample_image_map"
alt="Sample Image"
border="0" />
</body>
</html>