Независимость представления информации в виде XML документов позволяет разным, участвующим в электронном бизнесе, фирмам производить независимое друг от друга ПО.
Один из наиболее эффективных вариантов реализации - использование существующего XML-парсера, поддерживающего DOM модель. Такой парсер является дистрибутивной поставкой Win`98 или составной частью IE 4,7 и выше (для Win`95) и представляет COM сервер, находящийся в библиотеке msxml.dll.
Модель компонентных объектов (COM) представляет инкапсулированные данные и методы в единую сущность и способ доступа к ним через систему интерфейсов. Средствами Delphi достаточно просто осуществить доступ к классам COM-объекта (в одном COM-сервере может быть включено несколько классов). Доступ к объектам осуществляется путем инициализации экземпляра класса через систему интерфейсов. Описание интерфейсов осуществляется языком определения интерфейсов (IDL), которое возможно осуществить средствами среды автоматически.
Средствами Delphi осуществляется импорт из COM-сервера msxml.dll, строится файлы описания интерфейса IDL и файл бинарного описания типов библиотеки - TLB. Данная операция осуществляется через системное меню: Project | Type Library Import. Далее появляется диалоговое окно, в котором необходимо выбратьCOM-объект (в нашем случае объект зарегистрирован под именем "Microsoft.XMLDom (Version 2.0)" ) и создать TLB-файл (кнопка Create Unit). Используя TLB-файл, среда генерирует "паскалевский" файл описания COM-сервера - MSXML_TLB.pas
В файле MSXML_TLB.pas описаны все интерфейсы, константы и соклассы COM-сервера.
Для доступа к объектам COM-элемента, необходимо в директиве USESдобавить имя файла описания библиотеки (MSXML_TLB.pas). Ниже представлена простейшая программа, использующая DOM стандартный анализатор msxml.dll, которая загружает XML-документ и отображает его в элементе текстового поля Memo1.
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, OleServer, MSXML_TLB, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject);end; var Form1: TForm1; implementation {$R *.DFM} ProcedureTForm1.Button1Click(Sender: Tobject); // объявление сокласса объекта DOMDocument;varcoDoc : CoDOMDocument; // класс, согласованный с интерфейсом IDOMDocument;varDoc: IXMLDOMDocument; begin // создание экземпляра объекта DOMDocument; Doc := coDoc.Create; // вызов метода Load экземпляра объекта DOMDocument; Doc.load('data.xml'); // доступ к свойстве xml экземпляра объекта DOMDocument; Memo1.Text:=Doc.xml; end; end.