Нужно ли объявлять XML на странице, используя тип документа XHTML? - PullRequest
6 голосов
/ 26 августа 2009

Я видел противоречивую информацию о том, что документ XHTML должен также объявить себя как XML.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Однако в других местах (включая w3.org) я вижу, что DOCTYPE должен быть первым тегом декларацией.

Поскольку W3 говорит это, это должно быть правдой. Тем не менее, у меня, вероятно, есть несколько страниц / приложений, которые лгут, которые следуют первому методу. Каковы мои риски?

Редактировать : Я только что провел страницу через W3 Validator с объявлением XML и без него, и оно прошло оба пути. На данный момент, я думаю, это просто "стиль".

Ответы [ 4 ]

9 голосов
/ 26 августа 2009
<?xml version="1.0" encoding="utf-8"?>

... - это версия по умолчанию и кодировка для XML, так что она вам вообще не нужна. Если вы используете XHTML как text / html, его, вероятно, не должно быть вообще.

Однако в других местах (включая w3.org) я вижу, что DOCTYPE должен быть первым тегом.

Звучит как некоторая путаница ... DOCTYPE не является тегом и не является <? Xml?> (Который называется декларацией XML и выглядит как инструкция обработки, но он также не является одним из них) .

Если вы включаете оба, декларация XML должна стоять на первом месте. Хитрость заключается в том, что анализатор DOCTYPE в IE6 обнаруживает DOCTYPE в стандартном режиме только в том случае, если это первое на странице, что означает, что вы не можете использовать декларацию XML и должны придерживаться кодировки XML 1.0 и UTF-8 (что не очень хорошо потеря).

4 голосов
/ 19 марта 2013

http://validator.w3.org/ принимает только <? Xml> материал перед <! DOCTYPE>. Другой способ (doctype before? Xml) не будет проверен.

4 голосов
/ 26 апреля 2011

Из спецификации XHTML 1.1 :

XML-объявление, подобное приведенному выше. не требуется во всех документах XML. Авторы документа XHTML ДОЛЖНЫ использовать XML декларации во всех своих документах. Авторы XHTML-документов ДОЛЖНЫ использовать XML объявление, когда персонаж Кодировка документа отличается от по умолчанию UTF-8 или UTF-16 и нет кодировка определяется протокол более высокого уровня.

http://www.w3.org/TR/xhtml11/conformance.html

2 голосов
/ 26 августа 2009

Я никогда не включал его (всегда использовал только doctype), и w3c говорит, что мои проекты XHTML 1.0 Strict "допустимы".

...