Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс лекций СБД.doc
Скачиваний:
23
Добавлен:
13.11.2019
Размер:
1.94 Mб
Скачать
    1. Расширяемый язык разметки xml

Технология XML возникла на стыке двух предметных областей – обработки баз данных и обработки документов. Эти технологии неразрывно связаны друг с другом. При работе с базами данных часто приходится иметь дело с документами: например, чтобы пользователь мог просмотреть представление базы данных, необходимо оформить его в виде документа. И наоборот, обработка документов нередко включает в себя работу с базами данных – например, хранение и различного рода манипуляции с данными, содержащимися в документе. Но очевидной эта связь стала только после того, как завоевал популярность Интернет. Первое время содержимое веб-сайтов было в основном статическим. По мере того как Интернет стал использоваться более широко, у организаций появилось желание сделать свои сайты более функциональными, чтобы на них можно было отображать и обновлять информацию из баз данных. В результате веб-разработчики стали всерьез интересоваться SQL, вопросами производительности, безопасности и прочими аспектами баз данных. С другой стороны, разработчики баз данных начали знакомиться с языком HTML, который используется для разметки документов, отображаемых в браузерах и является приложением более универсального языка обработки документов – SGML (Standard Generalized Markup Language – «стандартный обобщенный язык разметки»). Важность SGML трудно переоценить: этот язык столь же важен для обработки документов, сколь важна была реляционная модель для баз данных.

Результатом встречного движения двух профессиональных сообществ в начале 1990-х годов явилось создание ряда стандартов, относящихся к языку под названием XML (eXtensible Markup Language – «расширяемый язык разметки»). XML является подмножеством SGML, но благодаря ряду дополнительных стандартов и возможностей XML-технология представляет собой гибрид обработки документов и обработки баз данных. XML предоставляет стандартизированный, но при этом гибкий способ описания содержимого документов. Он может использоваться для описания в стандартной форме любого представления базы данных.

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

Благодаря своей эффективности, XML стал находить огромное множество применений в информационных технологиях. Появился основанный на XML стандарт SOAP (Simple Object Access Protocol – простой протокол доступа к объектам), описывающий удаленный вызов процедур через Интернет, который сегодня определен как обобщенный стандартный протокол, используемый для передачи любых сообщений по любому транспортному протоколу.

      1. Xml как язык разметки

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

Кроме того, стандарт XML, как следует из названия, может расширяться разработчиками. В XML они не ограничены фиксированным набором элементов вроде <TITLE>, <H1> и <P>, а могут определять свои собственные элементы.

Одной из проблем HTML является то, что он предоставляет слишком большую свободу. Рассмотрим HTML-код:

<h2>Здравствуй. мир!</h2>

Хотя тег <h2> может обозначать заголовок второго уровня в структуре документа, его также можно использовать для того, чтобы просто вывести слова «Здравствуй, мир!» определенным стилем. Из-за этого обстоятельства нельзя положиться на теги при определении истинной структуры HTML-страницы. Использование тегов носит слишком произвольный характер – <h2> может означать заголовок второго уровня, а может не означать ничего.

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

      1. XML-документ и DTD

В листинге 1 приведен пример XML-документа. Документ имеет два раздела. В первом разделе определяется структура документа; этот раздел называется DTD (Document Type Declaration – определение типа документа). Второй раздел содержит собственно данные.

Листинг 1. XML-документ Покупатель с вложенным определением типа.

<!DOCTYPE Покупатель [ <!ELEMENT Покупатель (имя, адрес)> <!ELEMENT ФИО (фамилия, имя, отчество)> <!ELEMENT фамилия (#PCDATA)> <!ELEMENT имя (#PCDATA)> <!ELEMENT отчество (#PCDATA)> <!ELEMENT Адрес (улица+, город, область, индекс)> <!ELEMENT улица (#PCOATA)> <!ELEMENT город (#PCDATA)> <!ELEMENT область (#PCOATA)> <!ELEMENT индекс (#PCDATA)>

)>

<Покупатель> <ФИО> <фамилия>Короткевич</фамилия> <имя>Владимир</имя> <отчество>Семенович</отчество> </ФИО> <Адрес> <улица>Долгобродская, 23</улица> <улица>Танка,12-245</улица> <город>Минск</город> <область></область> <индекс>220012</индекс> </Адрес>

</Покупатель>

DTD начинается с ключевого слова DOCTYPE, за которым следует имя типа документа. Далее идет описание содержимого документа Покупатель. В нем есть две группы: ФИО и Адрес. Группа ФИО состоит из трех элементов – фамилия, имя и отчество. Эти элементы определены как #PCDATA, то есть строки символьных данных. Ниже описывается элемент Адрес, состоящий из четырех элементов: улица, город, область и индекс. Каждый из этих элементов также определен как символьные данные. Знак + после имени элемента улица указывает на то, что этот элемент обязан иметь по крайней мере одно значение, но может иметь несколько значений.

Экземпляр данных типа Покупатель, показанный в листинге, соответствует DTD, поэтому данный документ называется XML-документом, допустимым по типу (type-valid XML document). Если бы он не соответствовал DTD, он назывался бы недопустимым по типу документом (not-type-valid XML document). Недопустимые по типу документы могут, тем не менее, быть абсолютно правильными с точки зрения XML: они просто не являются допустимыми экземплярами своего типа. Например, если бы документ в листинге 1 содержал два элемента город, он был бы по-прежнему правильным с точки зрения XML, но недопустимым по типу.

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

Раздел DTD не обязательно должен содержаться в самом документе. В листинге 2 изображен документ типа Покупатель, в котором DTD берется из файла D:\Лекции\XML\Покупатель.dtd:

Листинг 2.

<!DOCTYPE Покупатели SYSTEM “D:\Лекции\XML\Покупатель.dtd”>

<Покупатель> <ФИО> <фамилия>Короткевич</фамилия> <имя>Владимир</имя> <отчество>Семенович</отчество> </ФИО> <адрес> <улица>Долгобродская, 23</улица> <улица>Танка,12-245</улица> <город>Минск</город> <область></область> <индекс>220012</индекс> </адрес>

</Покупатель>

Преимущество внешнего хранения DTD в том, что можно проверять допустимость множества документов относительно одного и того же DTD.

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