Основы 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>Nathaniel Hawthorne</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) – он носит название элемент Документ или корневой элемент, – который содержит все другие элементы. Структуру описанного в примере документа можно представить, как показано на рисунке 1.3.


Рис. 1.3. 

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



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


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

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

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

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

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

    "XML будет совместим с SGML.

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

    "Сжатой форме при XML-разметке придается минимальное значение.

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


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


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

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

    Таблица стилей. С помощью данного метода вы связываете таблицу стилей с XML-документом. Таблица стилей представляет собой отдельный файл, содержащий инструкции для форматирования индивидуальных XML-элементов. Вы можете использовать либо каскадную таблицу стилей (Cascading Style Sheet – CSS), которая также применяется для HTML-страниц, либо расширяемую таблицу в формате языка стилевых таблиц (Extensible Stylesheet Language – XSL), обладающую значительно более широкими возможностями, нежели CSS, и разработанную специально для XML-документов. Об этих методах будет рассказано в лекциях 2, 7 и 10.Связывание данных. Этот метод требует создания HTML-страницы, связывания с ней XML-документа и установления взаимодействий стандартных HTML-элементов на странице, таких как SPAN или TABLE, с элементами XML. В дальнейшем HTML-элементы автоматически отображают информацию из связанных с ними XML-элементов. Об этом способе рассказано в лекции 8.Написание сценария. В этом методе вы создаете HTML-страницу, связываете ее с XML-документом и имеете доступ к индивидуальным XML-элементам с помощью специально написанного кода сценария (JavaScript или Microsoft Visual Basic Scripting Edition [VBScript]). Браузер воспринимает XML-документ как объектную модель документа (Document Object Model – DOM), состоящую из большого набора объектов, свойств и команд. Написанный код позволяет осуществлять доступ, отображение и манипулирование XML-элементами. Этот метод будет описан в лекции 9.



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


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

    <HTML> <HEAD> <TITLE>Home Page</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>

    B Microsoft Internet Explorer 5 эта страница будет отображена, как показано на рисунке.


    Рис. 1.1. 

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


    Рис. 1.2. 

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

    Элемент HTMLСоставляющая разметки страницы
    HTMLВся страница
    HEADИнформация о заголовке, например, название страницы
    TITLEНазвание страницы, которое появляется в строке заголовка окна браузера
    BODYОсновной текст, отображаемый браузером
    H1Заголовок верхнего уровня
    H2Заголовок второго уровня
    PАбзац текста
    ULМаркированный список (Unordered List)
    LIОтдельный элемент в списке (List Item)
    IMGИзображение
    AСвязь с другой страницей или с другим местом данной страницы (элемент Anchor)
    EMБлок текста, набранного курсивом (EMphasized)
    BБлок текста, набранного полужирным шрифтом


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

    Документ, который не содержит типовых компонентов (заголовков, абзацев, списков, таблиц и т.д.) Например, в языке HTML отсутствуют элементы, необходимые для отображения музыкальных символов или математических уравнений.База данных, такая как каталог книг. Вы можете использовать HTML-страницу, чтобы хранить и отображать информацию из статической базы данных (например, перечень книг и их описание). Однако, если бы вам понадобится осуществить сортировку, фильтрацию, поиск и обработку информации, придется снабдить каждую из составных частей информации соответствующей меткой (как в программе, работающей с базами данных, такой как Microsoft Access). В языке HTML не предусмотрено соответствующих элементов.Документ, который вы хотите представить в виде иерархической структуры. Допустим, вы пишете книгу и хотите разбить ее на части, главы, разделы A, B, C и т.д. В дальнейшем программа может использовать данную структуру документа для создания оглавления, оформления различных уровней в структуре с помощью различных стилей, извлечения определенных разделов, а также обработки информации иными способами. Однако элемент типа заголовок в HTML содержит лишь описание собственно текста. Например: Содержимое Web-сайта



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

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

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


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

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

    Работа с базами данных. Подобно традиционным базам данных XML может быть использован для присвоения метки каждому полю информации внутри каждой записи базы данных. (Например, можно пометить каждое имя, адрес и номер телефона внутри записей списка адресов.) После этого вы сможете отображать данные различными способами и организовывать поиск, сортировку, фильтрацию и иную обработку данных.Структурирование документов. Иерархическая структура XML-документов идеально подходит для разметки структуры таких документов, как романы, научные труды, пьесы. Например, вы можете использовать XML для разметки пьесы на акты, сцены, размечать действующих лиц, сюжетные линии, декорации и т. д. XML-разметка дает возможность программам отображать или распечатывать документ в необходимом формате; находить, извлекать или манипулировать информацией в документе; генерировать оглавления, резюме и аннотации; обрабатывать информацию иными способами.Работа с векторной графикой (VML – Vector Markup Language).Мультимедиа презентации (SMIL – Synchronized Multimedia Integration Language, HTML + TIME – HTML Timed Interactive Multimedia Extensions).Описание каналов. Каналы представляют собой Web-страницы, которые автоматически рассылаются подписчикам. (CDF – Channel Definition Format).Описание программных пакетов и их взаимосвязей. Такие описания обеспечивают распространение и обновление программных продуктов в сети. (OSD – Open Software Description).Взаимодействие приложений через Web с использованием XML-сообщений. Эти сообщения являются независимыми от операционных систем, объектных моделей и компьютерных языков. (SOAP – Simple Object Access Protocol).Отправка электронных бизнес-карт через e-mail.Обмен финансовой информацией. Обмен информацией в открытом и понятном формате осуществляется между финансовыми программами (такими как Quicken и Microsoft Money) и финансовыми институтами (банками, общественными фондами). (OFX – Open Financial Exchange).Создание, управление и использование сложных цифровых форм для коммерческих Internet-транзакций. Подобные формы могут включать оцифрованные подписи, которые делают их признанными юридически. (XFDL – Extensible Forms Description Language).Обмен запросами по приему на работу и резюме (HRMML – Human Resource Management Markup Language).Форматирование математических формул и научной информации в Web. (MathML – Mathematical Markup Language).Описание молекулярных структур (CML – Chemical Markup Language).Кодирование и отображение информации о ДНК, РНК и цепочках (BSML – Bioinformatic Sequence Markup Language).Кодирование генеалогических данных (GeDML – Genealogical Data Markup Language).Обмен астрономическими данными (AML – Astronomical Markup Language).Создание музыкальных партитур (MusicML –Music Markup Language).Работа с голосовыми сценариями для доставки информации по телефону. Голосовые сценарии могут быть использованы, например, для генерирования голосовых сообщений, справок о наличии товаров и прогнозов погоды (VoxML).Обработка и доставка информации курьерскими службами. Служба Federal Express, например, уже использует XML для этих целей.Представление рекламы в прессе в цифровом формате (Ad Markup).Заполнение юридических документов и электронный обмен юридической информацией (XCL – XML Court Interface).Кодирование прогнозов погоды (OMF – Weather Observation Markup Format).Обмен страховой информацией.Обмен новостями и информацией с использованием открытых Web-стандартов (XMLNews).Представление религиозной информации и разметка текстов богослужений (ThML – Theological Markup Language, LitML – Liturgical Markup Language).



    SGML, HTML и XML


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

    Набор наиболее употребительных элементов, используемых для описания документа определенного типа, называется SGML-приложением. (SGML-приложение также включает в себя правила, устанавливающие способы организации элементов, а также другие особенности их взаимодействия – о чем пойдет речь в лекции 5.) Вы можете определить ваше собственное SGML-приложение, чтобы описать тип документа, с которым вы работаете, либо в теле основной программы должно быть определено SGML-приложение для описания типовых документов. Наиболее известным примером последнего типа приложений является HTML, который представляет собой SGML-приложение, разработанное в 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-документов


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

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

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



    Стандартные 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-документа любого типа. Эти приложения облегчают создание документа и улучшают его качество. Ниже приведены примеры таких приложений.

    Extensible Stylesheet Language (XSL) позволяет вам создавать мощные стилевые таблицы с использованием синтаксиса XML.XML Schema позволяет разрабатывать подробные схемы для ваших XML-документов с использованием стандартного синтаксиса XML, что является более мощной альтернативой применения DTD.XML Linking Language (XLink) дает возможность связывать ваши XML-документы. Он поддерживает множественные целевые ссылки и другие полезные функции, обеспечивая большую свободу по сравнению с механизмом организации ссылок в HTML.XML Pointer Language (XPointer) позволяет определять гибкие целевые ссылки. При совместном использовании XPointer и XLink вы можете организовывать ссылки на любое место в целевом документе – а не только переходы к специально выделенным пунктам.

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

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



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


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

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

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

    виртуального представления документов любого типа;сортировки, фильтрации, упорядочения, поиска и манипулирования информацией иными способами;представления информации в структурированном виде.

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



    Анатомия XML-документа


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


    увеличить изображение
    Рис. 2.1. 



    Элемент Документ


    Второй основной частью XML-документа является единый элемент Документ, или корневой элемент, который в свою очередь содержит дополнительные элементы.

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

    В рассматриваемом примере элемент Документ – INVENTORY. Его начальный тег – <INVENTORY>, конечный тег – </INVENTORY>, а содержимое – восемь вложенных элементов BOOK.

    Примечание. Текст в XML-документе представляет собой перемежающиеся символьные данные и данные, относящиеся к разметке. Разметка – это текст, ограниченный разделителями и описывающий структуру документа. А именно, начальный и конечный теги элемента, теги пустого элемента, объявления типа документа, инструкции по обработке, ограничители раздела CDATA, символьные ссылки, ссылки на примитивы (entity). (Об элементах разметки вы узнаете в последующих лекциях.) Остальной текст представляет собой символьные данные – реальное информационное содержимое документа (в нашем примере это названия, фамилии авторов, цена и другая информация о книге).Примечание. Элемент Документ в XML-документе похож на элемент BODY на HTML-странице, за исключением того, что вы можете присвоить ему любое допустимое имя.

    В свою очередь, каждый элемент BOOK содержит ряд вложенных элементов, как показано на рисунке 2.2.


    Рис. 2.2. 

    Примечание. Имя, которое содержится в начальном и конечном теге, есть тип элемента.

    Каждый из элементов, вложенных в элемент BOOK, например, элемент TITLE, содержит только символьные данные, как показано на рисунке 2.3.


    Рис. 2.3. 

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

    on_load_lecture()



    Некоторые базовые правила XML


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

    Документ должен иметь только один элемент верхнего уровня (элемент Документ или корневой элемент). Все другие элементы должны быть вложены в элемент верхнего уровня.Элементы должны быть вложены упорядоченным образом. То есть, если элемент начинается внутри другого элемента, он должен и заканчиваться внутри этого элемента.Каждый элемент должен иметь начальный и конечный тег. В отличие от HTML, в XML не разрешается опускать конечный тег – даже в том случае, когда браузер в состоянии определить, где заканчивается элемент. (В лекции 3 вы познакомитесь с усеченной нотацией, которую можно применять для пустых элементов – т.е. элементов, не имеющих содержимого.)Имя типа элемента в начальном теге должно в точности соответствовать имени в соответствующем конечном теге.Имена типов элементов чувствительны к регистру, в котором они набраны. В действительности весь текст внутри XML-разметки является чувствительным к регистру. Например, следующее описание элемента является неправильным, поскольку имя типа элемента в начальном теге не соответствует имени типа в конечном теге:

    <TITLE>Leaves of grass</Title> <!-- некорректный элемент -->

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



    просматривает содержимое документа. Если он


    Прежде чем Internet Explorer 5 отобразит ваш XML-документ, его встроенный синтаксический XML-анализатор (parser) просматривает содержимое документа. Если он обнаружит ошибку, Internet Explorer 5 отобразит страницу с сообщением об ошибке, не предпринимая попытки отобразить документ. Internet Explorer 5 отобразит страницу с сообщением об ошибке независимо от того, связан ли XML-документ с таблицей стиля.

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

    В следующем упражнении вы исследуете возможности Internet Explorer 5 по обнаружению ошибок, искусственно введя ошибку в документ Inventory.xml.

      В вашем текстовом редакторе откройте документ Inventory.xml, созданный вами в предыдущем упражнении. Измените первый элемент TITLE с

      <TITLE>The Adventures of Huckleberry Finn</TITLE>

      на

      <TITLE>The Adventures of Huckleberry Finn</Title>

      Сохраните внесенные изменения.В Windows Explorer (Проводник) или в окне папки дважды щелкните на имени файла документа Inventory.xml. Вместо того, чтобы отобразить XML-документ, Internet Explorer 5 теперь отобразит следующую страницу с сообщением об ошибке, как показано на рисунке 2.6.


      увеличить изображение
      Рис. 2.6. 

      Поскольку вы еще будете работать с Inventory.xml в этой лекции, вам теперь нужно восстановить конечный тег для первого элемента TITLE, вернув ему первоначальный вид (/TITLE), а затем повторно сохранить документ.
    Примечание. Когда вы открываете XML-документ непосредственно в Internet Explorer 5, транслятор проверяет лишь соответствие документа формальным правилам построения (корректность формы), и в случае обнаружения несоответствия выдает сообщение об ошибке. Полное соответствие правилам для документа (валидность) не проверяется. Даже в случае, если вы не связываете таблицу стилей с XML-документом, Internet Explorer 5 использует для отображения документа имеющуюся по умолчанию таблицу стилей; именно поэтому в описании ошибки упоминается использование XSL-таблицы стилей ("using XSL style sheet"). О XSL-таблицах стиля вы узнаете в лекции 10.



    Совет. Если вы последовательно выполняете упражнения из данного курса, имейте в виду, что вы можете быстро проверить, является ли документ корректно сформированным, открыв его непосредственно в Internet Explorer 5. (Если вы отображаете XML-документ через HTML-страницу, как описывается в 3 части, XML-документ с ошибкой не будет отображен, но и сообщение об ошибке не появится, если вы не написали для этого соответствующий сценарий (скрипт-код).

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


    Вы можете открыть XML-документ непосредственно через Internet Explorer 5, точно так же, как вы бы открыли HTML Web-страницу.

    Если XML-документ не содержит связи с таблицей стилей, Internet Explorer 5 помечает различные составные части документа различным цветом, чтобы облегчить их распознавание, а также представляет элемент Документ в виде иерархического дерева с возможностью свертывания и развертывания структуры и просмотра с меньшей или большей степенью детализации.

    Если же XML-документ имеет связь с таблицей стиля, Internet Explorer 5 отобразит только символьные данные из элементов документа, отформатировав их в соответствии с правилами, установленными в таблице стиля. Вы можете использовать либо таблицу каскадных стилей (CSS-таблицу, аналогичную той, которая используется для HTML-страниц), либо XSL-таблицу стилей (Extensible Stylesheet Language), которая является более мощным инструментом и строится в соответствии с синтаксисом, принятым для XML. Такие таблицы могут использоваться исключительно для XML-документов.



    Отобразите XML-документ без таблицы стиля


      В Windows Explorer (Проводник), или в окне папки, дважды щелкните на имени файла Inventory.xml, который вы сохранили в предыдущем упражнении. Internet Explorer 5 отобразит документ, как показано на рисунке 2.4.


      увеличить изображение
      Рис. 2.4. 

      Попробуйте изменить степень детализации представления элементов документа. Щелкните на символе знака минус (-) слева от начального тега, чтобы свернуть элемент, либо на знаке плюс (+) рядом со свернутым элементом, чтобы развернуть его. Например, щелкнув на знаке минус (-) рядом с элементом INVENTORY, вы получите то же, что представлено на рисунке 2.5.


      увеличить изображение
      Рис. 2.5. 

    on_load_lecture()

    Дальше »

      Если Вы заметили ошибку - сообщите нам.  
    Страницы:

    « |

    1

    |

    2

    |

    3

    |

    4

    |

    вопросы | »

    |

    для печати и PDA

    Курсы | Учебные программы | Учебники | Новости | Форум | Помощь



    Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru

    © 2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование



    Отобразите XML-документ с использованием таблицы каскадных стилей


      Откройте новый, пустой текстовый файл в вашем текстовом редакторе и заполните CSS-таблицу, как показано в Листинге 2.2.С помощью команды Save (Сохранить) вашего текстового редактора сохраните таблицу стиля на жестком диске, задав имя файла Inventory01.css. Созданная вами CSS-таблица сообщает Internet Explorer 5, каким образом форматировать символьные данные элементов. Отображать каждый элемент BOOK с отступом сверху в 12 пт (margin-top:12pt) с переводом строки сверху и снизу (display:block), используя размер шрифта 10 пт (font-size:10pt).Отображать каждый элемент TITLE курсивом (font-style:italic).Отображать каждый элемент AUTHOR полужирным (font-weight:bold).

      /* File Name: Inventory01.css */ BOOK {display:block; margin-top:12pt; font-size:10pt} TITLE {font-style:italic} AUTHOR {font-weight:bold}

      Листинг 2.2. Inventory.xml (html, txt)

      В вашем текстовом редакторе откройте документ Inventory.xml, созданный вами в предыдущем упражнении. Добавьте в конце пролога документа (непосредственно над элементом INVENTORY) следующую инструкцию по обработке:

      <?xml-stylesheet type="text/css" href="Inventory01.css"?>

      Эта инструкция по обработке устанавливает связь созданной вами CSS-таблицы и XML-документа. В результате при открытии документа в Internet Explorer 5 браузер отобразит содержимое документа в соответствии с инструкциями, записанными в таблице стилей.

      Чтобы отразить новое имя файла, которое вы собираетесь присвоить, измените комментарий в начале документа с

      <!-- File Name: Inventory.xml -->

      на

      <!-- File Name: Inventory01.xml -->

      В Листинге 2.3 представлен весь XML-документ.

      Воспользуйтесь командой Save As (Сохранить как) вашего текстового редактора, чтобы сохранить копию измененного документа под именем Inventory01.xml. Проверьте, чтобы этот файл был сохранен в той же папке, что и файл Inventory01.css.

      <?xml version="1.0"?> <!-- File Name: Inventory01.xml --> <?xml-stylesheet type="text/css" href="Inventory01.css"?> <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> </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


      Листинг 2.3. Inventory01.xml (html, txt)

      В Windows Explorer (Проводник) или в окне папки дважды щелкните на файле Inventory01.xml, чтобы открыть документ.

      Internet Explorer 5 откроет документ Inventory01.xml и отобразит его в соответствии с правилами из связанной таблицы стилей, как показано на рисунке 2.8.

      Чтобы почувствовать, как можно изменять представление XML-документа путем модификации связанной таблицы стилей, откройте новый, пустой текстовый файл в вашем текстовом редакторе и введите измененную CSS-таблицу, как показано в Листинге 2.4. Воспользуйтесь командой Save (Сохранить) вашего текстового редактора, чтобы сохранить новую таблицу стилей на жестком диске, присвоив ей имя файла Inventory02.css.


      Рис. 2.7. 

      Созданная вами модифицированная таблица стилей сообщает Internet Explorer 5, каким образом форматировать символьные данные элементов.

      Отображать каждый элемент BOOK с отступом сверху в 12 пт (margin-top:12pt) и с переводом строки сверху и снизу (display:block), используя размер шрифта 10 пт (font-size:10pt).Отображать каждый из элементов TITLE, AUTHOR, BINDING и PRICE в отдельной строке (display:block).Отображать элемент TITLE шрифтом с размером 12 пт (font:size:12pt), полужирным (font-weight:bold), курсивом (font-style:italic). (Обратите внимание, что установка для элемента TITLE размера шрифта 12 пт превалирует над установкой размера 10 пт для родительского элемента BOOK.)отступ слева для каждого из элементов AUTHOR, BINDING и PRICE на 15 пт (margin-left:15pt).Отображать элемент AUTHOR полужирным (font-weight:bold).Не отображать элемент PAGES (display:none).

      /* File Name: Inventory02.css */ BOOK {display:block; margin-top:12pt; font-size:10pt}

      TITLE {display:block; font-size:12pt; font-weight:bold; font-style:italic}

      AUTHOR {display:block; margin-left:15pt; font-weight:bold}

      BINDING {display:block; margin-left:15pt}

      PAGES {display:none}

      PRICE {display:block; margin-left:15pt}

      Листинг 2.4. Inventory02.xml (html, txt)

      В вашем текстовом редакторе откройте документ Inventory.xml. Добавьте в конце пролога документа (над элементом INVENTORY) следующую инструкцию по обработке:



      <?xml-stylesheet type="text/css" href="Inventory02.css"?>

      Эта инструкция по обработке устанавливает связь между новой CSS-таблицей, созданной вами, и XML-документом.

      Чтобы отразить новое присвоенное вами имя файла, измените комментарий в начале документа с

      <!-- File Name: Inventory.xml -->

      на

      <!-- File Name: Inventory02.xml -->

      В Листинге 2.5 представлен полный XML-документ.

      Воспользуйтесь командой Save As (Сохранить как), чтобы сохранить копию измененного документа под именем Inventory02.xml. Проверьте, чтобы этот файл был сохранен в той же папке, что и файл Inventory02.css.

      Листинг 2.5.

      (html, txt)

      В Windows Explorer (Проводник) или в окне папки дважды щелкните на имени файла Inventory02.xml, чтобы открыть его.

      Internet Explorer 5 откроет документ Inventory02.xml и отобразит его в соответствии с правилами, установленными в связанной таблице стилей Inventory02.css, как показано на рисунке 2.8 (здесь представлено лишь четыре книги; осуществив прокрутку вниз, вы увидите остальные).


      увеличить изображение
      Рис. 2.8. 

      Ссылка. В 3 части вы найдете подробные и исчерпывающие инструкции для отображения XML-документов в Web. Вы познакомитесь с каскадными таблицами стилей, подобными только что созданным вами, в лекции 7. О XSL-таблицах рассказывается в лекции 10. В лекциях 8 и 9 вы узнаете об альтернативных методах отображения XML-документов в Web.

      Пролог


      В данном примере документа пролог состоит из трех строк:

      <?xml version="1.0"?> <!-- File Name: Inventory.xml -->

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

      Вторая строка пролога состоит из пробела. С целью улучшения внешнего вида документа вы можете вставлять любое количество пустых строк между элементами пролога. При обработке они будут игнорироваться.

      Третья строка пролога представляет собой комментарий. Добавление комментариев в XML-документ не обязательно, но позволяет сделать его более понятным. Комментарий начинается с символов <!-- и заканчивается символами -->. Между этими двумя группами символов вы можете поместить любой текст (за исключением -->); XML-процессор проигнорирует его.

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

      Пролог может также содержать следующие необязательные компоненты:

      объявление типа документа, определяющее тип и структуру документа. Объявление типа документа должно следовать после XML-объявления;одна или несколько инструкций по обработке, содержащих информацию о порядке проходов при обработке приложения XML-процессором. Далее в этой лекции вы познакомитесь с инструкцией по обработке для связывания таблицы стиля с XML-документом.Примечание. XML-процессор – это программный модуль, считывающий XML-документ и обеспечивающий доступ к его содержимому. Он также предоставляет этот доступ другим программным модулям, или приложениям, которые манипулируют и отображают содержимое документа. Если вы отображаете XML-документ в Internet Explorer 5, браузер включает в себя как XML-процессор, так и приложение. (Если для отображения XML-документа вы используете HTML и сценарий (скрипт-код), то при этом самостоятельно создаете часть приложения.) Обратите внимание, что термин приложение в данном случае отличен от термина, применяемого для обозначения XML-приложения (или словаря) как целевого набора элементов и структуры документа, которые используются для описания документов определенного типа (см. лекцию 1).



      Создание XML-документа


      Поскольку описание XML-документа представляет собой простой текст, вы можете создать его, используя ваш любимый текстовой редактор, например, редактор Notepad, входящий в состав Microsoft Windows. Еще лучше воспользоваться редактором, в котором предусмотрена возможность анализа исходных кодов, например, текстовым редактором Microsoft Visual Studio, рассчитанным на работу с Microsoft Visual C++, Microsoft Visual InterDev, Microsoft Visual J++ и другими приложениями Visual Studio.

      Создайте XML-документ

        Откройте новый файл в вашем текстовом редакторе и введите текст XML-документа, листинг которого представлен ниже.

        При желании можно опустить некоторые элементы типа BOOK. Вам не обязательно набирать все восемь – достаточно будет трех или четырех. (Элемент BOOK включает в себя теги <BOOK> и </BOOK> и весь содержащийся между ними текст.)

        Воспользуйтесь командой Save (Сохранить) текстового редактора, для сохранения документа на вашем жестком диске, присвоив ему имя Inventory.xml.

      Листинг 2.1. Inventory.xml (html, txt)