
- •1. Технологии публикации баз данных
- •1.1. Сценарии JavaScript, jScript и vbScript
- •1.2. Элементы управления ActiveX
- •1.3. Апплеты и сервлеты Java
- •1.4. Интерфейсы cgi и WinCgi
- •1.5. Интерфейсы isapi/nsapi
- •1.6. Asp, php и idc/htx-страницы
- •1.7. Формирование Web-страниц
- •1.8. Интерфейсы ole db, ado, odbc
- •1.9. Статическая публикация бд
- •1.10. Динамическая публикация бд
- •1.12. Протоколы передачи данных
- •1.13. Универсальный указатель ресурсов
- •3. Расширяемый язык разметки xml
- •3.1. Составляющие xml-документа
- •3.2. Информационные объекты
- •3.3. Определение типа документа
- •3.4. Xml как средство обмена данными
- •4. Программа xml Mapper
3.4. Xml как средство обмена данными
Как уже было отмечено, расширяемый язык разметки XML представляет собой развитие языка HTML и по сравнению с ним обеспечивает ряд дополнительных возможностей. Главное отличие XML от HTML заключается в том, что он позволяет определить структуру документа и типы хранимых в нем данных.
Напомним, что одно из достоинств XML состоит в том, что в разрабатываемых с его помощью документах описание структуры хранимых данных отделено от собственно данных. В связи с этим XML представляет собой удобное средство обмена данными между отдельными приложениями, т. к. позволяет обеспечить согласованный обмен данными в случаях, когда структура данных (например, имена и типы полей) в приложениях различается.
Кроме того, с помощью XML можно упростить доступ к данным, хранимым в базах данных. Например, для доступа к данным персональных БД или табличного процессора Excel пользователю требуется установка соответствующих инструментальных средств. Вместо этого можно создать активные серверные страницы (ASP) или сценарии на языке JScript или VBScript, которые будут извлекать данные из БД и помещать их в документ XML. В дальнейшем информация из полученного таким образом документа XML может использоваться в других приложениях или отображаться на Web-страницах. Таким образом, полученные в результате данные становятся доступными для всех пользователей, имеющих браузер, независимо от наличия СУБД или табличного процессора.
Документы XML могут использоваться как на стороне клиента, так и на стороне сервера. Применение XML-документов на стороне клиента в настоящее время сдерживается в основном отсутствием соответствующих инструментальных средств: не все браузеры позволяют просматривать и работать с документами XML, хотя в большинстве современных продуктов такая возможность уже имеется. Как уже говорилось, к ним относятся браузеры Internet Explorer, начиная с версии 4.0, и Netscape Navigator 5.0 и выше.
При работе с документами XML на стороне сервера используются языковые средства, обычно применяемые для расширения возможностей сервера, такие как Java и JScript. Отметим еще, что последние версии современных систем программирования, ориентированных на разработку приложений Web, также поддерживают средства для создания и обработки документов XML. В частности, такие средства имеются в составе JBuilder 4.0 и Delphi 6.
4. Программа xml Mapper
Для работы с документами XML в составе инструментальных средств Delphi начиная с версии 6 появилась новая программа XML Mapper (XML-преобразователь). Она предназначена для задания отображения (определения соответствия) между XML-документами и пакетами данных, используемыми клиентскими наборами данных. Эту программу можно вызвать из среды Delphi командой Tools/XML Mapper или запустив файла xmlmapper.exe, находящийся в каталоге BIN главного каталога Delphi, а также через главное меню Windows, выбрав команду Program/Borland Delphi 7/XML Mapper.
Пакет данных содержит метаданные, описывающие структуру XML-документа. Отображение (трансформация) представляет собой соответствие между элементами XML-документа и полями в пакете данных. С помощью программы XML Mapper можно задать отображения:
существующих XML-схемы или документа на клиентский набор данных;
существующего пакета данных на новую XML-схему;
существующей XML-схемы на существующий пакет данных.
Заданное отображение можно сохранить в трансформационном файле (файле соответствия) с расширением XTR. Обычно трансформационные файлы создают в паре: для прямого и обратного преобразования. Полученные с помощью программы XML Mapper трансформационные файлы могут использоваться компонентами типа TXMLTransform, TXMLTransformProvider и TXMLTransformClient для выполнения преобразования данных в приложении.
Окно программы XML Mapper состоит из трех панелей (рис. 13.4):
панель документа — отображает XML-документ и 3 варианта его схем;
панель отображения — задает соответствие между XML-документом и пакетом данных;
панель пакета данных — отображает метаданные пакета данных.
Панель документа содержит две вкладки, позволяющие просматривать содержимое открытого (загруженного) XML-документа в виде дерева элементов (вкладка Document View) и в виде схем DTD, XDR или XSD (вкладка Schema View). Открытие документа выполняется командой File/Open главного меню программы или командой Open XML Document контекстного меню панели документа.
Замечание
Файлы с расширениями DTD (Data Type Definition), XDR (reduced XMLData) и XSD (XML schema) служат для хранения соответствующих вариантов схем XML-документа, отображаемых с помощью вкладки Schema View.
Рис. 13.4. Окно программы XML Mapper
Панель пакета данных включает в себя две вкладки, позволяющие просматривать содержимое текущего пакета данных в виде дерева полей (вкладка Field View) и структуры (вкладка Datapacket View). Открытие пакета данных выполняется командой File/Open главного меню программы или командой Open Datapacket контекстного меню панели пакета данных. Файл пакета данных имеет расширение XML, кроме того, можно открывать пакет данных, сохраненный в двоичном формате (файл с расширением CDS).
Панель отображения определяет соответствие между элементами XML-документа и полями пакета данных. Эта панель содержит две вкладки: Node Properties и Mapping.
Вкладка Node Properties позволяет просматривать и изменять свойства элемента (Node), выбранного в открытом XML-документе. Свойства элементов открытого документа можно сохранить в файле с расширением XRP. Сохранение свойств выполняется командой File/Save/Repository главного меню программы или командой Save Repository контекстного меню панели отображения. Впоследствии сохраненные свойства элементов ХМL-документа можно загрузить из файла XRP.
Свойства выбранного элемента отображаются в таблице, содержащей названия свойств (столбец Properties) и значения свойств (столбец Values). Отметим следующие свойства:
Attribute Name — имя элемента;
Mapped Name — имя поля в пакете данных, которому соответствует элемент;
Data Type — тип данных, например, String, Float или Integer;
Data Format — формат данных;
Max Length — максимальная длина (для строковых данных);
Value Required — требование обязательности значения;
In Primary Key — признак включения поля в состав первичного ключа пакета данных;
Default value — значение по умолчанию;
Sample Value — пример значения.
Первоначально свойства имеют значения по умолчанию, определяемые на основании информации из XML-документа. Эти значения можно изменять, например, задать другой тип данных.
На вкладке Mapping находится таблица, отображающая соответствие между элементами XML-документа (столбец Selected Nodes) и полями пакета данных (столбец Selected Fields). Добавление нового элемента к таблице выполняется двойным щелчком на нем или командой Select контекстного меню элемента. Команда Select All включает в таблицу все элементы документа. Под таблицей соответствия расположен Навигатор, который позволяет перемещаться по элементам, а также удалять элементы из таблицы.
Создание пакета данных из XML-документа и, наоборот, получение XML-документа из пакета данных выполняется, соответственно, командами Create/ Datapacket from XML и Create/XML from Datapacket главного меню или командами Create Datapacket from XML и Create XML from Datapacket контекстных меню панелей документа и пакета данных. Ниже приводятся файл Currencies.xml XML-документа и созданный на его основе файл пакета данных CurrenciesDatapacket.xml.
Файл Currencies.xml
<?xml version="l.О" standalone="yes"?>
<tr>
<td id="l" abbr="CHF" country="Swiss"/>
<td id="2" abbr="RUB" country="Russia"/>
<td id="3" abbr="GBP" country="Great Britain"/>
<td id="4" abbr="USD" country="USA"/>
</tr>
Файл CurrenciesDatapacket.xml
<?xml version="1.0" standalone="yes"?>
<DATAPACKET Version="2.0">
<METADATA>
<FIELDS>
<FIELD attrname="id" fieldtype="string" WIDTH="l"/>
<FIELD attrname="abbr" fieldtype="string" WIDTH="3"/>
<FIELD attrname="country" fieldtype="string" WIDTH="13"/>
</FIELDS>
<PARAMS/>
</METADATA>
<ROWDATA/>
</DATAPACKET>
Отображение (трансформация) XML-документа на пакет данных и обратное преобразование выполняется по команде Create/Transformation главного меню или по команде Create Transformation контекстного меню панели отображения. Преобразование также можно выполнить нажатием кнопки Create and Test Transformation, при этом направление преобразования задают переключатели группы Transform Direction. Созданное отображение можно сохранить в трансформационном файле командой File/Save/Transformation главного меню или командой Save Transformation контекстного меню панели отображения.