logo
Разработка и стандартизация ПС и ИТ

42. Языки определения слабоструктурированных данных. Основные понятия xml.

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

XML (Extensible Markup Language) - язык разметки, описывающий класс объектов данных, называемых XML- документами. XML изначально является средством обмена данными и практически не зависит от платформы, операционной системы, языка программирования и т. д. XML — это стандарт, утвержденный World Wide Web Consortium (W3C), и поэтому анализаторы для чтения XML-документов имеются почти для всех основных платформ, включая MS Windows, UNIX.

Для обработки XML-документов можно использовать ряд связанных стандартов, таких как: Document Type Definitions (DTD) и XML-схемы, позво¬ляющие определять XML-документы; спецификация Namespaces; язык указателей XML (XML Pointer Language - XPointer); язык ссылок XML (XML Linking Language — XLink); язык запросов XQuery; объектная модель (Document Object Model - DOM); интерфейсы API; язык преобразования Extensible Stylesheet Language (XSLT).

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

XML – это средство для описания грамматики представления и контроля правильности составления документов.

Инструкции языка, заключенные в угловые скобки, называются тэгами и служат для разметки основного текста документа.

Если XML-документ не нарушает правила синтаксиса XML, он называется формально-правильным или хорошо оформленным документом, и разборщики XML-документов будут работать с ним корректно.

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

Правильные, хорошо оформленные XML-документы должны удовлетворять следующим требованиям:

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

2). В тэгах XML учитывается регистр. Например, <Book> отличается от <book>. Таким образом, начальные и конечные тэги должны быть записаны в одном регистре.

3). Элементы XML должны быть правильно вложены друг в друга, например:

<b><i>Этот текст пишется полужирным курсивом</i></b>

Перекрывание элементов возникает тогда, когда закрывающий тэг внешнего элемента располагается перед закрывающим тэгом внутреннего элемента.

4). XML-документы должны иметь единственный корневой элемент. Все остальные элементы должны быть вложены в корневой элемент.

5) Значения атрибутов всегда должны быть заключены в кавычки.

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

7) В XML есть несколько зарезервированных символов, которые используются только как элементы синтаксиса XML. Такими зарезервированными символами являются пять следующих знаков: <, >, &, , .

XML-документы имеют два раздела: пролог и тело документа

Пролог, предваряющий любой XML-документ, включает объявление XML и объявление типа документа. Объявление XML заключается между парами символов <? и ?> и может включать указание программе-анализатору текущего стандарта, объявление кодировки и самостоятельности, а объявлению типа документа предшествует ключевое слово DOCTYPE, например, объявление XML-документа с внешним DTD-определением в файле sample.dtd:

<?xml version=”1.1” encoding=”UTF-8” standalone=”yes”?>

<!DOCTYPE sampledoc SYSTEM “sample.dtd”>

К телу документа относится все кроме пролога.

Тело XML-документа состоит из элементов разметки и непосредственно содержимого документа – данных и представляет собой набор элементов и атрибутов, секций CDATA, директив анализатора, комментариев, спецсимволов, текстовых данных.

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

Элементы данных - это структурные единицы XML-документа, например:

<flower> rose </flower>

<root>

<child>

<subchild>.....</subchild>

</child>

</root>

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

Элементы могут иметь подэлементы (дочерние элементы). Подэлементы должны быть правильно вложены внутри родительского элемента (в примере - <root>, <child>).

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

Атрибуты определяют собственные характеристики элемента и задаются парой название = «значение» при определении элемента, например:

<color RGB="true">#ff08ff</color>

<color RGB="false">white</color>