13.1. Структура XHTML-документов

13.1. Структура 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" ?>

В ней браузеру сообщается, что вы используете XML версии 1.0 и представление символов в кодировке Unicode с разрядностью 8.

Теперь объявим набор DTD языка разметки XHTML:

<!DOCTYPE html PUBLIC « //W3C//DTD XHTML 1.0 Strict//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»>

В вышеприведенной конструкции объявлено, что в данном документе корневым элементом является html, а для его разработки использован набор XHTML DTD с публичным именем «//W3C//DTD XHTML 1.0 Strict//EN». Если браузер сумеет найти эти DTD по публичному имени, он будет использовать их, иначе он может применить набор XML DTD, хранимый в файле, который указан в URL вслед за публичным именем. В данном случае это документ по адресу http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd. Слово «strict» в названии файла означает «строгий», так что в данном документе использован строгий тип XHTML DTD. Указанный в адресе файл xhtml1-strict.dtd хранит все правила DTD, написанные на языке XML. Описание языка XML выходит за рамки этой книги, ограничимся только замечанием, что для всех разработчиков, которые хотят работать с XHTML на профессиональном уровне, знание языка XML является обязательным.

Если же вы намерены использовать переходной тип XHTML-документов, добавьте такое объявление:

<!DOCTYPE html PUBLIC «//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»>

Для фреймовой версии XHTML DTD объявление таково:

<!DOCTYPE html PUBLIC «//W3C//DTD XHTML 1.0 Frameset//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd»>

Итак, мы объявили версию XML и набор XHTML DTD для создаваемого XHTML-документа. Теперь зададимся вопросом: а что если мы используем переходные правила XHTML DTD, но нам требуется включить в свой документ некий фрагмент, содержащий разметку по правилам специально определенного набора DTD, например для воспроизведения нотной записи? Для этих целей в документах XHTML используется так называемое пространство имен.

Пространство имен – это список имен всех тегов и атрибутов, которые применяются в XHTML-документе, подчиняющемся определенному набору правил XML DTD. С этой целью в правилах XML DTD всегда задается пространство имен, уникальное для каждого конкретного набора DTD. Соответственно, в XHTML DTD также определено стандартное пространство имен, которое должно быть хотя бы раз явно объявлено в документе XHTML. Обычно это делается с помощью атрибута xmlns тега <html>:

<html xmlns="http://www.w3.org/TR/xhtml1">

Здесь задано пространство имен, хранимое в документе по адресу http://www.w3.org/TR/xhtml1, где находится официальная спецификация языка XHTML. Для использования в XHTML-документах нескольких DTD предусмотрена возможность прямого указания пространства имен, к которому принадлежит данный тег или атрибут разметки. Это делается с помощью атрибута xmlns, который можно поместить в открывающий тег любого элемента в документе, например, так:

<div xmlns="http://www.w3.org/1998/Math/MathML>у4/z</div">

В этом случае XHTML-совместимый браузер, обрабатывая документ, получит указание, что при воспроизведении содержимого данного тега <div> следует воспользоваться набором математических правил DTD, взяв их по указанному адресу http:// www.w3.org/1998/Math/MathML. Здесь хранится спецификация языка математической разметки MathML (Mathematical Markup Language). При этом запись y4/z будет воспроизведена браузером как математическое выражение деления двух переменных y4 и z, а не как содержимое тега <div>, определенного в общих XHTML DTD.

Как видите, ссылки на пространства имен достаточно объемны. Чтобы сократить их размер и упростить себе работу по составлению документа, можно использовать так называемые метки, вставляя их в определения пространства имен в начале документа:

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

После этого можно будет обращаться к данному пространству имен во всех тегах документа так:

<math:div>y4/z</div>

Здесь приведена сокращенная версия тега <div> из предыдущего примера.

Итак, сведем все воедино, запишем весь созданный XHTML-документ целиком (листинг 13.1).

Листинг 13.1. Образец XHTML-документа

<?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">

<html xmlns="http://www.w3.org/TR/xhtml1" xml:lang="en" lang="en">

<head>

<title>Это наш первый XHTML-документ</title>

</head>

<body>

...Здесь находится содержимое документа...

</body>

</html>

Все компоненты этого документа должны быть вам знакомы. В начале стоят объявления об использовании в документе языка XML 1.0 и переходных правил XHTML 1.0 DTD. В декларативной части внутри элемента head содержится элемент title заголовка документа, который в языке XHTML обязателен. В элементе html с помощью атрибута xmlns объявлено, что по умолчанию пространством имен документа будет XHTML 1.0. С помощью атрибута lang указано, что в документе XHTML применяется английский язык.

Однако что теперь мы можем ввести в тело XHTML-документа? Поскольку мы объявили использование для него переходных правил DTD XHTML 1.0, допустимы практически любые элементы, теги и атрибуты языка HTML 4.01, однако при их использовании мы должны учитывать определенные ограничения. Эти ограничения еще более жестки в готовящейся версии языка XHTML 1.1, причем настолько, что практически исключают какие-либо вольности в составлении XHTML-документов. Мы же ограничимся более либеральной версией 1.0.

Данный текст является ознакомительным фрагментом.