ГЛАВА1
Зачем нужен XML?



Язык XML (Extensible Markup Language) был разработан рабочей группой XML Working Group консорциума World Wide Web Consortium (W3C). Вот как описывают его создатели:

«Расширяемый язык разметки Extensible Markup Language (XML) представляет собой составную часть языка SGML... Он предназначен для облегчения использования языка SGML в Web и выполнения задач, которые в настоящее время реализуются с помощью языка HTML. XML разработан с целью усовершенствовать применение и взаимодействие языков SGML и HTML.»

Это выдержка из спецификации версии 1.0 XML, созданной XML Working Group в феврале 1998 г. Весь документ вы можете найти на сайте W3C по адресу http://www.w3.org/TR/REC/-xml.

XML — язык разметки, разработанный специально для размещения информации в World Wide Web, аналогично языку гипертекстовой разметки HTML (Hypertext Markup Language), который изначально стал стандартным языком создания Web-страниц. Поскольку язык HTML полностью удовлетворяет всем нашим потребностям, возникает вопрос: для чего понадобился совершенно новый язык для Web? В чем состоят его преимущества и достоинства? Как он взаимодействует с HTML? Заменит ли он HTML, или только усовершенствует его? Наконец, что собой представляет язык SGML, частью которого является XML, и почему нельзя использовать для Web-страниц собственно SGML? В этой главе я постараюсь ответить на все эти вопросы.

  Предназначение XML

Язык HTML предоставляет фиксированный набор элементов, которые вы можете использовать для размещения компонентов на типовой Web-стра-нице, Примерами таких элементов являются заголовки, абзацы, списки, таблицы, изображения и связи, Например, HTML отлично подходит для

создания личной домашней страницы. Ниже приведено описание домашней страницы в кодах HTML:

<HTML>

<HEAD>

<TITLE>Home Раgе</TITLE>

</HEAD>

<BODY>

<H1><IMG SRC="MainLogo.gif"> Michael Young's 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>

В Microsoft Internet Explorer 5 эта страница будет отображена, как показано на рисунке на следующей странице.

Каждый элемент начинается с начального тега: текста, заключенного в угловые скобки (< >), который содержит имя элемента и дополнительную информацию. Большинство элементов заканчиваются конечным тегом, который повторяет соответствующий начальный тег, за исключением того, что имеет символ косой черты (/) перед именем элемента. Элемент содержание представляет собой текст, расположенный между начальным и конечным тегами, как показано на рисунке на следующей странице. Обратите внимание, что многие элементы в предыдущем примере содержат вложенные элементы.

В рассматриваемом примере HTML-страницы содержатся следующие элементы:

Элемент HTML Составляющая разметки страницы

HTML

Вся страница

HEAD

Информация о заголовке, например, название страницы

TITLE

Название страницы, которое появляется в строке заголовка окна браузера

BODY

Основной текст, отображаемый браузером

H1

Заголовок верхнего уровня

H2

Заголовок второго уровня

P

Абзац текста

UL

Маркированный список (Unordered List)

LI

Отдельный элемент в списке (List Item)

IMG

Изображение

A

Связь с другой страницей или с другим местом данной страницы (элемент Anchor)

EM В

Блок текста, набранного курсивом (EMphasized) Блок текста, набранного полужирным шрифтом

Браузер, отображающий HTML-страницу, распознает каждый из этих стандартных элементов и отображает их в соответствующем формате. Например, обычно браузер отображает заголовок H1 наибольшим размером шрифта, заголовок Н2 - меньшим размером шрифта, а элемент Р - еще меньшим размером шрифта. Элемент LI отображается как абзац текста в составе маркированного списка. Элемент А браузер преобразует в ссылку (подчеркнутый текст), на которой пользователь может щелкнуть, чтобы перейти в другое место текущей страницы или на другую страницу.

Хотя набор HTML-элементов был существенно расширен по сравнению с первой версией HTML, язык HTML по-прежнему не пригоден для пред-

ставления многих типов документов. Ниже приведены примеры документов, которые не могут быть адекватно описаны с помощью языка HTML.

<Н2> Содержимое Web-сайта </Н2>

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

Язык XML позволяет преодолеть эти ограничения.

 

Язык XML решает проблемы

Описание на языке XML представляет собой операторы, написанные с соблюдением определенного синтаксиса. Когда вы создаете XML-доку-мент, то вместо использования ограниченного набора определенных элементов вы имеете возможность создавать ваши собственные элементы и присваивать им любые имена по вашему выбору - именно поэтому язык XML янлнстсн расширяемым (extensible). Следовательно, вы можете использовать XML для описания практически любого документа, от музы-

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

<?xml version="1.0"?><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>Moby-Dick</TITLE>

<AUTHOR>Herman Melville</AUTHOR>

<BINDING>trade paperback</BINDING>

<PAGES>605</PAGES>

<PRICE>$4.95</PRICE> </BOOK> 

<BOOK>

<TITLE>The Scarlet Letter</TITLE>

<AUTHOR>NathanielHawthorne</AUTHOR>

<BINDING>trade paperback</BINDING>

<PAGES>253</PAGES>

<PRICE>$4.25</PRICE> 

</BOOK> 

</INVENTORY>

Примечание. Для описания базы данных в XML предусмотрена возможность работы с несколькими форматами (например, формат .mdb Access или .dbf dBase): язык XML построен на принципе открытых и доступных стандартов.

Имена элементов в XML-документе (такие как INVENTORY, BOOK и TITLE в приведенном выше примере) не являются определениями языка XML. Вы всего лишь назначаете эти имена при создании определенного документа. Для ваших элементов вы можете выбирать любые корректно заданные имена (LIST вместо INVENTORY, либо ITEM вместо BOOK).

Совет. Когда вы присваиваете имена в XML-документе, старайтесь делать их по возможности наиболее информативными. Одним из преимуществ XML-документа является то, что каждому фрагменту информации может быть присвоено информативное описание.

В предыдущем примере XML-документ имеет иерархическую структуру в виде дерева с элементами, вложенными в другие элементы, и с одним элементом верхнего уровня (в нашем примере - INVENTORY). Он носит название элемент Документ взяли корневой элемент и содержит все другие элементы. Структуру описанного в примере документа можно представить, как показано на следующем рисунке.

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

  Создание ХМ L-документов

Поскольку в XML нет типовых элементов, может показаться, что в нем вообще отсутствуют какие-либо стандарты. Тем не менее, язык XML имеет строго определенный синтаксис. Например, в отличие от HTML каждый элемент XML должен содержать начальный и конечный тег (либо специальный пустой тег, о котором пойдет речь в последующих главах). Любой вложенный элемент должен быть полностью определен внутри элемента, в состав которого он входит.

На деле гибкость в создании ваших собственных элементов требует строгого соблюдения синтаксиса. Это обусловлено тем, что структура XML-документов должна быть понятной для программы, которая обрабатывает и отображает информацию, содержащуюся в этих документах. Строгий синтаксис придает XML-документ; предсказуемую форму и облегчает написание программы обработки. Основное назначение языка XML — облегчить работу с документами в Web.

Во второй части книги будут затронуты вопросы создания XML-докумен-тов в соответствии с синтаксическими правилами. Вы узнаете, как создавать XML-документ, удовлетворяющий одному из двух уровней синтаксических ограничений. В зависимости от уровня соответствия стандартам документ может быть «верно сформированным» («well-formed») либо «валидным» («valid»).

  Отображение XML-докумеитов

При отображении HTML-страницы браузер определяет, что элемент H1, например, является заголовком верхнего уровня, и отображает его в соответствующем формате. Это определяется тем, что данный элемент является частью HTML-стандарта. Но каким образом браузер либо другая программа определяет, как обрабатывать и отображать элементы созданного вами XML-документа (такого как BOOK или BINDING в нашем примере), если вы сами составили эти элементы?

Есть три основных способа сообщить браузеру (в частности, Microsoft Internet Explorer 5), как обрабатывать и отображать каждый из созданных вами XML-элементов. (Подробнее об этом будет рассказано в 3 части.)

  SGML, HTML и XML

Обобщенный структурированный язык разметки (Structured Generalized Language — SGML) является родоначальником всех языков разметки. Языки HTML и XML образованы из SGML (хотя и различными способами). SGML определяет базовый синтаксис, но дает вам возможность создавать собственные элементы (отсюда термин обобщенный в названии языка). Чтобы использовать SGML для описания определенного документа, вы должны продумать соответствующий набор элементов и структуру документа. Например, чтобы написать книгу, вы должны использовать созданные вами элементы с именами BOOK, PART, CHAPTER, INTRODUCTION, A-SECTION, B-SЕCTION, C-SECTION и т.д.

Набор наиболее употребительных элементов, используемых для описания документа определенного типа, называется SGML-приложением. (SGML-приложение также включает в себя правила, устанавливающие способы организации элементов, а также другие особенности их взаимодействия - о чем пойдет речь в главе5.) Вы можете определить ваше собственное SGML-приложение, чтобы описать тип документа, с которым вы работаете, либо в теле основной программы должно быть определено SGML-приложение для описания типовых документов. Наиболее известным примером последнего типа приложений является HTML, который представляет собой SGML-пpилoжeниe, разработанное в 1991 г. для описания Web-страниц.

Казалось бы, язык SGML вполне подходит для описания Web-документов. Однако разработчики из консорциума W3C посчитали, что он является слишком сложным и фундаментальным, чтобы эффективно представлять, информацию в Web. Гибкость и большое обилие средств, поддерживаемых SGML, затрудняет написание программного обеспечения, необходимого для обработки и отображения SGML-информации в Web-браузерах. Следовало бы приспособить часть языка SGML специально для помещения информации в "Web. В 1996 г. группа XML Working Group разработала ветвь языка SGML, назвав его расширяемым языком разметки - Extensible Markup Language.

XML является упрощенной версией SGML, приспособленной для Web. Как и SGML, XML дает возможность разрабатывать собственные наборы элементов при описании определенного документа. Как и в SGML, в теле программы может быть определено XML-приложение (или словарь), которое содержит набор наиболее употребительных элементов общего назначения и структуру документа, которая может быть использована для описания документа определенного типа (например, документов, содержащих математические формулы или векторную графику). Об XML-при-ложениях вы подробнее узнаете далее в этой главе.

Синтаксис XML более простой, чем SGML, что облегчает восприятие XML-документов, а также написание программ браузеров, кодов и Web-страниц для доступа и представления информации документа.

  Заменит ли XML HTML?

На сегодняшний день ответ на этот вопрос отрицательный. HTML по-прежнему остается основным языком для сообщения браузеру, как отображать информацию в Web.

В Internet Explorer 5 вы можете открывать XML-документы с вложенными таблицами стилей непосредственно браузером, не используя HTML-страницы. Однако в двух других основных методах отображения XML-документов - связывании данных и DOM-сценариях - отображение XML-документов осуществляется через HTML Web-страницы. (Даже при применении метода таблиц стилей в случае, если вы используете язык XSL, вам потребуется воспользоваться HTML, чтобы сообщить браузеру, каким образом форматировать XML-данные.)

Не заменяя HTML, XML в настоящее время используется в сочетании с ним, существенно расширяя возможности Web-страниц для:

Как заявляют сами разработчики, XML был создан для взаимодействия с HTML и совместного с ним использования.

  Официальные концептуальные цели XML

Ниже представлено десять концепций предназначения и целей применения XML, заявленных в официальной спецификации W3C, которые содержатся на Web-сайте http://www.w3.org/TR/REC-xml.

«1. XML должен стать языком прямого использования в Internet.»

Как вы уже могли понять, XML был разработан главным образом для хранения и распространения информации в Web.

«2. XML будет поддерживать большое количество приложений.»

Хотя основным его назначением является распространение информации в Web через серверы и программы-браузеры, XML также разработан для использования его другими программами. Например, XML применяется для обмена информщией между финансовыми программами, для распространения и обновления программных продуктов, а также написания голосовых сценариев при доставке информации по телефону.

«3.XML будет совместим с SGML.»

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

«4. Будет легче писать программы, обрабатывающие XML-документы.»

Для практического использования XML необходимо, чтобы было достаточно просто писать браузеры и другие программы, обрабатывающие XML-документы. На деле основной причиной выделения XML из SGML была доступность написания программ для обработки XML-документов.

Все перечисленные далее свойства являются в той или иной степени производными этой основной концепции.

«5. Количество дополнительных функций в XML должно быть минимальным, а в идеале — нулевым.»

Минимальное число дополнительных функций в XML упрощает написание программ для обработки XML-документов. Изобилие дополнительных подключаемых функщй в SGML стало основной причиной, обусловившей его практическую непригодность для представления Web-документов. Дополнительные функции SGML требуют переопределения символов-разделителей для тегов (обычно <and>) и пропуск конечного тега с целью обнаружения процессором конца элемента. При строгом написании программы обработки SGML-документов необходимо учитывать возможность появления всех дополнительных функций, даже если они редко встречаются.

«6. XML-документы должны быть понятными и ясными для пользователя.»

XML призван стать lingua franca (универсальным языком) для обмена информацией среди пользователей и программ по всему миру. В соответствии с этой концепцией пользователи, а также специализированные программы, должны иметь возможность создавать и прочитывать XML-документы. Доступность и прозрачность для пользователя выделяют XML из большинства других форматов, применяемых при построении баз данных и текстовых документов.

Пользователь может легко прочесть XML-документ, поскольку он описан простым текстом и имеет логичную иерархическую структуру в виде дерева. Вы можете упростить XML-документы, назначив информативные имена для элементов, атрибутов и объектов, а также добавив полезные комментарии. (Об этом пойдет речь далее в данной главе.)

«7. Разработка XML должна быть завершена достаточно быстро.»

XML станет общепринятым стандартом лишь в том случае, если программисты и пользователи примут его. Следует создать этот стандарт до того, как общество примет альтернативные стандарты, которые все быстрее создаются компаниями-разработчиками программного обеспечения.

«8. Язык XML должен быть формальным и кратким.»

Спецификация XML написана на формальном языке, используемом для представления компьютерных языков, с нотацией, известной как расширенная форма Бакус-Наура (Extended Backus-Naur Form (EBNF)). Этот формальный язык, хотя и достаточно сложен для восприятия, лишен двусмысленности и существенно облегчает написание XML-документов, а в особенности программ для их обработки.

«9. XML-документы будет проще создавать.»

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

«10. Сжатая форма при XML-разметке не важна.»

В соответствии с пунктом 6 (XML-документ должен быть ясным и понятным для пользователя), XML-разметка не должна быть излишне сжатой, чтобы не вступать в противоречие с указанной целью.

  Стандартные XML-приложения

Вы можете использовать XML не только для описания отдельного документа. Индивидуальный пользователь, компания или комитет по стандартам может определить необходимый набор элементов XML и структуру документа, которые будут применяться для особого класса документов. Подобный набор элементов и описание структуры документа называют XML-приложением или XML-словарем.

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

XML-приложение обычно определяется созданием описателя типа документа (DTD), который является допустимым компонентом XML-документа. DTD построен по схеме базы данных: он устанавливает и определяет имена элементов, которые могут быть использованы в документе, порядок, в котором элементы могут появляться, доступные к применению атрибуты элементов и другие особенности документа. Для практического использования XML-приложения вы обычно включаете его DTD в ваш XML-документ; наличие DTD в документе ограничивает круг элементов и структур, которые вы будете использовать, вследствие чего ваш документ отвечает стандартам данного приложения. Описания XML-документов, рассмотренных ранее в этой главе, не включали DTD. О том, как задавать и использовать DTD, вы узнаете в главе 5.

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

  XML-приложения, повышающие качество XML-документов

Кроме XML-приложений для описания определенных классов документов, имеется несколько XML-приложений, которые вы можете применять внутри XML-документа любого типа. Эти приложения облегчают создание документа и улучшают его качество. Ниже приведены примеры таких приложений.

Об XLS будет рассказано в главе 10. Другие XML-приложения еще не доведены до готовности и не рассматриваются в этой книге. (XLink и XPointer не поддерживаются в Internet Explorer 5).

Как видите, XML является не только полезным инструментом для описания документов, но и служит основой для построения приложений и расширении, которые могут оказаться востребованными по мере развития Internet.

  Реальное использование XML

Хотя концепция XML весьма интересна, у вас может возникнуть вопрос, как его применить на практике. В этом разделе приведен перечень примеров такого применения XML, как уже широко используемых, так и перспективных. Если имеются соответствующие XML-приложения для практического использования, они будут приведены в скобках. Например, вы сможете узнать, что XML-приложение MathML позволит вам форматировать математические формулы.

Ссылка. Более полный список текущих и перспективных XML-приложений, включая их подробное описание, вы можете найти на Web-странице Oasis SGML/XML (http://www.oasis-open.arg/cover/ocml. htmW applications).





Copyright © Realcoding.NET 2003-2007. При перепечатке материалов ссылка на автора материала обязательна.
Сообщить об ошибке или написать письмо администрации через форму контактов.

realcoding.net Webalta Уровень доверия