Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






ТЕМА 1. ПРОСТОЙ XML-ДОКУМЕНТ



ВВЕДЕНИЕ

 

Расширяемый язык разметок XML (Extensible Markup Language) был разработан рабочей группой “XML Working Group” консорциума “World Wide Web Consortium” (W3C).

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

 

<HTML>

<HEAD>

<TITLE>Домашняя страница</TITLE>

</HEAD>

<BODY>

<H1><IMG SRC="MainLogo.gif">Моя домашняя страница</H1 >

<P><EM>Добро пожаловать на мой Web-сайт!</EM></P>

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

<P>Выберите один из следующих заголовков:</P>

<UL>

<LI><a href="Writing.htm"><B>Описание</B></A></LI>

<LI><a href="Family.htm"><B>Семья</B></A></LI>

<LI><a href="Photos.htm"><B>Фотогалерея</B></A></LI>

</UL>

<H2>Другие интересные Web-сайты</H2>

<P>Щёлкните по одной из ссылок для перехода на другие сайты:</P>

<UL>

<LI>

<A HREF="http://www.yahoo.com/">Поисковый сайт Yahoo</A>

</LI>

<LI>

<A HREF="http://www.amazon.com/">Книжный сайт Amazon</A>

</LI>

<LI>

<A HREF="http://mspress.microsoft.com/">Публикации Microsoft</A>

</LI>

</UL>

</BODY>

</HTML>

 

Рисунок 1. Пример оформления заголовка

 

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



 

Таблица 1

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

 

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

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

 

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



· База данных, такая как каталог книг. Можно использовать HTML-страницу, чтобы хранить и отображать информацию из статической базы данных (например, перечень книг и их описание). Однако, если бы понадобилось осуществить сортировку, фильтрацию, поиск и обработку информации, придется снабдить каждую из составных частей информации соответствующей меткой (как в программе, работающей с базами данных, такой как Microsoft Access). В языке HTML не предусмотрено соответствующих элементов.

· Документ, который нужно представить в виде иерархической структуры. Допустим, вы пишете книгу и хотите разбить ее на части, главы, разделы А, В, С и т. д. В дальнейшем программа может использовать данную структуру документа для создания оглавления, оформления различных уровней в структуре с помощью всевозможных стилей, извлечения определенных разделов, а также обработки информации иными способами. Однако элемент типа заголовок в HTML содержит лишь описание собственно текста. Например:

 

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

 

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

 

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

· MathML (Mathematical Markup Language) – форматирование математических формул и научной информации.

· CML (Chemical Markup Language) – описание молекулярных структур.

· GeDML (Genealogical Data Markup Language) – кодирование генеалогических данных.

· AML (Astronomical Markup Language) – обмен астрономическими данными.

· MusicML (Music Markup Language) – создание музыкальных партитур.

· WML (Wireless Markup Language) – отображение Web-страниц с помощью устройств беспроводной связи, таких как сотовые телефоны и карманные компьютеры.

· VoxML – работа с голосовыми сценариями для доставки информации по телефону (генерирование голосовых сообщений, справок о наличии товаров и прогнозов погоды).

· VML (Vector Markup Language) – работа с векторной графикой.

 

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

 

ТЕМА 1. ПРОСТОЙ XML-ДОКУМЕНТ

 

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

Описание XML-документа представляет собой простой текст, который можно набрать в любом текстовом редакторе, например, редактор Блокнот (Notepad), входящем в состав операционной системы Microsoft Windows. Для создания простого XML-документа нужно выполнить действия, описанные ниже.

1. Создать новый файл в текстовом редакторе и ввести текст XML-документа, представленного далее в Листинге 1.1. Количество элементов BOOK зависит от количества книг в вашей библиотеке. (Элемент BOOK включает в себя теги <BOOK> и </BOOK> и весь содержащийся между ними текст.)

2. Сохранить созданный файл, присвоив ему, например, имя Inventory.xml.

 

<?xml version="1.0"?>

<!-- Имя файла: Inventory.xml -->

<INVENTORY>

<BOOK>

<TITLE>Война и мир</TITLE>

<AUTHOR>Лев Толстой</AUTHOR>

<BINDING>Жёсткая обложка</BINDING>

<PAGES>510</PAGES>

<PRICE>12 000 рублей</PRICE>

</BOOK>

<BOOK>

<TITLE>Преступление и наказание</TITLE>

<AUTHOR>Фёдор Достоевский</AUTHOR>

<BINDING>Мягкая обложка</BINDING>

<PAGES>590</PAGES>

<PRICE>14 000 рублей</PRICE>

</BOOK>

<BOOK>

<TITLE>Королева Марго</TITLE>

<AUTHOR>Александр Дюма</AUTHOR>

<BINDING> Мягкая обложка </BINDING>

<PAGES>410</PAGES>

<PRICE>10 000 рублей</PRICE>

</BOOK>

<BOOK>

<TITLE>Затерянный мир</TITLE>

<AUTHOR>Артур Конан Дойль</AUTHOR>

<BINDING>Жёсткая обложка</BINDING>

<PAGES>350</PAGES>

<PRICE>9 000 рублей</PRICE>

</BOOK>

</INVENTORY>

Листинг 1.1

 

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

Рисунок 2. Общая структура XML-документа

 

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

 

<?xml version="1.0"?>

<!-- Имя файла: Inventory.xml -->

 

Первая строка представляет собой объявление XML, указывающее на то, что это XML-документ, и содержащее номер версии XML. Кроме этого, объявление XML может содержать указание на кодировку символов, в которой написан документ. В случае отсутствия указания на кодировку символов, считается, что документ записан в кодировке UTF-8, являющейся кодировкой по умолчанию. Поэтому объявление XML:

 

<?xml version="1.0"?>

 

эквивалентно такому:

 

<?xml version="1.0" encoding="UTF-8"?>

 

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

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

 

<?xml version="1.0" encoding="Windows-1251"?>

 

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

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

 

<!--Здесь вы можете поместить любой текст, за исключением двойного тире. Символы < и & также допустимы! -->

 

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

 

<?xml version="1.0"?>

<!-- Это комментарий в прологе. -->

<DOCELEMENT>

Это очень простой XML-документ.

</DOCELEMENT>

 

Можно поместить их вслед за элементом Документ:

 

<?xml version="1.0"?>

<DOCELEMENT>

Это очень простой XML-документ.

</DOCELEMENT>

<!-- Это комментарий, следующий за элементом Документ. -->.

 

Можно поместить их внутри содержимого элемента:

 

<?xml version="1.0"?>

<DOCELEMENT>

<!-- Это комментарий, который является частью содержимого корневого

элемента. -->

Это очень простой XML-документ.

</DOCELEMENT>

 

Ниже приведен пример неправильной записи комментария, поскольку он помещен внутри разметки:

 

<?xml version="1.0"?>

<DOCELEMENT <!-- Это НЕПРАВИЛЬНАЯ ЗАПИСЬ комментария! --> >

Это очень простой XML-документ.

</DOCELEMENT>

 

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

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

· объявление типа документа, определяющее тип и структуру документа. Объявление типа документа должно следовать после XML-объявления;

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

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

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

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

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

Элемент Документ в XML-документе похож на элемент BODY на HTML-странице, за исключением того, что ему можно присвоить любое допустимое имя.

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

 

Рисунок 3. Структура элемента, содержащего вложенные элементы

 

 

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

 

Рисунок 4. Структура вложенного элемента

 

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

· Документ должен иметь только один элемент верхнего уровня (элемент Документ, или корневой элемент). Все другие элементы должны быть вложены в элемент верхнего уровня.

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

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

· Имя типа элемента в начальном теге должно в точности соответствовать имени в соответствующем конечном теге.

· Имена типов элементов чувствительны к регистру, в котором они набраны. В действительности весь текст внутри XML-разметки является чувствительным к регистру. Например, следующее описание элемента является неправильным, поскольку имя типа элемента в начальном теге не соответствует имени типа в конечном теге:

 

<TITLE>Война и мир</Title> <!-- некорректный элемент -->

 

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

 

Рисунок 5. Отображение развёрнутой структуры XML-документа, который не содержит связи с таблицами стилей

 

Рисунок 6. Отображение свёрнутой структуры XML-документа, представленного на рисунке 5

 

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

 

<?xml version="1.0"?>

<!-- Имя файла: Inventory01.xml -->

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

<INVENTORY>

<BOOK>

<TITLE>Война и мир</TITLE>

<AUTHOR>Лев Толстой</AUTHOR>

<BINDING>Жёсткая обложка</BINDING>

<PAGES>510</PAGES>

<PRICE>12 000 рублей</PRICE>

</BOOK>

<BOOK>

<TITLE>Преступление и наказание</TITLE>

<AUTHOR>Фёдор Достоевский</AUTHOR>

<BINDING>Мягкая обложка</BINDING>

<PAGES>590</PAGES>

<PRICE>14 000 рублей</PRICE>

</BOOK>

<BOOK>

<TITLE>Королева Марго</TITLE>

<AUTHOR>Александр Дюма</AUTHOR>

<BINDING> Мягкая обложка </BINDING>

<PAGES>410</PAGES>

<PRICE>10 000 рублей</PRICE>

</BOOK>

<BOOK>

<TITLE>Затерянный мир</TITLE>

<AUTHOR>Артур Конан Дойль</AUTHOR>

<BINDING>Жёсткая обложка</BINDING>

<PAGES>350</PAGES>

<PRICE>9 000 рублей</PRICE>

</BOOK>

</INVENTORY>

Листинг 1.2

 

Таблица стилей, сохранённая в файле Inventory01.css, сообщает браузеру, каким образом форматировать символьные данные элементов.

· Отображать каждый элемент BOOK с отступом сверху в 12 пт (margin-top: 12pt) с переводом строки сверху и снизу (display: block), используя размер шрифта 10 пт (font-size: 10pt).

· Отображать каждый элемент TITLE курсивом (font-style: italic).

· Отображать каждый элемент AUTHOR полужирным (font-weight: bold).

 

/*Имя файла: Inventory01.css*/

BOOK

{display: block;

margin-top: 12pt;

font-size: 10pt}

TITLE

{font-style: italic}

AUTHOR

{font-weight: bold}

Листинг 1.3

 

Рисунок 7. Отображение XML-документа, связанного с таблицей стилей

 

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

Рисунок 8. Отображение XML-документа, в котором допущена ошибка

 

Лабораторная работа №1

 

1. По указанию преподавателя в папке, находящейся в одном из разделов жёсткого диска, создайте папку под своей фамилией.

2. Запустите текстовый редактор “Блокнот”.

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

4. Сохраните созданный документ в папке под своей фамилией, присвоив ему произвольное имя с расширением “xml”.

5. Закройте текстовый редактор “Блокнот”.

6. Откройте для просмотра созданный XML-документ в браузере Internet Explorer.

7. При появлении сообщений об ошибках, постарайтесь их найти и устранить.

8. Сдайте работу преподавателю.

 


Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!