Файл: Языки гипертекстовой разметки (основная суть XHTML).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 18.06.2023

Просмотров: 34

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ГЛАВА 2. Использование XHTML с другими пространствами имен

Пространство имен XHTML может использоваться с другими пространствами XML в соответствии с XMLNAMES, хотя такие документы не являются строго конформными XHTML 1.0 в соответствии с приведенным выше определением. В будущих работах W3C будут определены способы указания конформности документов, в которых используется несколько пространств имен.

В следующем примере показано, как XHTML 1.0 может использоваться с рекомендацией MathML:

<html xmlns="http://www.w3.org/1999/xhtml" xml: lang="ru" lang="ru">

<head>

<title>Пример Math</title>

</head>

<body>

<p>Далее приводится разметка MathML: </p>

<math xmlns="http://www.w3.org/1998/Math/MathML">

<apply> <log/>

<logbase>

<cn> 3 </cn>

</logbase>

<ci> x </ci>

</apply>

</math>

</body>

</html>

Конформный пользовательский агент должен соответствовать всем следующим критериям:

Для соответствия рекомендации XML 1.0 [XML] пользовательский агент должен разбирать документ XHTML и оценивать его правильность. Если пользовательский агент выполняет проверку на правильность, он должен также проверять документы на соответствие с DTD, на которые они ссылаются, в соответствии с [XML].

Если пользовательский агент поддерживает возможности, определенные в настоящей спецификации или обязательные согласно нормативной ссылке, он должен это делать в соответствии со способами, описанными в определении этой возможности.

Если пользовательский агент обрабатывает документ XHTML как общий документ XML, он должен распознавать только атрибуты типа ID (например, атрибут id большинства элементов XHTML) в качестве идентификаторов фрагментов.

Если пользовательский агент встречает значение атрибута, которое он не распознает, он должен использовать значение атрибута по умолчанию.

Если пользовательский агент встречает ссылку на объект (отличный от заранее определенных объектов), для которой он не обрабатывал объявления (что могло произойти, если объявление расположено во внешнем подмножестве, которое пользовательский агент не прочел), ссылка на объект должна генерироваться в виде символов (начиная с амперсанда и заканчивая точкой с запятой), составляющий ее.

Во время генерации содержимого пользовательские агенты, если они встречают распознаваемые, но не генерируемые символы или ссылки на символьные объекты, должны представлять документ таким образом, чтобы пользователю было понятно, что корректная генерация была невозможна.


Следующие символы определены в XML как пробельные:

пробел (&#x0020;)

табуляция (&#x0009;)

возврат каретки (&#x000D;)

перевод строки (&#x000A;)

Процессор XML приводит коды конца строки, различные в различных в системах, в одному символу перевода строки, который передается в приложение. Пользовательский агент XHTML, кроме того, должен обрабатывать как пробельные следующие символы:

перевод страницы (&#x000C;)

пробел нулевой ширины (&#x200B;)

В элементах, в которых для атрибута 'xml: space' установлено значение 'preserve', пользовательский агент должен сохранять все пробельные символы (за исключением начальных и конечных пробельных символов, которые должны удаляться). В противном случае пробелы должны обрабатываться по следующим правилам:

Все пробельные символы, окружающие элементы блока, должны удаляться.

Комментарии удаляются полностью и не влияют на обработку пробелов. Один пробельный символ в начале и в конце комментария обрабатывается как два пробела.

Начальные и конечные пробельные символы внутри элемента блока должны быть удалены.

Символы перевода строки в элементе блока должны быть преобразованы в пробел (если для атрибута 'xml: space' не установлено значение 'preserve').

Последовательность пробельных символов должна сокращаться до одного пробела (если для атрибута 'xml: space' не установлено значение 'preserve').

Любой XHTML-файл состоит из трех разделов - тега <! DOCTYPE>, заголовка (<HEAD>) и тела документа (<BODY>). Последние два элемента перекочевали из HTML и ничем не отличаются от своего родоначальника (пример 1).

Пример 1. Простейший XHTML документ.

<! 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"> <head> <! - Этот раздел предназначен для заголовка страницы и технической информации. - -> </head> <body> <! - А здесь надо размещать все, что хочется увидеть на странице. - -> </body> </html>

Тег <! DOCTYPE> сообщает браузеру о типе текущего документа и как его интерпретировать. Различают несколько версий и типов XHTML-документов, они приведены в табл.1.

Версия XHTML

Тип документа

Описание

XHTML 1.0

Strict

"Строгое" описание документа, включающее все правила.

XHTML 1.0

Transitional

"Переходный" тип, более лояльно относящийся к коду документа.

XHTML 1.0

Frameset

Устанавливается при использовании на странице фреймов.

XHTML1.1

XHTML 1.1

Эта версия основана на XHTML 1.0 Strict, но понимается браузерами как XML-приложение. В первую очередь предназначено для работы с различными медиа-данными.


Таблица.1. Версии XHTML и допустимые типы документа

Пример 2. Документ со строгой разметкой

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Strict // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict. dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>... </head> <body>... </body> </html>

XHTML 1.0 Transitional

Обычно применяется, когда правило разделения оформления и содержания выполняется не в полной мере. В этом случае допускается в коде документа использовать теги физического проектирования (например, тег <TT>) и лишь частично стили. В примере 3 показан вид тега <! DOCTYPE> для подобных документов.

Пример 2.1 "Переходный" документ

<! 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"> <head>... </head> <body>... </body> </html>

Тег <! DOCTYPE> хотя и обязателен, но не является непосредственной частью XHTML-документа, поэтому для него закрывающего тега не требуется.

XHTML 1.1

На основе проведённой работы мы можем сделать вывод, что наиболее верным написания кода являются соответствие со стандартом. Для наиболее эффективного анализа стоит применять не только тестирование, но и качественные методы проверка написания.

При анализе структуры HTML документа были использованы узкий круг показателей. Возможно, это привело к некоторым ошибкам ситуации в написание. В качестве рекомендации необходимо проводить такой анализ каждый раз, когда структура страницы меняется, это поможет наиболее эффективно регулировать и управлять index.html документом.

Стоит отметить то, что данный тест не является совершенным и для получения наиболее точных данных об ошибках необходимо проводить оценку тестирования страницы по сравнению с наиболее популярными сайтами, которые могут провести анализ html документа, которые занимаются анализом сайтов. Также необходимо использовать качественный метод тестирования, проводить оценку целевой аудитории пользователей, которые будут вносить какие-то данные, всё это влияет на работу сайта, в частности html документа.

Тег <HTML> является корневым для остальных элементов веб-страницы и располагается сразу после определения типа документа <! DOCTYPE>. Поскольку тип документа может быть любым, а не только тем, что приведен в табл.1, то необходимо дать понять браузеру, что он имеет дело со спецификой XHTML. Для чего в тег <HTML> добавляется параметр xmlns.

2.1 Будущее HTML

Ключевой задачей XHTML 1.0 был переход HTML на присущий XML лексика. 


Данная спецификация ввела лимитированы синтаксиса XML в HTML: регистр подневольность, принудительное заточение в двойные кавычки значений атрибутов и симметричные тэги. 

Этим образом XHTML 2.0 пробует решить трудности HTML как языка для разметки web-страниц.

В собственной демонстрации на конференции XTech 2005 в Амстердаме, со-трутник W3C Стивен Пембертон высказал цели плана XHTML 2.0:
Применить XML всюду, где это вполне вероятно: 

В случае если функция языка уже есть в XML, она не дублируется и не задумывается повторно;
В начале конструкция, вслед за тем представление: Спасибо таблицам стилей CSS более нет надобности в очевидно презентационных тэгах в HTML;
Устроить HTML легче в написании: Убрать кое-какие бессмысленные идиосинкразии HTML;

Более доступности, аппаратной независимости: Устроить столько догадок, сколько вполне вероятно, о методе, коим документ станет прочитан;

Усовершенствованные формы: 

Нужные давным-давно назревшие усовершенствования!

Понизить надобность применения сценариев: 

Подключить типичные использования сценариев в синтаксис самого HTML;
Усовершенствованная семантика: Облегчить интеграцию HTML с семантическими web-приложениями.

Разделы и параграфы.

Я испытываю некоторое удивление по поводу текстовых структурных элементов этого языка. Зачем нужны шесть уровней заголовков, и в какой ситуации можно было бы применить их все? Итак, почему бы заголовкам каким-либо образом не включать разделы, которые они озаглавливают? У XHTML[6] 2.0 есть ответ на этот вопрос благодаря новым элементам <section> и <h> (заголовок):

<section>

<h>Level 1 heading</h>

...

<section>

<h>Level 1 heading</h>

...

</section>

</section>

Это более логичное структурирование, чем в XHTML 1.0, и оно будет ближе пользователям многих других словарей. Одно из существенных преимуществ для программистов заключается в том, что они смогут включать разделы материалов прямо в документ, при этом не нужно переделывать номера уровней заголовков.

После этого для заголовков можно использовать стили CSS. Хотя ожидается, что реализация XHTML 2.0 в браузерах по умолчанию будет включать кое-что из описанного здесь как предварительно заданные параметры, но если написать их явным образом, они могут выглядеть примерно так (если абстрагироваться от спецификации XHTML 2.0):

h {font-family: sans-serif; font-weight: bold; font-size: 200%}

section h {font-size: 150%} /* Заголовок второго уровня */


section section h {font-size: 120%} /* Заголовок третьего уровня */

Еще одно логическое несоответствие в XHTML 1.0 заключается в том, что необходимо закрыть абзац, чтобы использовать список. По сути, абзацы следует закрывать для использования любых блочных элементов (блоков цитат, преформатированных разделов, таблиц и т.д.). Поступать так не всегда логично, если материал может вполне правомерно использоваться как часть одного абзаца. XHTML 2.0 устраняет это ограничение. Единственное, чего нельзя делать - это помещать один абзац в другой.

Изображения.

Тэг <img> в HTML на самом деле имеет довольно ограниченную гибкость. Как отмечает Пембертон, он не предоставляет никакого механизма нейтрализации ошибки, за исключением альтернативного текста alt (что препятствует утверждению новых форматов изображения), текст в тэгах alt нельзя разметить, а атрибут longdesc никогда не войдет в моду из-за своей неуклюжести. (longdesc используется для того, чтобы указать URI более полного описания изображения, чем то, что приводится в атрибуте alt)

В XHTML 2.0 появляется элегантное решение этой проблемы: возможность любому элементу иметь атрибут src. Браузер впоследствии заменяет содержимое элемента содержимым, которое находится по указанному URI. В самом простом случае это изображение. Но нигде не сказано, что это не может быть SVG, XHTML или любой другой тип содержимого, которое способен интерпретировать браузер.

Тэг <img> как таковой остается, но теперь он может включать содержимое. Новое действие атрибута src означает, что текст alt теперь представляет собой содержимое элемента, как в этом примере разметки:

<p><imgsrc="http://example.com/water. png">H<sub>2</sub>O</img></p>

Это особенно приятная новость для таких языков, как японский для которого комментарии Ruby требуют строчной разметки, которая до этого

Расширяемая семантика.

HTML[7] всегда имел некоторые элементы с семантическими ассоциациями, например, <address> и <title>.

Проблема заключается в том, что таких элементов мало, и они не являются расширяемыми. Между тем, предпринимались попытки использовать атрибут class для того, чтобы привнести семантику в элементы HTML.

Это расширение задач атрибута class по сравнению с тем, для чего он был создан; такое применение атрибута затрудняется тем, что он преимущественно используется для применения стилей CSS. (Некоторых людей раздражает такое утверждение задачи атрибута class, но со вторым применением трудно спорить).