Золотой серединой между языками SGML и HTML стал язык XML (Extensible Markup Language) — расширяемый язык разметок. Это подмножество языка SGML, избавленное от излишней сложности, но позволяющее разработчику Web-страниц создавать свои собственные теги. Язык XML достаточно широк, чтобы можно было создать все нужные теги, и достаточно прост, чтобы можно было быстро их описать.
Разработка XML началась в 1996 году. Ею занимается общественная организация W3C (World Wide Web Consortium), основной сайт которой находится по адресу http://www.w3c.org/. Сведения об XML собраны на странице http://www.w3c.org/XML/. В 1998 году консорциум выпустил спецификацию XML версии 1.0. Она постоянно совершенствуется, последний вариант спецификации всегда находится по адресу http://www.w3c.org/TR/rec-xml. Консорциум W3C начал разработку второй версии XML 1.1. Но окончательного варианта версии 1.1 ещё нет.
Описание на языке XML представляет собой операторы, написанные с соблюдением определенного синтаксиса. Когда создаётся XML-документ, то вместо использования ограниченного набора определенных элементов (см. Таблицу 1.1) имеется возможность создавать любые элементы и присваивать им любые имена по выбору разработчика – именно поэтому язык XML является расширяемым (extensible). Следовательно, можно использовать XML для описания практически любого документа, от музыкальной партитуры до базы данных. Например, в примере 2 описан перечень книг в виде XML-документа:
<?xml version="1.0"?>
- <!-- File Name: Inventory.xml -->
- <INVENTORY>
- <BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
- <BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
- <BOOK>
<TITLE>The Legend of Sleepy Hollow</TITLE>
<AUTHOR>Washington Irving</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>98</PAGES>
<PRICE>$2.95</PRICE>
</BOOK>
- <BOOK>
<TITLE>The Marble Faun</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
- <BOOK>
<TITLE>Moby-Dick</TITLE>
<AUTHOR>Herman Melville</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>724</PAGES>
<PRICE>$9.95</PRICE>
</BOOK>
- <BOOK>
<TITLE>The Portrait of a Lady</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>256</PAGES>
<PRICE>$4.95</PRICE>
</BOOK>
- <BOOK>
<TITLE>The Scarlet Letter</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>253</PAGES>
<PRICE>$4.25</PRICE>
</BOOK>
- <BOOK>
<TITLE>The Turn of the Screw</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>384</PAGES>
<PRICE>$3.35</PRICE>
</BOOK>
</INVENTORY>
Примечание. Для описания базы данных в XML предусмотрена возможность работы с несколькими форматами (например, формат .mdb - Access или .dbf - dBase): язык XML построен на принципе открытых и доступных стандартов.
Имена элементов в XML-документе (такие как INVENTORY, BOOK и TITLE в приведенном выше примере) не являются определениями языка XML. Эти имена элементам присвоены разработчиком произвольно при создании документа. Элементам можно давать любые корректно заданные имена (LIST вместо INVENTORY, либо ITEM вместо BOOK).
Совет. Когда вы присваиваете имена в XML-документе, старайтесь делать их по возможности наиболее информативными. Одним из преимуществ XML-документа является то, что каждому фрагменту информации может быть присвоено информативное описание.
В примере 2 XML-документ имеет иерархическую структуру в виде дерева с элементами, вложенными в другие элементы, и с одним элементом верхнего уровня (INVENTORY) – он носит название элемент Документ или корневой элемент, – который содержит все другие элементы. Структуру описанного в примере документа представлена на рисунке 1.4.
Рис. 1.4 - Дерево с элементами
Таким образом, с помощью XML можно описать иерархическую структуру документа, такого как книга, содержащего части, главы и разделы.
Правила написания документа XML не сложны, но с каждой разновидностью документов XML надо связать ее описание DTD (Document Type Definition) или какое-то другое описание структуры и способа разметки документов. Такое описание часто бывает сложнее самого документа. Оно выполняется на специальном языке описаний, значит, надо изучить и этот язык.
Одного описания документа недостаточно для успешной работы с ним. Нужны еще средства поиска информации в документе, перекрестные ссылки одних частей документа на другие.
Но и этого мало для работы с документами. Необходимо уметь быстро извлекать из документа нужную информацию, уметь преобразовывать документ и представлять его в различных видах.
Выводы:
В данном вопросе изучили основы создания HTML и SGML документов, но оба имеют недостатки:
HTML - имеет два существенных ограничения:
- во-первых, набор тегов HTML строго фиксирован, его нельзя расширить или изменить. Все браузеры должны таким образом интерпретировать одинаковые теги, чтобы пользователь, написавший текст с разметками HTML, был уверен, что этот текст будет одинаково выглядеть во всех браузерах:
- во-вторых, теги языка HTML показывают только визуальную разметку, внешний вид документа, но ничего не говорят о его структуре.
Язык SGML оказался слишком сложным, требующим тщательного и объемистого описания элементов создаваемого с его помощью языка.
Язык XML решает проблемы.