В связи с тем, что XHTML является приложением XML , некоторые действия. которые совершенно правильны в HTML на базе SGML , должны быть изменены.
Правильное формирование - это новая концепция, введённая XML . В конечном счёте это означает, что все элементы обязаны иметь закрывающий тег или быть написаны в специальной форме (как описано ниже), и что все элементы обязаны вкладываться. Хотя перекрывание не допускается в SGML , оно допускается некоторыми браузерами.
Документы XHTML должны использовать нижний регистр для всех имён элементов и атрибутов HTML. Это необходимо, поскольку XML чувствителен к регистру, например, < li > и < LI > это различные теги.
В HTML 4 на базе SGML , некоторые элементы допускали отсутствие конечного тега при наличии других последующих элементов с закрывающими тегами. Такое отсутствие конечных тегов не допускается в XHTML на базе XML . Все элементы, за исключением тех, которые объявлены в ОТД* как EMPTY , должны иметь конечный тег.
Все значения атрибутов должны быть закавычены, даже цифровые.
XML не поддерживает минимизацию атрибутов. Пары атрибут/значение должны (обязаны) быть выписаны полностью. Имена атрибутов, такие как compact и checked , не могут появляться в элементах без определённых значений.
Пустые элементы обязаны иметь конечный тег, или стартовый тег обязан заканчиваться /> . Например, < br /> или < hr ></ hr > .
ПА вырезают ведущие и ведомые пробелы из значений атрибутов и превращают последовательности из одного или более пробельных символов (включая обрывы строки) в одиночный межсловный пробел (символ пробела ASCII в западных языках).
В XHTML элементы script и style объявлены как имеющие содержимое # PCDATA . Как результат этого, < и & будут рассматриваться как начало разметки, а мнемоники, такие как & lt ; и & amp ; , будут считаться процессором XML мнемониками символов < и & соответственно. Перенос содержимого элементов script или style в раздел, помеченный CDATA , позволит избежать расшифровки этих мнемоник. <script> <![CDATA[ ... unescaped script content ... ]]> </script> Альтернативой может быть использование внешних документов скриптов и стилей.
SGML предоставлял создателям ОТД* возможность исключать некоторые элементы как содержимое элемента. Такие запрещения (называемые "исключения") невозможны в XML . Например, Строгое ОТД* HTML 4 ( Strict DTD ) запрещает вложение элемента ' a ' в другой элемент ' a ' на любую глубину. В XML об этом не может быть даже и речи. Хотя эти запрещения и могут отсутствовать в ОТД*, определённые элементы не могут вкладываться.
HTML 4 определил атрибут name для элементов a , applet, form, frame, iframe, img и map. HTML 4 также ввёл атрибут id . Оба эти атрибута созданы для использования в качестве идентификаторов фрагмента. В XML идентификаторы фрагмента имеют тип ID, и в элементе может быть только один атрибут типа ID. Таким образом, в XHTML 1.0 атрибут id определён как атрибут типа ID . Чтобы быть уверенным, что документы XHTML 1.0 являются правильно структурированными документами XML, документы XHTML 1.0 ОБЯЗАНЫ использовать атрибут id для определения идентификаторов фрагмента, и даже в тех элементах, которые исторически имели также атрибут name . Обратите внимание, что в XHTML 1.0 атрибут name этих элементов формально не рекомендуется и будет удалён в последующих версиях XHTML .
Таким образом, двойные тире "--" не обозначающие начало и конец комментария в его тексте должны быть чем-либо заменены или разделены пробелом, например "- -". |