
7833506bcbf3153166b96ad65672d708.ppt
- Количество слайдов: 25
Язык XHTML Игорь Квинт. HTML, XHTML и CSS на 100%, Глава 13.
Язык XHTML Язык HTML версии 4. 01 в основном поддерживается популярными браузерами Интернета, так что разработанные вами страницы будут корректно отображаться на экранах компьютеров большинства пользователей. Это большое достоинство HTML, появившееся в процессе эволюции версий языка и взглядов разработчиков браузеров на важность стандартизованного способа представления информации, размещаемой в Сети. Однако ничего не стоит на месте, и сейчас стали очевидными и недостатки HTML. С помощью этого языка вы не сможете адекватно воспроизвести химические или математические формулы, нотную запись, иероглифы. Он не позволит вам корректно отобразить информацию на таких портативных устройствах, как карманные компьютеры, смартфоны, устройства чтения электронных книг. Таким образом, развитие средств коммуникации и расширение типов информации, которую требуется по ним передать для анализа, воспроизведения и обработки, потребовали развития языка HTML. Именно эта задача и была решена с появлением языка XHTML.
Язык XHTML В результате специалисты W 3 C избрали другой путь, более продуктивный и перспективный. Вместо создания новой версии языка HTML они предложили средство, с помощью которого разработчики могли бы определять и описывать собственные языки гипертекстовой разметки. Этим средством является метаязык XML (e. Xtensible Markup Language — расширяемый язык разметки), то есть специальный язык, служащий для определения и задания других языков гипертекстовой разметки. Термин «мета» как раз и означает его функцию: метаязыки — это языки, служащие для описания и определения новых языков.
Язык XHTML Использование метаязыков в определении языков гипертекстовой разметки отнюдь не инновация W 3 C. Своим появлением на свет язык HTML обязан метаязыку SGML (Standard Generalized Markup Language — стандартный обобщенный язык разметки). В приложении D «HTML 4. 01 DTD» на сайте W 3 C (www. w 3. org) все конструкции языка HTML 4. 01 описаны с помощью набора определений типа документа (DTD — Document Type Definition). Это набор специальных конструкций метаязыка SGML, описывающих язык HTML 4. 01. На следующем этапе развития языка гипертекстовой разметки специалисты W 3 C создали метаязык XML и с помощью набора XML DTD — язык XHTML, наследующий возможности HTML 4. 01, но с некоторыми уточнениями и усовершенствованиями. Язык XHTML обеспечивает поддержку всех средств HTML 4. 01, применяя более жесткие правила XML DTD.
Язык XHTML В настоящий момент имеется три типа DTD, используемых для определения языка XHTML. 1. Первый тип соответствует строгому применению правил XHTML DTD в данном документе. При этом запрещается использование всех тегов и атрибутов HTML, признанных устаревшими по разным причинам, например запрещены все атрибуты форматирования текста по причине их замены таблицами CSS. К числу последних относятся тег и атрибут выравнивания align. Однако такое ограничение для многих просто неприемлемо, поскольку использование элементов этого типа стало для разработчиков привычкой, выработанной годами работы над HTML-документами.
Язык XHTML 2. Второй тип XHTML DTD называется переходным и включает в себя все нежелательные элементы HTML, чтобы разработчики веб-страниц могли постепенно перейти от старого к новому. Такой подход соответствует тенденциям в развитии браузеров, которые не спешат расставаться со старыми добрыми средствами создания вебстраниц с помощью пусть и устаревших, но привычных и надежных тегов HTML. 3. Третий тип DTD определяет работу с фреймами, в остальном он соответствует переходным XHTML DTD.
Структура XHTML-документов Чтобы XHTML-документ полностью отвечал требованиям строгих правил XHTML DTD, ему нужно указать, какой набор XML DTD был использован при его создании, версию применяемого языка XML, а также пространство имен документа. Вся эта информация помещается в начало документа в виде объявлений. Рассмотрим эти три компонента по порядку. В настоящее время существует две версии языка XML: 1. 0 и 1. 1. Их отличия в основном сводятся к более строгим требованиям к используемым в документах кодировкам символов, предъявляемым языком XML 1. 1, что расширяет сферу применения соответствующих документов, например на мейнфреймах. Более широко применяется версия XML 1. 0, поэтому использовать будем именно ее. Для объявления того, что вы используете в данном XHTML-документе язык XML версии 1. 0, следует поместить в первой строке документа следующую строку: xml version="1. 0" encoding="UTF-8" ? >
Структура XHTML-документов Теперь объявим набор DTD языка разметки XHTML: В данном документе корневым элементом является html, а для его разработки использован набор XHTML DTD с публичным именем "//W 3 C//DTD XHTML 1. 0 Strict//EN". Если браузер сумеет найти эти DTD по публичному имени, он будет использовать их, иначе он может применить набор XML DTD, хранимый в файле, который указан в URL вслед за публичным именем. В данном случае это документ по адресу http: //www. w 3. org/TR/xhtml 1/DTD/xhtml 1 -strict. dtd. Слово "strict" в названии файла означает «строгий» , так что в данном документе использован строгий тип XHTML DTD. Указанный в адресе файл xhtml 1 -strict. dtd хранит все правила DTD, написанные на языке XML.
Структура XHTML-документов Если же вы намерены использовать переходной тип XHTML-документов, добавьте такое объявление: Для фреймовой версии XHTML DTD объявление таково:
Структура XHTML-документов Итак, мы объявили версию XML и набор XHTML DTD для создаваемого XHTML-документа. А что если нам требуется включить в свой документ некий фрагмент, содержащий разметку по правилам специально определенного набора DTD, например для воспроизведения нотной записи? Для этих целей в документах XHTML используется так называемое пространство имен. Пространство имен — это список имен всех тегов и атрибутов, которые применяются в XHTML-документе, подчиняющемся определенному набору правил XML DTD. С этой целью в правилах XML DTD всегда задается пространство имен, уникальное для каждого конкретного набора DTD. Соответственно, в XHTML DTD также определено стандартное пространство имен, которое должно быть хотя бы раз явно объявлено в документе XHTML. Обычно это делается с помощью атрибута xmlns тега :
Образец XHTML-документа xml version="1. 0" encoding="UTF-8"? >
Отличия XHTML от HTML Основным отличием документа XHTML от HTML 4. 01 является жесткое требование к корректности документа с точки зрения стандартов языка XML. На протяжении истории развития языка HTML сложился подход, при котором допускались многочисленные вольности и отступления от стандартов языка, объявленных W 3 C, а браузеры различных производителей пытались компенсировать эти вольности, угадывая и корректируя HTML-код с целью его адекватного воспроизведения. Все это отменяется в языке XHTML, если следовать строгим наборам XHTML DTD, а переходные наборы XHTML DTD служат лишь на период перехода от старого к новому: от HTML к XHTML.
Значения атрибутов должны быть в кавычках В языке HTML значения атрибутов должны быть заключены в кавычки, только если в значение входят пробелы или специальные символы. Но в языке XHTML это недопустимо: все значения должны заключаться в кавычки. Например, в теге
Необходимо наличие закрывающего тега В стандарте языка HTML 4. 01 допускается пропуск закрывающего тега, если программа, которая будет обрабатывать соответствующий документ, сможет «догадаться» о его наличии. Поэтому вполне допустимо опускать закрывающие теги
Это первый абзац
<Это второй абзац>
Необходимо наличие закрывающего тега Конечно, такое требование сильно загромождает код, однако устраняет какие-либо двусмысленности в разметке документа, поскольку позволяет точно идентифицировать любой элемент кода. То же самое касается и пустых элементов. Каждый тег такого элемента должен иметь как открывающий, так и закрывающий тег, например тег обрыва строки теперь должен писаться так: , иначе строка разорвана не будет. К счастью, в этом случае допускается запись
, то есть перед завершающей угловой скобкой следует поместить наклонную черту. Если же у тега есть атрибуты, то угловая черта пишется после них, например .
Необходимо корректно вкладывать элементы друг в друга Это требование стандарта XHTML не отличается от требований HTML. Каждый элемент, вложенный в другой элемент, должен быть закрыт завершающим тегом, лежащим внутри содержащего элемента. Например, в данном примере элемент для задания курсивного текста включает тег полужирного начертания: …форматируемый текст… Этот пример корректен. Однако если мы напишем так: …форматируемый текст… то нарушим требования HTML. Тем не менее эти и им подобные требования не всегда выполнялись разработчиками, и «добрые» браузеры обычно корректировали такие нарушения кода. Однако стандарт XHTML запрещает подобные нарушения.
Необходимо корректно вкладывать элементы друг в друга Кроме того, XHTML запрещает следующие вложения: l тег
Назначение имен тегов и атрибутов зависит от регистра В документах HTML имена тегов и атрибутов не зависят от регистра символов, так что, например, запись