Лекция № 10
«Структура документа XML»
Введение
XML означает Extensible Markup Language – это расширяемый язык разметки, разработанный рабочей группой XML Working Group консорциума World Wide Web Consortium (W3C).
Языки разметки прошли путь от первых форм, создававшихся компаниями и госучреждениями, до стандартного языка обобщенной разметки (Standard Generalized Markup Language – SGML), гипертекстового языка разметки (HypertextMarkupLanguage – HTML) и в конечном итоге до расширяемый язык разметки XML. SGML может показаться сложным, а HTML (который, по сути, сначала был просто набором элементов) оказался недостаточно мощным для идентификации информации.
XML представляет собой составную часть языка SGML. Он предназначен для облегчения использования языка SGML в Web и выполнения задач, которые в настоящее время реализуются с помощью языка HTML. XML разработан с целью усовершенствовать применение и взаимодействие языков SGML и HTML.
Большинство современных СУБД форматируют результаты запроса к базе данных, т.е., отображают данные в виде XML-файла (XML-страницы). Отображать XML-файлы в браузере с использованием HTML разметки позволяют программы XML- парсеры –анализаторы кода.
Например, в разнообразные продукты Майкрософт, например Microsoft Windows, Microsoft Internet Explorer, Microsoft Office и Microsoft SQL Server, включены различные версии MSXML (Microsoft XML Parser). Модуль синтаксического анализа MSXML включен в файлы Msxml.dll, Msxml2.dll, Msxml3.dll, Msxml4.dll, Msxml5.dll, Msxml6.dll, а также в один или несколько файлов ресурсов. К некоторым версиям MSXML также прилагаются службы Windows HTTP Services (Winhttp*.dll). Средство синтаксического анализа Microsoft XML Parser – это реализация модели DOM W3C в формате COM.
Язык XML всё время развивается, уже создано много общепринятых реализаций XML. Наиболее известны такие языки:
XHTML – язык гипертекстовой разметки HTML, приведенный в соответствие с правилами XML;
MathML – язык записи математических формул;
CML – язык записи химических формул;
VoxML – язык записи звуков;
WML – язык, применяемый в беспроводной технологии.
Есть еще множество других языков, их число растет с каждым днем.
Вопрос № 1. Общие сведения о языках разметки
Общие сведения о языке HTML
В полиграфии при подготовке документа к печати его рукописный вариант испещряется корректурными знаками и цветными пометками, указывающими наборщику, какой шрифт выбрать при наборе текста. Именно по этому пути пошла Web-технология, успешно воплотив его в гипертекстовом языке разметок HTML (Hypertext Markup Language). В этом языке пометки, называемые тегами (tags), записываются в угловых скобках, чтобы отличить их от символов самого текста. Пример 1:
<html>
<body>
<h2 align=center>3aголовок</h2>
Обычный текст,
<i> курсив</i>,
снова обычный текст.
<p> Теперь <u> подчеркнутый текст </u> <p>
Текст <font size=+3> увеличенного размера </font>
</body>
</html>
В примере тег <h2> (header) показывает, что дальше идет заголовок второго уровня. Параметр align=center тега <h2> предписывает размещение заголовка посередине окна браузера. Тег <i> (italic) означает, что дальше пойдет курсив, а тег <u> (underline) — что дальше надо выводить текст с подчеркиванием. Тег <р> (paragraph) начинает новый абзац. Тег <font> изменяет шрифт текста, в частности параметр size=+3увеличивает размер шрифта на три единицы.
Как видно в примере, многим тегам языка HTML соответствуют закрывающие теги, отмеченные наклонной чертой. Они отменяют действие открывающих тегов, возвращая текст к первоначальному виду. Сам текст записывается между тегами <body> и </body>, а весь документ — между тегами <html> и </html>.
Текст с тегами языка HTML "понимают" все браузеры. На рис. 1.1 показано, как выглядит текст примера в окне браузера Internet Explorer.
Рис. 1.1 - Текст HTML в окне браузера
Язык HTML предоставляет фиксированный набор элементов, которые можно использовать для размещения компонентов на типовой Web-странице. Примерами таких элементов являются заголовки, абзацы, списки, таблицы, изображения и связи.
Каждый элемент начинается с начального тега: текста, заключенного в угловые скобки (< >), который содержит имя элемента и дополнительную информацию. Большинство элементов заканчиваются конечным тегом, который повторяет соответствующий начальный тег, за исключением того, что имеет символ косой черты (/) перед именем элемента. Элемент Содержание представляет собой текст, расположенный между начальным и конечным тегами, как показано на рисунке 1.2.
Рис. 1.2 - Элемент
Многие элементы содержат вложенные элементы.
Кроме рассмотренных в примере 1 элементов, HTML-страницы могут содержать и другие элементы. Пример элементов приведён в таблице 1.1:
Таблица 1.1
Элемент HTML | Составляющая разметки страницы |
HTML | Вся страница |
HEAD | Информация о заголовке, например, название страницы |
TITLE | Название страницы, которое появляется в строке заголовка окна браузера |
BODY | Основной текст, отображаемый браузером |
H1 | Заголовок верхнего уровня |
H2 | Заголовок второго уровня |
P | Абзац текста |
UL | Маркированный список (Unordered List) |
LI | Отдельный элемент в списке (List Item) |
IMG | Изображение |
A | Связь с другой страницей или с другим местом данной страницы (элемент Anchor) |
EM | Блок текста, набранного курсивом (EMphasized) |
B | Блок текста, набранного полужирным шрифтом |
Использование данных элементов показано на примере создания домашней страницы:
<HTML>
<HEAD>
<TITLE>Home Page</TITLE>
</HEAD>
<BODY>
<H1>Home Page</H1>
<P><EM>Welcome to my Web site!</EM></P>
<H2>Web Site Contents</H2>
<P>Please choose one of the following topics:</P>
<UL>
<LI><A Href="Writing.htm"><B>Writing</B></A></LI>
<LI><A Href="Family.htm"><B>Family</B></A></LI>
<LI><A Href="Photos.htm"><B>Photo Gallery</B></A></LI>
</UL>
<H2>Other Interesting Web Sites</H2>
<P>Click one of the following to explore another Web site:</P>
<UL>
<LI>
<A HREF=http://www.yahoo.com/>Yahoo Search Engine</A>
</LI>
<LI>
<A HREF=http://www.amazon.com/>Amazon Bookstore</A>
</LI>
<LI>
<A HREF=http://mspress.microsoft.com/>Microsoft Press</A>
</LI>
</UL>
</BODY>
</HTML>
B Microsoft Internet Explorer эта страница будет отображена, как показано на рисунке 1.3.
Рис. 1.3 - Отображение HTML страницы
Браузер, отображающий HTML-страницу, распознает каждый из этих стандартных элементов и отображает их в соответствующем формате. Например, обычно браузер отображает заголовок Н1 наибольшим размером шрифта, заголовок Н2 – меньшим размером шрифта, а элемент Р – еще меньшим размером шрифта. Элемент LI отображается как абзац текста в составе маркированного списка. Элемент А браузер преобразует в ссылку (подчеркнутый текст), на которой пользователь может щелкнуть, чтобы перейти в другое место текущей страницы или на другую страницу. Хотя набор HTML-элементов был существенно расширен по сравнению с первой версией HTML, язык HTML по-прежнему не пригоден для представления многих типов документов.
Язык разметок HTML прост и нагляден, но у него есть ряд недостатков:
- в языке HTML отсутствуют элементы, необходимые для отображения музыкальных символов или математических уравнений;
- можно использовать HTML-страницу, чтобы хранить и отображать информацию из статической базы данных (например, перечень книг и их описание). Однако, если нужно осуществить сортировку, фильтрацию, поиск и обработку информации, придется снабдить каждую из составных частей информации соответствующей меткой (как в программе, работающей с базами данных, такой как Microsoft Access), так как в языке HTML не предусмотрено соответствующих элементов;
- в языке HTML отсутствует какая либо иерархическая структура документа, т.е. нет деления информации на разделы, главы, части и т.д., а в HTML содержится лишь описание собственно текста.
Таким образом, в HTML существует два существенных ограничения.
Во-первых, набор тегов HTML строго фиксирован, его нельзя расширить или изменить. Все браузеры должны таким образом интерпретировать одинаковые теги, чтобы пользователь, написавший текст с разметками HTML, был уверен, что этот текст будет одинаково выглядеть во всех браузерах.
Во-вторых, теги языка HTML показывают только визуальную разметку, внешний вид документа, но ничего не говорят о его структуре.
Например, заголовки следует помечать одинаковым тегом, например тегом <h2>, даже если все они одного уровня.
Простота языка HTML перевесила все его недостатки. Она привела к взрывному росту числа Web-сайтов и авторов многочисленных Web-страничек. Обычные пользователи компьютеров ощутили себя творцами, получили возможность заявить о себе, высказать свои мысли и чувства, найти в Интернете своих единомышленников.
Ограниченные возможности языка HTML быстро перестали удовлетворять поднаторевших разработчиков, почувствовавших себя профессионалами. Введение каскадных таблиц стилей CSS (Cascading Style Sheet) и включений на стороне сервера SSI (Server Side Includes) лишь ненадолго уменьшило недовольство разработчиков. Профессионалу всегда не хватает средств разработки, он постоянно испытывает потребность добавить к ним какое-то свое средство, позволяющее воплотить все его фантазии.