Ввод XML без написания SQL-кода
Ввод xml-данных оператором 'insert' уже рассматривался в
отдельном документе.
Если мы разрешим ввод xml-данных наравне с sql-кодом,
то мы удалим прокладки, которые обрамляют xml-данные оператором 'insert'.
Это очень актуально в связи с тем, что прикладные специалисты,
автоматизирующие свою деятельность без программистов,
не могут настроить библиотеки таких прокладок как php, perl, etc.
Триггеры срабатывают начиная с начиная с корневой записи дерева.
Кроме того, получив xml-дерево, СУБД автоматически могла бы записать параметры соединения
- адрес отправителя в литеральной форме, например "asker.org"
- адрес отправителя в числовой форме, например "111.111.111.111"
(на тот случай, если отправитель не имеет литерального адреса)
- TCP-порт отправителя, например "80"
- адрес получателя в литеральной форме, например "distination.org"
(на тот случай, если база данных обслуживает несколько получателей)
- адрес получателя в числовой форме, например "222.222.222.222"
- TCP-порт получателя, например "80"
- если протокол передачи возволяет, то и
- имя получателя, например "tomson"
(то самое, которое указывается в строке браузера "/~tomson")
- сервис (скрипт) получателя, например "car-celler"
(тот самый, который указывается в строке браузера "/cgi-bin/car-celler.cgi" -
путь и расширение файла игнорируются, существование одноименных сервисов невозможно)
- агент пользователя (имя браузера)
- имя отправителя
в поля (если таковые существуют)
- sal (sender address literal, i.e. sender DNS-address)
- san (sender address numeric, i.e. sender IP-address)
- sp (sender port)
- ral (receiver address literal, i.e. receiver DNS-address)
- ran (receiver address numeric, i.e. receiver IP-address)
- rp (receiver port)
- если протокол передачи возволяет, то и
- ru (receiver username)
- rs (receiver service)
- g (user agent)
- su (sender username)
корневого xml-элемента (обычно это
formdata,
tabledata,
treedata).
Поле 'имя отправителя' (sender username)
в корневой записи предназначено для будущей версии HTTP:
получатель должен индивидуально реагировать
на каждого конкретного пользователя-отправителя,
поэтому можно ожидать передачи и имени пользователя-отправителя.
Тюрин Дмитрий