Главная » SQL, Базы данных » КРАТКИЙ ОБЗОР ЯЗЫКА XML

0

Название XML является сокращением от "Extensible (не extensible!) Markup Language" (расширяемый язык разметки). Неформально документ XML можно определить как документ, созданный с использованием средств XML. Ниже приведен простой пример. Обратите внимание на то, как широко используются в нем угловые скобки, "<" и ">" (их не следует путать с угловыми скобками, которые применяются в этой книге в грамматических определениях, которые представлены в форме Бэкуса-Наура).

<?xml version="l.0"?>

<greeting kind="succinct">Hello, world.</greeting>

Первая строка в этом документе представляет собой объявление XML (в котором не показаны некоторые вспомогательные конструкции); такое объявление  обычно можно найти в каждом документе XML, хотя оно и не является обязательным. Во второй строке представлен элемент XML, состоящий из начального дескриптора, некоторых символьных данных и конечного дескриптора. (Вообще говоря, любой элемент может содержать символьные данные или другие элементы, или сочетание тех и других.) Символьными данными является строка "Hello,  world. ", начальный дескриптор — это разметка, предшествующая этой строке, а конечный дескриптор — это разметка, которая следует за ней. (Неформально  неуточненный термин дескриптор используется также для обозначения начального дескриптора и соответствующего ему конечного дескриптора, вместе взятых.) Дескрипторы обозначаются тем именем, которое присвоено им  разработчиком документа; кроме того, считается, что это имя обозначает тип элемента, поэтому в данном примере дескриптор является дескриптором типа "greeting", а элемент — элементом "greeting". Показанная ниже спецификация  в  начальном дескрипторе представляет собой атрибут XML (он не имеет ничего общего с атрибутами, которые рассматриваются в реляционном контексте).

kind="succinct"

Здесь именем атрибута является "kind", а его значением — строка "succinct".

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

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

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

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

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

Иными словами, XML позволяет решать некоторые проблемы обмена данными, при условии, что производители и потребители данных согласуют друг с другом способы интерпретации разметки. В отличие от этого, при использовании традиционных протоколов с фиксированным форматом, таких как протокол  электронного обмена данными (Electronic Data Interchange — EDI), для внесения  изменений в формат данных необходимо внести соответствующие изменения в программное обеспечение, применяемое не отдельными, а всеми производителями и потребителями рассматриваемых данных.

Языки разметки

Для того чтобы оценить важность некоторых причин создания языка XML, необходимо ознакомиться с тем, каким образом он создавался на основе более ранних языков разметки. Языки разметки никогда не были предназначены для использования в качестве обычных языков программирования; их назначение (по меньшей мере, как оно рассматривалось с самого начала) состояло лишь в том, чтобы с их помощью можно было создавать текстовые файлы, включающие команды форматирования (разметку), которые могли восприниматься соответствующим текстовым процессором. В одних случаях разметка обозначалась с помощью двоичного кода, а в других — с помощью обычного текста, но применяемые при этом языки разметки всегда оставались собственностью  отдельных компаний. Например, в компании IBM для форматирования руководств пользователей и других подобных документов использовался собственный язык  текстовой разметки, Script. Ниже в качестве примера приведена выдержка из типичного файла Script.

.sp 2

.il 3m;You should specify the ;.us on;first;.us off; parameter as PRIVATE. This specification will allow the processor to complete the conversion without further input.

.br

Применяемая здесь разметка передает программе форматирования указания  отступить вниз на две строки (". sp 2"), сделать отступ в первой строке текста на три пробела с шириной em (" .il 3m"), подчеркнуть слово "first" (".us on" и  ".us off"), а затем перейти на следующую строку (". br").

Отметим, что один из недостатков языка Script и аналогичных языков состоял в том, что разметка носила весьма процедурный характер (т.е. была основана на использовании не описаний, а команд), не говоря уже о том, что эта разметка управляла только форматированием документов и к тому же была предназначена для устройств определенного типа (как правило, монохромных  построчно-печатающих устройств). Именно в целях устранения этих недостатков  три исследователя3  из компании IBM предложили обобщенный язык разметки (Generalized Markup Language — GML). Основное различие между

3 Тот факт, что первые буквы в сокращенном обозначении этого языка совпадают с первыми буквами фамилий  его  создателей,  Чарльза  Голдфарба  (Charles  Goldfarb),  Эдварда  Мошера  (Edward  Mosher)  и Раймонда Лори (Raymond Lorie), — не случайное совпадение.

GML и языками наподобие Script состоит в том, что разметка в GML является в значительно большей степени описательной (или декларативной), чем  разметка,  применявшаяся в этих ранних языках, которая в основном носит процедурный характер. Ниже еще раз показан приведенный выше пример на языке Script, но в данном случае он представлен на языке GML.

<p>You should specify the <empl>first</empl> parameter as PRIVATE. This specification allows  the processor to complete the conversion without further input.

Теперь эта разметка просто сообщает программе форматирования о том, что  текст представляет собой абзац ("<р>" — сокращение от "paragraph"), а не просто  подробно описывает компоновку такого абзаца ("отступить вниз на две строки" и т.д.). Кроме того, она сообщает программе форматирования, что слово "first"  должно иметь первый уровень выделения ("<empl>" и "</empl>" — сокращение  от "emphasis 1"), но не указывает, что в качестве такого выделения должно быть выполнено подчеркивание.

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

вместо обычно применяемых в этом языке символов двоеточия (": "). В данном изложении такие отклонения от обычной практики не имеют особого значения.

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

<paragraph>

<sentence> <subj ect>You</subject>

<verb> should specify</verb>

<object> the

<adjective><empl>first</emp1></adject ive> parameter</obj ect>

</sentence>

<sentence>

</sentence>

</paragraph>

Примечание. Обратите внимание на тот факт, что в этом примере элемент "object"

содержит и данные в виде символьной строки, и другой элемент (‘adjective").

Но, как показывает этот пример, SGML в действительности не является языком разметки как таковым (и поэтому фактически название "SGML" не полностью соответствует

4   Приведем  в  этой  связи  интересную  цитату:  "Даже  в  самой  небольшой  организации  причиной большинства конфликтов становится отсутствие четких определений и единого понимания смысла используемых слов" [27.4].

назначению этого языка). Его, скорее, можно назвать метаязыкам, поскольку в нем предусмотрены  правила,  позволяющие  пользователям  определять  собственные  наиболее подходящие для них языки разметки, в частности, имеющие собственные дескрипторы, определяемые пользователями5. Одним из таких языков является  HTML; это означает, что HTML определен в терминах SGML и может рассматриваться как конкретное приложение SGML (здесь термин приложение SGML обозначает язык, который определен с применением правил метаязыка SGML, а не прикладную программу, в которой используется SGML). Но, к  сожалению, в HTML не удалось сохранить чисто описательный характер GML,  и  вместо этого в дополнение к структурной и семантической разметке снова была введена конкретная форматирующая разметка. Фактически некоторые дескрипторы HTML относятся ко всем трем типам разметки одновременно; например, такой дескриптор HTML, как "<Н1>", определяет одновременно и заголовок уровня 1 (структура) и название страницы (семантика), а также может содержать необязательный атрибут с обозначением шрифта (форматирование).

Разработка языка XML

Язык XML [27.25] был первоначально разработан в 1996 году наблюдательным советом  по  пересмотру  языка  SGML  под  руководством  консорциума  World  Wide  Web Consortium, W3C (основанным Бернерсом-Ли в 1994 году) в целях устранения некоторых недостатков языков SGML и HTML. Недостатком SGML было лишь то, что этот язык оказался слишком большим и сложным для того, чтобы его можно было легко поддерживать в Web. А что касается HTML, то он обладает в основном двумя описанными ниже недостатками.

■     Как уже было сказано, этот язык не позволяет должным образом отделить друг от друга метаданные, которые описывают структуру, семантику и форматирование.

■     Более того, этот язык не исключает возможности создавать документы, которые нарушают принципы "формальной правильности", т.е. фактически этот язык не препятствует созданию и использованию документов, нарушающих6 его собствен ные синтаксические правила! Такая проблема возникла в связи с тем, что на рынке одновременно представлено несколько браузеров, а все они (вполне естественно) конкурируют друг с другом; и если неправильно сформированный документ D мо жет быть успешно отображен браузером А, но не браузером в, то этот факт вос принимается как недостаток не документа D, а скорее браузера В.

XML, как и его предшественник SGML, в действительности является не  языком, а метаязыком (и поэтому его название "XML" также не полностью ему  соответствует); фактически язык XML является строгим подмножеством языка SGML. Эта его особенность подчеркнута в приведенной ниже выдержке из спецификации XML [27.25].

Расширяемый язык разметки (Extensible Markup Language — XML) это подмножество SGML… Его назначение состоит в обеспечении возможности использовать универсальные средства SGML для передачи, приема и обработки документов в Web с

По сути, такое же замечание остается справедливым и по отношению к GML.

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

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

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

Несмотря на то, что такая цель была определена при его создании, XML еше не смог в

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

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

базе данных.

■     Рассмотрим обычно применяемую в этой книге переменную отношения деталей Р. Допустим, что потребовалось расширить эту переменную отношения для включе ния дополнительного атрибута DRAWING (рис. 27.1), значением которого в любом конкретном кортеже является чертеж рассматриваемой детали, представленный с помощью какого-то конкретного языка, производного от XML (см. следующий подраздел) и называемого языком масштабируемой  векторной графики (Scalable Vector Graphics — SVG). Следует отметить, что каждое такое значение представля ет собой целый документ SVG, и поэтому вся база данных может рассматриваться как "объектно-реляционная" база данных в том смысле этого термина, который был определен в предыдущей главе.

Примечание. Фактически утверждение, что значения DRAWING являются чертежами как таковыми, является не совсем точным; эти значения, скорее, можно назвать документами XML, которые интерпретируются  определенной прикладной программой для создания таких чертежей (см. рис. 27.1).

■     Аналогичным  образом,  в  переменную отношения  Р  можно  ввести  атрибут DESCRIPTION, значением которого в любом конкретном кортеже является доку мент ХМL с описанием рассматриваемой детали и пояснением правильных спосо бов ее использования.

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

Язык XML может также использоваться для представления отношений, а  это  его свойство может оказаться полезным при импорте данных в реляционную базу данных или при экспорте данных из нее (также см. раздел 27.6).  Например,  ниже приведено представление на языке XML обычно применяемого в данной книге отношения с данными о деталях (здесь приведены только кортежи с данными о деталяхР1 и Р2).

<? x m l   version ="l.0 " ? >

<!-Это представление в коде XML отношения деталей,

приведенного   –> <!-на рис. 3.8 (включены только кортежи, относящиеся

к деталям Р1 и –> <!-Р2). Следует

отметить, что все данные представлены в виде простых –>

<!-символьных строк. –>

<PartsRelation> <PartTuple>

<PNUM>P1</PNUM>

<PNAME>Nut</PNAME>

<COLOR>Red</COLOR>

<WEIGHT>12.0</WEIGHT>

<CITY>London</CITY>

</PartTuple>

<Part_Tuple>

<PNUM>P2</PNUM>

<PNAME>Bolt</PNAME>

<COLOR>Green</COLOR>

<WEIGHT>17.0</WEIGHT>

<CITY>Paris</CITY>

</PartTuple>

</PartsRelation>

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

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

■     В тексте документа имя Р# было заменено именем PNUM, поскольку символ "#" не разрешается использовать в именах дескрипторов XML (и аналогичные изменения для единообразия были внесены во все остальные примеры этой главы, относя щиеся как к реляционным базам данных, так и к XML).

■     Как указано во вступительных комментариях XML, все значения (реляционных)

атрибутов были преобразованы в простые символьные строки.

■     Для упрощения было решено представить только тело отношения, а не его заголо вок (и такое же соглашение применяется во всех последующих примерах этой гла вы там, где это возможно).

■     Следует отметить, что разрешено использовать пустые элементы.  Например, предположим, что для некоторых деталей не предусмотрено использование ат рибута с использованием цвета, и для представления значения COLOR для такой

детали решено применять пустую строку. В таком случае достаточно ввести в спецификацию <COLOR></COLOR>, или (более кратко) просто <COLOR/>.

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

■  Наконец, необходимо отметить, что этот документ XML не является  таким  уж верным представлением отношения деталей, поскольку он налагает упорядочение сверху вниз на кортежи и упорядочение слева направо на атрибуты этих кортежей (фактически в обоих случаях используется лексическое упорядочение). И действительно, документы XML всегда характеризуются упорядочением своих элементов7 (это свойство  носит официальное название упорядочение документа). Дополнительные сведения на эту тему приведены в разделе 27.6, в подразделе "Принцип

«Разделяй и публикуй»".

Структура документа XML

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

Допустим, что XD — язык, производный от XML. В таком случае разработчик XD должен определить смысл разметки, применяемой в XD (хотя бы неформально), ввести операторы и написать программы для обработки документов, в которых  используется XD. Допустим, что D — такой документ. Поэтому этот документ  на  определенном уровне абстракции может рассматриваться как имеющий иерархическую структуру, которая состоит из корневого узла и последовательности дочерних узлов (где каждый дочерний узел может иметь свою последовательность дочерних узлов и т.д., а каждый дочерний узел имеет один и только один родительский узел). На рис. 27.2 показана иерархия документа PartsRelation, который был приведен в предыдущем подразделе. Как показывает этот рисунок, каждый узел представляет некоторый элемент XML, за  исключением узлов, описанных ниже.

Но атрибуты XML являются неупорядоченными, поэтому может оказаться более предпочтитель ным способ представления таких данных, как PNUM, PNAME, COLOR, WEIGHT и CITY, с помощью атрибу тов, а не элементов (см. раздел 27.4).

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

■     Корневой узел, или узел документа, который представляет весь документ (обратите внимание на то, что он не соответствует корневому элементу документа!).

■     Листовые узлы, которые представляют символьные данные.

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

Вся эта иерархия называется информационным набором или инфонабором ("infoset" — сокращение от information set) для рассматриваемого документа, а интерфейс прикладного программирования (Application Programming Interface —  API) для этой иерархии предусмотрен в виде средства XML, называемого объектной моделью документа (Document Object Model — DOM) [27.24]. С использованием  такого API-интерфейса (кроме всего прочего) в прикладной программе можно  осуществлять выборку, вставку, удаление и модификацию узлов9.

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

будут характеризоваться существенными отличиями на уровне реализации  конкретной структуры; вполне очевидно, что количество различных вариантов структуры будет значительно больше, чем обычно можно встретить среди кортежей отношения в реляционной модели. А поскольку отношения, как правило, рассматриваются как более жестко структурированные, а документы XML считаются обладающими гораздо более свободной структурой10, иногда можно встретить такие утверждения, что отношения содержат структурированные данные, а документы XML — слабоструктурированные данные (иначе говоря, основаны на слабоструктурированной модели данных).

Но приведенные выше доводы фактически не выдерживают никакой критики. Истина заключается в том, что отношения не являются более или менее "структурированными", чем документы XML (безусловно, они имеют другую структуру, но нельзя отрицать и того факта, что все данные, представляемые в виде документа XML, могут быть столь же

9   Может оказаться полезным такое замечание, что инфонабор для данного конкретного документа очень близок к той структуре, которая является "возможным представлением" (possrep) для данного документа, в том смысле, который определен в главе 5.

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

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

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

■     В [26.35] указано, что данный термин возник в связи с тем, что часть данных имеет постоянную структуру, а другая часть изменяется (например, каждая книга имеет название, но не в каждой книге есть предметный указатель). :

‘■ Согласно [27.13], этот термин применяется по той причине, что полуструктурирбванные данные не имеют обычной схемы, а являются  "лишенными схемы" и "описывающими сами себя". В [27.17] сказано то же самое, но дополнительно указано, что они "подобны объектам".

■     В [27.23] в качестве причины применения этого термина указан тот факт, что дан ные "могут быть нерегулярными или неполными и [иметь] структуру, [которая] может изменяться быстро и непредсказуемо".

■     Безусловно, структура, которой должен обладать документ XML, в значительной части зависит от проектировщика документа11; в определенном смысле структура налагается на данные проектировщиком, а разные проектировщики, разумеется, вправе применять различные структуры, подразделяя данные разными способами и выбирая разные дескрипторы. Например, поэму можно представить в виде еди ного сплошного фрагмента текста (<роеm> … </роеm>),как последовательность стихов (<poem> <verse> … </verse> … </роеm>) или многими другими спосо бами. Таким образом, можно утверждать, что термин слабоструктурированный возник с учетом этих соображений.

Но, по мнению автора, ни один из этих доводов не выдерживает тщательного критического анализа. В действительности, невозможно обнаружить  существенное различие между "слабоструктурированной моделью" и структурными аспектами старомодной иерархической модели, которая была описана (и подвергнута критике) в главе 13 работы [1.5]. Но внимания, безусловно, заслуживает еще один нюанс — по определению предполагается, что модели данных вообще и иерархическая модель в частности, должны включать операции,  но создается впечатление, что "слабоструктурированная модель" в основном (или даже исключительно) посвящена лишь описанию структуры данных.

Приведем еще одно, последнее замечание на эту тему — в литературе часто встречается мнение, что либо инфонабор (рассматриваемый с точки зрения универсальной интерпретации этого термина в [27.26]), либо, вообще говоря, "слабоструктурированная модель" — это "модель данных XML". Но это идеальное представление в значительной степени становится расплывчатым в связи с тем фактом, что в каждой из работ [27.24], [27.28], и (совместно) [27.27], и [27.29], а также в работе [27.26] как таковой, определена собственная "модель  данных XML" (причем в одних из таких моделей предусмотрены операции, а в других — нет). Поэтому не совсем ясно, какая из этих моделей (если вообще таковая имеется) заслуживает право называться "моделью данных XML".

11  А также от проектировщика типа документа, если он участвует в этой работе (см. раздел 27.4).

Языки, производные от XML, и стандарты XML

Язык XML как таковой был стандартизирован12 только лишь относительно недавно (в феврале 1998 года), поэтому та степень признания, которой он сумел достичь за столь короткое время, является просто поразительной. Ко времени  подготовки настоящего издания книги (начало 2003 года) имелось по меньшей мере 200 различных языков, производных от XML, причем некоторые из них оказались совершенно новыми, а другие стали результатом переработки более  ранних спецификаций, основанных на языке HTML. Ниже в качестве примера приведена небольшая выборка из перечня этих производных языков.

■     CML. Язык химической разметки (Chemical Markup Language):

■     ebXML. Рекомендуемая замена для стандарта EDI, предназначенная для использо вания при обмене данными между предприятиями (Business-Two-Business — В2В).

■     MathML. Язык математической разметки (Mathematical Markup Language).

■     PMML. Стандарт информационной проходки.

■     WML. Язык разметки для беспроводных систем (Wireless Markup Language).

■     XMLife. Промышленный стандарт страхования.

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

■     SOAP. Простой протокол доступа к объектам (Simple Object Access Protocol) — один из компонентов новой технологии программирования Web Services, в кото рой приложения создаются по принципу объединения программных модулей, а обнаружение и доступ к этим модулям осуществляется в среде Web.

■     XML Стандарт обмена данными между инструментальными средствами (XML Metadata Interchange).

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

Пространства имен в XML. Схема уточнения имен, которая позволяет совместно использовать различные словари XML13, предотвращая  при  этом конфликты имен.

Информационный набор XML. Абстрактная модель структуры документов XML (см.

предыдущий подраздел).

12  Поскольку W3C — это консорциум организаций, а не формально утвержденная организация по стандартизации, то спецификация XML не является стандартом в полном смысле этого слова, а только "рекомендацией". Но это различие на практике не имеет значения. Кстати, следует отметить, что сама спецификация XML определена как производная от стандарта Unicode и в ней применяются понятия, которые определены в этом стандарте ([27.22]).

13  Описание этого термина приведено в подразделе "Определения типа документа" раздела 27.4.

и   XML Schema. Язык создания схем, которые описывают документы XML (см. раздел 27.4).

■     DOM. Объектная модель документа (Document Object Model) — объектно-ориенти рованный API-интерфейс, позволяющий манипулировать инфонаборами XML (см. предыдущий подраздел).

■     XPath. Язык XML Path, который предоставляет средства адресации {обозначения пути) и поэтому обеспечивает доступ к частям документа ХМL(см. раздел 27.5).

■     XPointer. Язык XML Pointer, который создан на основе языка XPath, но предостав ляет более развитые средства адресации.

■     XQuery. Язык XML Query, или язык запросов XML (см. раздел 27.5).

■     XLink. Язык связывания документов XML, позволяющий вставлять в документы XML такие элементы, которые создают и описывают связи между информацион ными ресурсами.

■     XSL и XSLT. Язык таблиц стилей XML и язык преобразования таблиц стилей, ко торые при совместном использовании обеспечивают (а фактически поощряют)

:                                           хранение информации форматирования отдельно от описательной разметки.

Рис. 27.3. Стандарты и спецификации, происходящие от спецификации XML или связанные с

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии