Самозакрывающийся синтаксис не будет работать (он будет работать только с элементами, которые всегда пусты в HTML). Сериализаторы XML могут генерировать <textarea/>
, <script/>
и т.п., которые по-разному разбивают страницы (вызывая сложное восстановление после ошибок, иногда включая повторный анализ оставшейся части страницы).
Явно закрытые «пустые» элементы HTML могут вести себя странно (</br>
вставляет разрыв в IE).
<![CDATA[
вне жестко закодированных элементов HTML CDATA
будут распознаваться как тег. Это не повлияет на выход и может привести к исчезновению некоторого контента.
В элементах HTML CDATA
(а именно <script>
) сущности не будут распознаваться. XHTML требует <script> if (1 < 2) …
, что в IE будет синтаксической ошибкой.
Фон <body>
будет применяться по-разному в IE.
В CSS не будет кросс-браузерного синтаксиса для селекторов с поддержкой пространства имен.
Вы получите все подразумеваемые элементы HTML (например, <tbody>
во всех таблицах) и скрытые элементы (обычно это не проблема, когда документ действителен, но другие браузеры не будут предупреждать вас, пока разметка хорошо сформирован).
Элементы и атрибуты с префиксами не будут иметь пространства имен и будут отличаться tagName
в IE (что также недопустимо в XML). Они также не получат подходящего стиля и поведения по умолчанию (<xhtml:a>
не может быть ссылкой).
Вы не сможете использовать методы, учитывающие пространство имен, такие как createElementNS
(они не существуют в IE), .tagName
будет в верхнем регистре в IE, но не во всех случаях.
Элементы и атрибуты с префиксами не будут иметь пространства имен и получат другое локальное имя в IE (что также недопустимо в XML).
Это только проблемы, связанные с переходом с рабочего XML-документа на HTML. Когда вы переходите от HTML (то есть того, что все ожидают и воспринимают как нормальное поведение) к реальному XML, возникает столько же сюрпризов, например, document.write
не работает, делая большинство скриптов Google бесполезными.