Вывод в формате XML
Одним из самых естественных способов объединения технологий баз данных и XMLявляется использование XML в качестве формата выходных данных SQL-запросов. Результаты запроса имеют структурированный табличный формат, который легко преобразовать в XML-представление. Рассмотрим простой запрос из учебной базы данных:
SELECT ID_ORDER, ID_MFR, ID_PRD, COUNT, PRICE_ALL
FROM ZAKAZY
WHERE ID_CLN = 12103;
ID_ORDER | ID_MFR | ID_PRD | COUNT | PRICE_ALL |
ВАЗ | $3,276.00 | |||
ВАЗ | $702.00 | |||
ВАЗ | $4,104.00 | |||
ВАЗ | 4100Y | $27,500.00 |
Если СУБД получила команду вывести результаты запроса в формате XML, те же выходные данные могут быть представлены так:
SELECT ID_ORDER, ID_MFR, ID_PRD, COUNT, PRICE_ALL
FROM ZAKAZY
WHERE ID_CLN = 12103;
<?xml version="1.0"?>
<queryResults>
<row>
<id_order>312963</id_order>
<id_mfr>ВАЗ< id_mfr>
<id_prd>41004</id_prd>
<count>28</count>
<price_all>3276.00</price_all>
</row>
<row>
<id_order>3112983</id_order>
<id_mfr> ВАЗ </id_mfr>
<id_prd>41004</id_prd>
<count>6</count>
<price_all>702.00</price_all>
</row>
<row>
<id_order>3113027</id_order>
<id_mfr>ВАЗ</id_mfr>
<id_prd>41002</id_prd>
<count>54</count>
<price_all>4104.00</price_all>
</row>
<row>
<id_order>3112987</id_order>
<id_mfr>ВАЗ</id_mfr>
<id_prd>4100Y</id_prd>
<count>11</count>
<price_all>27500.00</price_all>
</row>
</queryResults>
Это типичный вид выходной информации, которую можно получить от популярных СУБД, поддерживающих вывод данных в XML-формате. Результаты запроса представляют собой сформированный по всем правилам самодостаточный XML-документ. Если подать его на вход синтаксического анализатора XML, анализатор правильно его интерпретирует и выделит в нем:
– один корневой элемент <queryResults>;
– четыре вложенных элемента <row>;
– для каждого элемента <row> пять вложенных элементов, расположенных в одном и том же порядке.
Возможность получать результаты запросов в XML-формате бывает очень полезной по следующим причинам.
1. Такие данные можно непосредственно подать на вход программы выполняющей их дальнейшую обработку и принимающей информацию в XML-формате.
2. Их можно переслать по сети другой системе, и благодаря XML-формату, содержащему описания элементов, любаяполучающая система или приложение интерпретируют результаты запроса одинаково - как четыре строки по пять элементов в каждой.
3. А поскольку выходные данные имеют текстовый формат, то исключается их неправильная интерпретация из-за различий двоичного представления данных в системе-отправителе и системе-получателе.
4. Наконец, если XML-документ передается через HTTP с использованием стандартного протокола Simple Object Access Protocol (SOAP), он может проходить через корпоративные брандмауэры и связывать приложение-отправитель в одной компании с приложением-получателем в другой.
Однако у выходного формата XML имеется и несколько недостатков. Один их них связан с размером строки данных. В XML-документе строка содержит вчетверо больше символов, чем та же строка в табличном формате. Соответственно для записи такого документа на диск потребуется вчетверо больше места, а если пересылать этот документ по сети, процесс займет вчетверо больше времени.
Для нашего примера с маленьким количеством данных это не страшно, но для результатов запросов, содержащих тысячи или десятки тысяч строк, умноженных на сотни приложений, выполняющихся на крупном предприятии, это может быть очень существенно.
Кроме того, в данном простейшем XML-формате теряется некоторая информация о данных. Исчез символ денежной единицы, присутствовавший в табличном представлении данных, из-за чего на основании только содержимого XML-документа нельзя определить, что данные имеют денежный тип, и узнать, какая денежная единица используется. Для сохранения этой информации может использоваться XML схема.
Дата добавления: 2015-02-03; просмотров: 905;