Автор работы: Пользователь скрыл имя, 02 Ноября 2013 в 11:09, контрольная работа
XML (eXtensible Markup Language) - рекомендованный W3C язык разметки. XML - текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе специализированных языков разметки. XML является упрощённым подмножеством языка SGML (Standard Generalized Markup Language). XML документ отличается от HTML документа также и тем, как он отображается в веб-браузере. Без использования CSS или XSL XML-документ отображается как простой текст в большинстве веб-браузеров. Некоторые веб-браузеры, такие как Internet Explorer, Mozilla и Firefox отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.
2.1 Структура XML - файлов
XML (eXtensible Markup Language) - рекомендованный W3C язык разметки. XML - текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе специализированных языков разметки. XML является упрощённым подмножеством языка SGML (Standard Generalized Markup Language).
Язык XML имеет следующие достоинства:
К известным недостаткам языка можно отнести следующие:
XML можно рассматривать не только как новый язык разметки, но и как основу для целого семейства технологий.
Таблица 2.1.1 - Структура семейства XML
XML |
Технические рекомендации об использовании XML |
DTD |
Определение типа документа (схема) |
XDR |
Формат XML Reduced (схема Microsoft) |
XSD |
Определение схемы XML (схемы W3C) |
Пространство имен |
Метод определения имен элементов и атрибутов |
XPath |
Язык путей XML |
XLink |
Язык ссылок XML |
XPointer |
Язык указателей XML |
DOM |
API для объектной модели документа |
SAX |
Простой API для XML |
XSL |
Расширяемый язык таблиц стилей |
XSL-FO |
Объекты форматирования XSL |
XSLT |
Язык преобразований XSL |
XInclude |
Синтаксис XML Include |
XBase |
Синтаксис XML Base URI |
Взаимосвязь между SGML, XML, HTML и некоторыми другими языками показана на следующей диаграмме:
Рисунок 2.1.1 - Взаимосвязь между SGML, XML и HTML
XML документ имеет следующую структуру :
К сожалению, описанные выше правила позволяют контролировать только формальную правильность XML документа, но не содержательную. Для решения второй задачи используются так называемые схемы.
Схема четко определяет имя и структуру корневого элемента, включая спецификацию всех его дочерних элементов. Программист может задать, какие элементы и в каком количестве обязательны, а какие - необязательны. Схема также определяет, какие элементы содержат атрибуты, допустимые значения этих атрибутов, в т.ч. значения по умолчанию.
Чаще всего для описания схемы используются следующие спецификации:
XML документ отличается от HTML документа также и тем, как он отображается в веб-браузере. Без использования CSS или XSL XML-документ отображается как простой текст в большинстве веб-браузеров. Некоторые веб-браузеры, такие как Internet Explorer, Mozilla и Firefox отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.
Наиболее распространены три способа преобразования XML-документа в отображаемый пользователю вид:
Простейший XML- документ может выглядеть так:
<?xml version="1.0"?>
<list_of_items>
<item id="1"><first/>Первый</item>
<item id="2">Второй <sub_item>подпункт 1</sub_item></item>
<item id="3">Третий</item>
<item id="4"><last/>Последний</item>
</list_of_items>
2.2 Особенности работы с компонентом TXMLDocument в C++ Builder
Компонент TXMLDocument представлен во вкладке Internet интегрированной среды С++ Builder.
Свойства:
Интерфейсы компонента TXMLDocument
В компоненте TXMLDocument реализовано два разных интерфейса, однако доступ к одному из них можно получить только с помощью соответствующих свойств. Для этого свойство DOMDocument компонента TXMLDocument реализует интерфейс Delphi IDOMDocument (который преобразуется к интерфейсу C++Builder_di_IDOMDocument), который представляет собой определение низкоуровневого интерфейса DOM. DOM состоит из API древовидно структуры (сравнение с моделью SAX, представляющую собой API, основанный на событиях). Модуль Delphi xmldom.pas содержит для этой цели определение интерфейсов IDOMDocument, IDOMNode, IDOMNodeList, IDOMAttr, IDOMElement и IDOMText. В заголовочном файле xmldom.hpp, импортированном в C++Builder, эти интерфейсы преобразованы в _di_IDOMDocument, _di_IDOMNode, _di_IDOMNodeList, _di_IDOMAttr, _di_IDOMElement и _di_IDOMText соответсвтенно.
Кроме стандартного интерфейса, входящего в DOM, в компоненте TXMLDocument также непосредственно реализован интерфейс Delphi IXMLDocument (преобразованный в _di_IXMLDocument), в котором воплощён более высокоуровневый подход к работе с документами и данными в формате XML. Этому интерфейсу так же присущи некоторые черты DOM, однако он более мощный и более удобный в применении. Интерфейсы IXMLDocument, IXMLNode, IXMLNodeList и IXMLNodeCollection определены в файле XMLIntf.pas (а их преобразование в интерфейсы _di_IXMLDocument, _di_IXMLNode, _di_IXMLNodeList и _di_IXMLNodeCollection выполнены в файле XMLIntf.hpp).
Несмотря на то, что интерфейс _di_IDOMDocument доступен через свойство DOMDocument, в среде C++Builder с компонентом TXMLDocument легче и удобнее работать с помощью интерфейса _di_IXMLDocument.