Почему этот код XHTML-MP не проходит проверку W3C?

Пример XHTML-MP из Википедии:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN"
  "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <title>Hello</title>
  </head>
  <body>
    <p>Hello <a href="http://example.org/">world</a>.</p>
  </body>
</html>

Это не проходит проверку W3C с ошибкой. Введен неверный код UTF-8, укажите кодировку! Байты: 0xA9 0x20 0x32 0x30

Даже если вы добавите <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> и сказать валидатору, что это UTF8, он выдает эту ошибку.

Если XHTML-MP DOCTYPE удален, он работает нормально. В чем дело?

2 ответа

Решение

Проблема с внешним DTD. Если вы измените DOCTYPE на это, он проверяет:

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

http://mobiready.com/launch.jsp?locale=en_EN подтверждает это хорошо. Wierd

Также вам не нужно использовать 1.1, чтобы использовать JavaScript. Хотя это не будет проверять на W3,

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

прекрасно работает почти со всеми телефонами с поддержкой JavaScript.

Другие вопросы по тегам