changeset 31:3e77076621a8

Remove obsolete docs and sample.
author Mikhail Kryshen <mikhail@kryshen.net>
date Sun, 30 Aug 2009 02:51:15 +0400
parents 54539dff18ca
children bdd1c8d6b560
files build.xml misc/biotopes/biotope-top.sql misc/biotopes/biotope.sql misc/biotopes/biotope.template misc/biotopes/brief.dtd misc/biotopes/class.sql misc/biotopes/classes.template misc/biotopes/doc/article.txt misc/biotopes/doc/readme.html misc/biotopes/doc/readme.txt misc/biotopes/main.template misc/biotopes/photo.sql misc/biotopes/photo.template misc/biotopes/plant.sql misc/biotopes/plants.template misc/biotopes/tema.properties misc/manual-ru-old/index.html misc/util/header misc/util/header.gpl misc/util/update_headers.pl
diffstat 20 files changed, 0 insertions(+), 1131 deletions(-) [+]
line diff
     1.1 --- a/build.xml	Fri May 15 03:07:16 2009 +0400
     1.2 +++ b/build.xml	Sun Aug 30 02:51:15 2009 +0400
     1.3 @@ -118,7 +118,6 @@
     1.4  		<exclude name=".hg/**"/>
     1.5  		<exclude name=".hg*"/>
     1.6                  <exclude name="${build}/**"/>
     1.7 -                <exclude name="misc/**"/>
     1.8                  <exclude name="test/**"/>
     1.9                  <exclude name="nbproject/**"/>
    1.10                  <exclude name="${dist}/${ant.project.name}-*.tar.gz"/>
     2.1 --- a/misc/biotopes/biotope-top.sql	Fri May 15 03:07:16 2009 +0400
     2.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.3 @@ -1,20 +0,0 @@
     2.4 -SELECT t1.*,
     2.5 -
     2.6 -(SELECT t2.rusname FROM biotopelist AS t2
     2.7 -WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1) AND
     2.8 -Right(t2.rangcode, 8) = '00000000') AS class0,
     2.9 -
    2.10 -(SELECT t2.rusname FROM biotopelist AS t2
    2.11 -WHERE Left(t2.rangcode, 3) = Left(t1.rangcode, 3) AND
    2.12 -Right(t2.rangcode, 6) = '000000') AS class1,
    2.13 -
    2.14 -(SELECT t2.rusname FROM biotopelist AS t2
    2.15 -WHERE Left(t2.rangcode, 5) = Left(t1.rangcode, 5) AND
    2.16 -Right(t2.rangcode, 4) = '0000') AS class2,
    2.17 -
    2.18 -(SELECT t2.rusname FROM biotopelist AS t2
    2.19 -WHERE Left(t2.rangcode, 7) = Left(t1.rangcode, 7) AND
    2.20 -Right(t2.rangcode, 2) = '00') AS class3
    2.21 -
    2.22 -FROM biotopelist AS t1
    2.23 -WHERE Right(t1.rangcode, 2) <> '00' AND rusname
     3.1 --- a/misc/biotopes/biotope.sql	Fri May 15 03:07:16 2009 +0400
     3.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3 @@ -1,24 +0,0 @@
     3.4 -SELECT t1.*,
     3.5 -
     3.6 -(SELECT t2.rusname FROM biotopelist AS t2
     3.7 -WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1)
     3.8 -AND Right(t2.rangcode, 8)  = '00000000'
     3.9 -AND Right(t1.rangcode, 8) <> '00000000') AS class0,
    3.10 -
    3.11 -(SELECT t2.rusname FROM biotopelist AS t2
    3.12 -WHERE Left(t2.rangcode, 3) = Left(t1.rangcode, 3)
    3.13 -AND Right(t2.rangcode, 6)  = '000000'
    3.14 -AND Right(t1.rangcode, 6) <> '000000') AS class1,
    3.15 -
    3.16 -(SELECT t2.rusname FROM biotopelist AS t2
    3.17 -WHERE Left(t2.rangcode, 5) = Left(t1.rangcode, 5)
    3.18 -AND Right(t2.rangcode, 4)  = '0000'
    3.19 -AND Right(t1.rangcode, 4) <> '0000') AS class2,
    3.20 -
    3.21 -(SELECT t2.rusname FROM biotopelist AS t2
    3.22 -WHERE Left(t2.rangcode, 7) = Left(t1.rangcode, 7)
    3.23 -AND Right(t2.rangcode, 2)  = '00'
    3.24 -AND Right(t1.rangcode, 2) <> '00') AS class3
    3.25 -
    3.26 -FROM biotopelist AS t1
    3.27 -WHERE rusname
     4.1 --- a/misc/biotopes/biotope.template	Fri May 15 03:07:16 2009 +0400
     4.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3 @@ -1,17 +0,0 @@
     4.4 -<?xml version="1.0" encoding="ISO-8859-5"?>
     4.5 -<!DOCTYPE чъьАпщьу_рьтп SYSTEM "brief.dtd">
     4.6 -<!-- rangcode: <%xml_escape db\rangcode%> -->
     4.7 -<чъьАпщьу_рьтп show="0">
     4.8 -  <ЮьАЦщзь display="0">
     4.9 -    <%optional:<зпЮБп_ЮпАъЮчАБЮпщущьО щчэуЮ="1" file="<%xml_escape image:maps/<%db\rangcode%>.gif maps/<%db\code%>.png png%>"/>%>
    4.10 -<%query:photo_sql [%\<%include\photo.template%>%] <%get\code%>%>
    4.11 -  </ЮьАЦщзь>
    4.12 -  <щпврпщьу><%xml_escape db\rusname%></щпврпщьу>
    4.13 -  <зшпАА><%xml_escape db\class0%></зшпАА>
    4.14 -  <ъчтзшпАА1><%xml_escape db\class1%></ъчтзшпАА1>
    4.15 -  <ъчтзшпАА2><%xml_escape db\class2%></ъчтзшпАА2>
    4.16 -  <ъчтзшпАА3><%xml_escape db\class3%></ъчтзшпАА3>
    4.17 -  <зЮпБзпО_ЕпЮпзБуЮьАБьзп rows="3"><%xml_cdata db\descript%></зЮпБзпО_ЕпЮпзБуЮьАБьзп>
    4.18 -  <ъЮьэуЮ_чъьАпщьО rows="3"><%xml_cdata db\geobotdescr%></ъЮьэуЮ_чъьАпщьО>
    4.19 -  <прБчЮК_чъьАпщьО><%xml_escape db\contributors%></прБчЮК_чъьАпщьО>
    4.20 -</чъьАпщьу_рьтп>
     5.1 --- a/misc/biotopes/brief.dtd	Fri May 15 03:07:16 2009 +0400
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,27 +0,0 @@
     5.4 -<?xml encoding="ISO-8859-5"?>
     5.5 -<!ELEMENT чъьАпщьу_рьтп (ЮьАЦщзь?, щпврпщьу, зшпАА, ъчтзшпАА1, ъчтзшпАА2, ъчтзшпАА3, зЮпБзпО_ЕпЮпзБуЮьАБьзп, ъЮьэуЮ_чъьАпщьО, прБчЮК_чъьАпщьО)>
     5.6 -<!ELEMENT ЮьАЦщзь (ДчБчсЮпДьО|зпЮБп_ЮпАъЮчАБЮпщущьО)*>
     5.7 -<!ELEMENT ДчБчсЮпДьО EMPTY>
     5.8 -<!ELEMENT зпЮБп_ЮпАъЮчАБЮпщущьО EMPTY>
     5.9 -<!ELEMENT щпврпщьу (#PCDATA)>
    5.10 -<!ELEMENT зшпАА (#PCDATA)>
    5.11 -<!ELEMENT ъчтзшпАА1 (#PCDATA)>
    5.12 -<!ELEMENT ъчтзшпАА2 (#PCDATA)>
    5.13 -<!ELEMENT ъчтзшпАА3 (#PCDATA)>
    5.14 -<!ELEMENT зЮпБзпО_ЕпЮпзБуЮьАБьзп (#PCDATA)>
    5.15 -<!ELEMENT ъЮьэуЮ_чъьАпщьО (#PCDATA)>
    5.16 -<!ELEMENT прБчЮК_чъьАпщьО (#PCDATA)>
    5.17 -<!ATTLIST чъьАпщьу_рьтп show (0|1) "1"> 
    5.18 -<!ATTLIST ЮьАЦщзь
    5.19 -	display CDATA #FIXED "0">
    5.20 -<!ATTLIST ДчБчсЮпДьО
    5.21 -	num ID #REQUIRED
    5.22 -	file CDATA #REQUIRED
    5.23 -	big CDATA #REQUIRED
    5.24 -	text CDATA #IMPLIED
    5.25 -	прБчЮ CDATA #IMPLIED>
    5.26 -<!ATTLIST зпЮБп_ЮпАъЮчАБЮпщущьО
    5.27 -	num ID #REQUIRED
    5.28 -	file CDATA #REQUIRED>
    5.29 -<!ATTLIST зЮпБзпО_ЕпЮпзБуЮьАБьзп rows CDATA #FIXED "3">
    5.30 -<!ATTLIST ъЮьэуЮ_чъьАпщьО rows CDATA #FIXED "3">
     6.1 --- a/misc/biotopes/class.sql	Fri May 15 03:07:16 2009 +0400
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,7 +0,0 @@
     6.4 -SELECT t1.*
     6.5 -FROM biotopelist AS t1
     6.6 -WHERE rusname AND Right(t1.rangcode, 8)  = '00000000'
     6.7 -  AND EXISTS
     6.8 -    (SELECT NULL FROM biotopelist AS t2
     6.9 -     WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1)
    6.10 -     AND Right(t2.rangcode, 8) <> '00000000')
     7.1 --- a/misc/biotopes/classes.template	Fri May 15 03:07:16 2009 +0400
     7.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.3 @@ -1,5 +0,0 @@
     7.4 -<?xml version="1.0" encoding="ISO-8859-5"?>
     7.5 -<зшпААьДьзпФьО><%query:class_sql [%\
     7.6 -  <!-- rangcode: <%xml_escape get\rangcode%> -->
     7.7 -  <зшпАА id="<%get\NUMBER%>"><%xml_escape db\rusname%></зшпАА>%]%>
     7.8 -</зшпААьДьзпФьО>
     8.1 --- a/misc/biotopes/doc/article.txt	Fri May 15 03:07:16 2009 +0400
     8.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.3 @@ -1,391 +0,0 @@
     8.4 -* Преобразование базы данных в XML-формат электронной библиотеки.
     8.5 -
     8.6 -Для решения задачи преобразования базы данных "Местообитания Восточной
     8.7 -Фенноскандии" из формата Microsoft Access в XML-формат электронной
     8.8 -библиотеки КарНЦ РАН была разработана программная система DbReader.
     8.9 -
    8.10 -Программа DbReader является универсальным средством для представления
    8.11 -информации из баз данных в текстовых форматах. Программа обрабатывает
    8.12 -заданные шаблоны текстовых файлов и заменяет найденные в них
    8.13 -инструкции на результаты их выполнения. Различные инструкции позволяют
    8.14 -формировать SQL-запросы, выполнять их и обрабатывать полученные
    8.15 -данные.
    8.16 -
    8.17 -
    8.18 -* Формат инструкций:
    8.19 -
    8.20 -    <%<список_функций>{:|\}<данные>%>
    8.21 -  где 
    8.22 -
    8.23 -<список_функций> - список имен функций, разделенных пробелами.
    8.24 -    Может быть пустым.
    8.25 -<данные> - данные, передаваемые функции.
    8.26 -
    8.27 -
    8.28 -* Формат данных:
    8.29 -
    8.30 -    [<список_аргументов>][<текст>]
    8.31 -  где
    8.32 -
    8.33 -<список_аргументов> - список аргументов функции, разделенных пробелами.
    8.34 -    Может быть пустым.
    8.35 -<текст> - текст, передаваемый функции без разбиения на аргументы.
    8.36 -    Может быть пустым. Количество аргументов, после которого следует
    8.37 -    текст, зависит от функции.
    8.38 -
    8.39 -Разделитель между списком функций и данными определяет, как должны
    8.40 -обрабатываться данные функции:
    8.41 -: - рекурсивная обработка,
    8.42 -\ - передать без обработки.
    8.43 -
    8.44 -Если в списке функций задано две и более функции, они выполняются,
    8.45 -начиная с последней, так что каждая функция получает в качестве данных
    8.46 -результат выполнения следующей функции.
    8.47 -
    8.48 -Каждая функция имеет код возврата - целое число. Код возврата
    8.49 -инструкции - код возврата первой в списке функции. Код возврата,
    8.50 -получаемый при обработке текста - сумма кодов возврата обработанных
    8.51 -инструкций.
    8.52 -
    8.53 -Вместо скобок '<', '>' можно использовать скобки '[', ']'.
    8.54 -
    8.55 -
    8.56 -* Реализованные функции:
    8.57 -
    8.58 -Функция:      set
    8.59 -Аргументы:    <имя>
    8.60 -Текст:        <значение>
    8.61 -Действие:     устанавливает значение переменной <имя>
    8.62 -Результат:    <имя>
    8.63 -Код возврата: 1
    8.64 -
    8.65 -Функция:      get
    8.66 -Аргументы:    <имя>
    8.67 -Результат:    значение переменной <имя>. 
    8.68 -Код возврата: 1, если значение переменной было установлено, 0 - иначе.
    8.69 -
    8.70 -Функция:      prepare
    8.71 -Аргументы:    <имя>
    8.72 -Текст:        <запрос>
    8.73 -Действие:     Подготавливает SQL-запрос <запрос> для выполнения,
    8.74 -              записывает подготовленный запрос в переменную <имя>.
    8.75 -Результат:    <имя>
    8.76 -Код возврата: 1
    8.77 -
    8.78 -Функция:      query
    8.79 -Аргументы:    <имя_запроса> <шаблон> <парам1> ... <парамN>
    8.80 -Действие:     Выполняет запрос с параметрами, подготовленный с помощью
    8.81 -              функции prepare. Значения параметров подставляются в
    8.82 -              запрос вместо символа '?'. Значения полей ответа будут
    8.83 -              записаны, как переменные шаблона <шаблон>. При обработки
    8.84 -              шаблона <шаблон> также определяется переменная NUMBER,
    8.85 -              содержащая номер текущей строки ответа. Переменные,
    8.86 -              определенные в вызывающем шаблоне, доступны из шаблона
    8.87 -              <шаблон> по имени SUPER.<имя_переменной>.
    8.88 -
    8.89 -Результат:    результат обработки шаблона <шаблон> для каждой строки
    8.90 -              ответа.
    8.91 -Код возврата: количество полученных строк ответа.
    8.92 -
    8.93 -Функция:      optional
    8.94 -Текст:        <данные>
    8.95 -Результат:    <данные>, если при обработке данных был получен
    8.96 -              код возврата отличный от 0, иначе - пустая строка.
    8.97 -Код возврата: 1, если результат - пустая строка, 0 - иначе.
    8.98 -
    8.99 -Функция:      image
   8.100 -Аргументы:    <исх_файл> <кон_файл> <формат> [<макс_ширина> [<макс_высота>]]
   8.101 -Действие:     Загружает изображение из файла <исх_файл> (путь определяется
   8.102 -              относительно конфигурационного параметра "resource_base") и
   8.103 -              преобразует его в указанный формат, сохраняя результат в
   8.104 -              <кон_файл>. Если заданы максимальная высота и ширина, большие
   8.105 -              изображения будут уменьшены. 
   8.106 -Результат:    <кон_файл> при успешном выполнении, пустая строка - иначе.
   8.107 -Код возврата: 1 при успешном выполнении, 0 - иначе.
   8.108 -
   8.109 -Функция:      copy
   8.110 -Аргументы:    <исх_файл> <кон_файл>
   8.111 -Действие:     Копирует файл <исх_файл> в файл <кон_файл>
   8.112 -	      (путь <исх_файл> определяется относительно
   8.113 -              конфигурационного параметра "resource_base").
   8.114 -Результат:    <кон_файл> при успешном выполнении, пустая строка - иначе.
   8.115 -Код возврата: 1 при успешном выполнении, 0 - иначе.
   8.116 -
   8.117 -Функция:      write
   8.118 -Аргументы:    <имя_файла>
   8.119 -Текст:        <данные>
   8.120 -Действие:     Записывает <данные> в файл <исх_файл>.
   8.121 -Результат:    <кон_файл> при успешном выполнении, пустая строка - иначе.
   8.122 -Код возврата: 1 при успешном выполнении, 0 - иначе.
   8.123 -
   8.124 -Функция:      read
   8.125 -Текст:        <имя_файла>
   8.126 -Действие:     Читает файл <имя_файла>.
   8.127 -Результат:    прочитанные данные при успешном выполнении, пустая
   8.128 -              строка - иначе.
   8.129 -Код возврата: 1 при успешном выполнении, 0 - иначе.
   8.130 -
   8.131 -Функция:      include
   8.132 -Текст:        <имя_файла>
   8.133 -Действие:     включает шаблон из файла <имя_файла>.
   8.134 -Результат:    результат обработки шаблона.
   8.135 -Код возврата: код возврата, полученный при обработке шаблона.
   8.136 -
   8.137 -Функция:      !
   8.138 -Текст:        <данные>
   8.139 -Действие:     нет.
   8.140 -Результат:    нет.
   8.141 -Код возврата: код возврата, полученный при обработке текста данных.
   8.142 -
   8.143 -Функция:      replace
   8.144 -Аргументы:    <стр1> <стр2>
   8.145 -Текст:        <данные>
   8.146 -Результат:    данные, с замененными вхождениями подстроки <стр1>
   8.147 -	      на <стр2>.
   8.148 -Код возврата: код возврата, полученный при обработке текста данных.
   8.149 -
   8.150 -Функция:      xml_escape
   8.151 -Текст:        <данные>
   8.152 -Результат:    текст <данные>, в котором  символы
   8.153 -              '&', '<', '>', '`', '\' заменены на соответствующие
   8.154 -	      сущности XML.
   8.155 -Код возврата: код возврата, полученный при обработке текста данных.
   8.156 -
   8.157 -Функция:      xml_cdata
   8.158 -Текст:        <данные>
   8.159 -Результат:    данные в виде блока XML CDATA.
   8.160 -Код возврата: код возврата, полученный при обработке текста данных.
   8.161 -
   8.162 -Система DbReader расширяема: возможно добавление в систему новых
   8.163 -функций, реализованных в виде классов на языке Java.
   8.164 -
   8.165 -
   8.166 -* Применение системы DbReader для преобразования базы данных
   8.167 -  "Местообитания Восточной Фенноскандии" из формата Microsoft Access в
   8.168 -  XML-формат электронной библиотеки КарНЦ РАН
   8.169 -
   8.170 -Для преобразования используются две таблицы базы данных "Местообитания
   8.171 -Восточной Фенноскандии" (перечислены только используемые поля):
   8.172 -
   8.173 -biotopelist (code, rangcode, rusname, engname, descript, geobotdescr,
   8.174 -             contributors, descrdate)
   8.175 -
   8.176 -  code - счетчик, ключевое поле;
   8.177 -  rangcode - поле в формате ABBCCDDEE, где А, BB, CC, DD, ЕЕ - коды
   8.178 -             класса, подклассов и растения;
   8.179 -  rusname, engname, descript, geobotdescr - текстовые поля;
   8.180 -  descrdate - дата.
   8.181 -
   8.182 -photos (biotope, photo, authphoto)
   8.183 -
   8.184 -  biotope - число, указывает на code в biotopelist;
   8.185 -  photo - имя файла фотографии;
   8.186 -  authphoto - текст.
   8.187 -
   8.188 -Требуется сгенерировать xml-файл для каждой записи в biotopelist, файл
   8.189 -со списком классов, файл со списком растений, полноразмерные и
   8.190 -уменьшенные версии каждой фотографии.
   8.191 -
   8.192 -Для генерации xml-файлов с описаниями биотопов использовался следующий
   8.193 -шаблон DbReader (файл biotope.template):
   8.194 -
   8.195 -----------------------------------------------------------------------
   8.196 -<?xml version="1.0" encoding="ISO-8859-5"?>
   8.197 -<!DOCTYPE описание_вида SYSTEM "brief.dtd">
   8.198 -<!-- rangcode: <%xml_escape get\rangcode%> -->
   8.199 -<описание_вида show="0">
   8.200 -  <рисунки display="0">
   8.201 -    <%optional:<карта_распространения номер="1"
   8.202 -    file="<%xml_escape image:maps/<%get\rangcode%>.gif maps/<%get\code%>.png png%>"/>%>
   8.203 -<%query:photo_sql [%\<%include\photo.template%>%] <%get\code%>%>
   8.204 -  </рисунки>
   8.205 -  <название><%xml_escape get\rusname%></название>
   8.206 -  <класс><%xml_escape get\class0%></класс>
   8.207 -  <подкласс1><%xml_escape get\class1%></подкласс1>
   8.208 -  <подкласс2><%xml_escape get\class2%></подкласс2>
   8.209 -  <подкласс3><%xml_escape get\class3%></подкласс3>
   8.210 -  <краткая_характеристика rows="3"><%xml_cdata get\descript%></краткая_характеристика>
   8.211 -  <пример_описания rows="3"><%xml_cdata get\geobotdescr%></пример_описания>
   8.212 -  <авторы_описания><%xml_escape get\contributors%></авторы_описания>
   8.213 -</описание_вида>
   8.214 -----------------------------------------------------------------------
   8.215 -
   8.216 -Соответствующий SQL-запрос, при выполнении которого устанавливаются
   8.217 -значения переменных шаблона rangcode, rusname, class0, class1, class2,
   8.218 -class3, descript, geobotdescr и contributors (файл biotope.sql):
   8.219 -
   8.220 -----------------------------------------------------------------------
   8.221 -SELECT t1.*,
   8.222 -
   8.223 -(SELECT t2.rusname FROM biotopelist AS t2
   8.224 -WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1)
   8.225 -AND Right(t2.rangcode, 8)  = '00000000'
   8.226 -AND Right(t1.rangcode, 8) <> '00000000') AS class0,
   8.227 -
   8.228 -(SELECT t2.rusname FROM biotopelist AS t2
   8.229 -WHERE Left(t2.rangcode, 3) = Left(t1.rangcode, 3)
   8.230 -AND Right(t2.rangcode, 6)  = '000000'
   8.231 -AND Right(t1.rangcode, 6) <> '000000') AS class1,
   8.232 -
   8.233 -(SELECT t2.rusname FROM biotopelist AS t2
   8.234 -WHERE Left(t2.rangcode, 5) = Left(t1.rangcode, 5)
   8.235 -AND Right(t2.rangcode, 4)  = '0000'
   8.236 -AND Right(t1.rangcode, 4) <> '0000') AS class2,
   8.237 -
   8.238 -(SELECT t2.rusname FROM biotopelist AS t2
   8.239 -WHERE Left(t2.rangcode, 7) = Left(t1.rangcode, 7)
   8.240 -AND Right(t2.rangcode, 2)  = '00'
   8.241 -AND Right(t1.rangcode, 2) <> '00') AS class3
   8.242 -
   8.243 -FROM biotopelist AS t1
   8.244 -WHERE rusname
   8.245 -----------------------------------------------------------------------
   8.246 -
   8.247 -Шаблон biotope.template содержит инструкцию <%include\photo.template%>,
   8.248 -включающую шаблон описания фотографии (файл photo.template):
   8.249 -
   8.250 -----------------------------------------------------------------------
   8.251 -    <фотография num="<%xml_escape get\NUMBER%>"
   8.252 -       <%optional:автор="<%xml_escape get\authphoto%>" %>text="" 
   8.253 -       file="<%xml_escape image:biotopephotos/<%get\photo%> images/<%get\SUPER.code%>_<%get\NUMBER%>.jpg jpg 300 300%>" 
   8.254 -        big="<%xml_escape copy:biotopephotos/<%get\photo%> images/big/<%get\SUPER.code%>_<%get\NUMBER%>.jpg%>"/>
   8.255 -----------------------------------------------------------------------
   8.256 -
   8.257 -Соответствующий SQL-запрос для получения описания фотографий
   8.258 -(photo.sql):
   8.259 -
   8.260 -----------------------------------------------------------------------
   8.261 -SELECT * from photos WHERE biotope = ?
   8.262 -----------------------------------------------------------------------
   8.263 -
   8.264 -Шаблон, генерирующий список классов (файл classes.template):
   8.265 -
   8.266 -----------------------------------------------------------------------
   8.267 -<?xml version="1.0" encoding="ISO-8859-5"?>
   8.268 -<классификация><%query:class_sql [%\
   8.269 -  <!-- rangcode: <%xml_escape get\rangcode%> -->
   8.270 -  <класс id="<%get\NUMBER%>"><%xml_escape get\rusname%></класс>%]%>
   8.271 -</классификация>
   8.272 -----------------------------------------------------------------------
   8.273 -
   8.274 -Соответствующий SQL-запрос (class.sql):
   8.275 -
   8.276 -----------------------------------------------------------------------
   8.277 -SELECT t1.*
   8.278 -FROM biotopelist AS t1
   8.279 -WHERE rusname AND Right(t1.rangcode, 8)  = '00000000'
   8.280 -  AND EXISTS
   8.281 -    (SELECT NULL FROM biotopelist AS t2
   8.282 -     WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1)
   8.283 -     AND Right(t2.rangcode, 8) <> '00000000')
   8.284 -----------------------------------------------------------------------
   8.285 -
   8.286 -Шаблон, генерирующий список растений (файл plants.template):
   8.287 -
   8.288 -----------------------------------------------------------------------
   8.289 -<?xml version="1.0" encoding="ISO-8859-5"?>
   8.290 -<растения><%query:plant_sql [%\
   8.291 -  <!-- rangcode: <%xml_escape get\rangcode%> -->
   8.292 -  <растение><%xml_escape get\rusname%></растение>%]%>
   8.293 -</растения>
   8.294 -----------------------------------------------------------------------
   8.295 -
   8.296 -Соответствующий SQL-запрос (plant.sql):
   8.297 -
   8.298 -----------------------------------------------------------------------
   8.299 -SELECT t1.*
   8.300 -FROM biotopelist AS t1
   8.301 -WHERE rusname AND Right(t1.rangcode, 2) <> '00'
   8.302 -----------------------------------------------------------------------
   8.303 -
   8.304 -Система DbReader начинает работу с обработки шаблона index.template,
   8.305 -который содержит вызовы перечисленных выше SQL-запросов и включения
   8.306 -шаблонов:
   8.307 -
   8.308 -----------------------------------------------------------------------
   8.309 -<%!:
   8.310 -  <%prepare:biotope_sql <%read\biotope.sql%>%>
   8.311 -  <%prepare:photo_sql <%read\photo.sql%>%>
   8.312 -  <%prepare:class_sql <%read\class.sql%>%>
   8.313 -  <%prepare:plant_sql <%read\plant.sql%>%>
   8.314 -
   8.315 -  <%query:biotope_sql [%\<%write:<%get\code%>.xml <%include\biotope.template%>%> %]%>
   8.316 -
   8.317 -  <%write:classes.xml <%include\classes.template%>%>
   8.318 -  <%write:plants.xml <%include\plants.template%>%>
   8.319 -%>
   8.320 -----------------------------------------------------------------------
   8.321 -
   8.322 -Пример сгенерированного XML-файла:
   8.323 -
   8.324 -----------------------------------------------------------------------
   8.325 -<?xml version="1.0" encoding="ISO-8859-5"?>
   8.326 -<!DOCTYPE описание_вида SYSTEM "brief.dtd">
   8.327 -<!-- rangcode: E04020302 -->
   8.328 -<описание_вида show="0">
   8.329 -  <рисунки display="0">    
   8.330 -    <фотография num="1" автор="Крышень А.М." text="" 
   8.331 -                file="images/3_1.jpg" 
   8.332 -                big="images/big/3_1.jpg"/>
   8.333 -    <фотография num="2" автор="Крышень А.М." text="" 
   8.334 -                file="images/3_2.jpg" 
   8.335 -                big="images/big/3_2.jpg"/>
   8.336 -  </рисунки>
   8.337 -  <название>Betula sp. - Avenella flexuosa - Polytrichum commune</название>
   8.338 -  <класс>E. Суходольные местообитания</класс>
   8.339 -  <подкласс1>Автоморфные влажные</подкласс1>
   8.340 -  <подкласс2></подкласс2>
   8.341 -  <подкласс3></подкласс3>
   8.342 -  <краткая_характеристика rows="3"><![CDATA[Развиваются  на луговиковых вырубках лесов черничного типа.  Через 5 - 7 лет  после рубки порослевая береза выходит из  яруса травянистых растений, ее влияние сказывается, в первую очередь, на влажности почвы.]]></краткая_характеристика>
   8.343 -  <пример_описания rows="3"></пример_описания>
   8.344 -  <авторы_описания></авторы_описания>
   8.345 -</описание_вида>
   8.346 -----------------------------------------------------------------------
   8.347 -
   8.348 -
   8.349 -* Структура программы DbReader
   8.350 -
   8.351 -Программа DbReader написана на языке программирования Java и состоит
   8.352 -из следующих основных классов:
   8.353 -
   8.354 -ru.karrc.dbreader.DbReader: cодержит точку входа программы. Загружает
   8.355 -конфигурацию, устанавливает соединение с источником данных с помощью
   8.356 -библиотеки JDBC, запускает обработку основного шаблона.
   8.357 -
   8.358 -ru.karrc.dbreader.TemplateParser: осуществляет разбор шаблона,
   8.359 -обработку инструкций и вызов функций.
   8.360 -
   8.361 -ru.karrc.dbreader.Function: абстрактный класс. Реализации всех функций
   8.362 -DbReader наследуют этот класс.
   8.363 -
   8.364 -ru.karrc.dbreader.FunctionDataParser: обработчик данных
   8.365 -функции. Посволяет получить список аргументов и текст, передаваемый
   8.366 -функции. При необходимости вызывает рекурсивную обработку данных с
   8.367 -помощью TemplateParser.
   8.368 -
   8.369 -ru.karrc.dbreader.Functions: содержит реализации функций в виде
   8.370 -анонимных классов, наследующих Function.
   8.371 -
   8.372 -ru.karrc.dbreader.TemplateParser: исключение, выбрасываемое в случае
   8.373 -возникновения ошибки при обработке шаблона.
   8.374 -
   8.375 -Кроме того, реализовано несколько впомогательных классов, которые
   8.376 -используются в реализациях функций системы.
   8.377 -
   8.378 -
   8.379 -* Метрики реализованной программной системы.
   8.380 -
   8.381 -Количество файлов исходного кода: 8,
   8.382 -Количество Java-классов (включая анонимные): 27,
   8.383 -Общее количество строк исходного текста: 1311,
   8.384 -Количество строк кода (исключая пустые строки и комментарии): 812,
   8.385 -Количество строк комментариев: 180.
   8.386 -
   8.387 -
   8.388 -* Заключение
   8.389 -
   8.390 -Автором была разработана программная система DbReader, которая
   8.391 -является расширяемым и универсальным средством для представления
   8.392 -информации из баз данных в текстовых форматах. С помощью системы
   8.393 -DbReader база данных "Местообитания Восточной Фенноскандии" была
   8.394 -переведена в XML-формат электронной библиотеки КарНЦ РАН.
     9.1 --- a/misc/biotopes/doc/readme.html	Fri May 15 03:07:16 2009 +0400
     9.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.3 @@ -1,86 +0,0 @@
     9.4 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     9.5 -          "DTD/xhtml1-transitional.dtd">
     9.6 -
     9.7 -<html>
     9.8 -
     9.9 -<head>
    9.10 -  <title>DbReader</title>
    9.11 -  <meta http-equiv="Content-Type" content="text/html; charset=koi8-r" />
    9.12 -</head>
    9.13 -
    9.14 -<body>
    9.15 -<h1>DbReader</h1>
    9.16 -
    9.17 -<h2>Установка программы</h2>
    9.18 -<ol>
    9.19 -<li>Распаковать архив.</li>
    9.20 -
    9.21 -<li>Установить источник данных:<br />
    9.22 -в Windows 2000: Панель управления/Администрирование/Источники данных (ODBC), добавить biotopes-data.mdb.</li>
    9.23 -
    9.24 -<li>Настроить программу:<br />
    9.25 -В файле dbreader.properties указать имя, присвоенное источнику данных:<br />
    9.26 -    <code>resource: jdbc:odbc:<em>имя</em></code><br />
    9.27 -и путь к каталогу, относительно которого программа будет искать изображения (содержащий biotopephotos и maps):<br />
    9.28 -    <code>resource_base: C:\\biotopes</code><br />
    9.29 -(символ '\' необходимо дублировать)</li>
    9.30 -
    9.31 -<li>Запуск программы:<br />
    9.32 -<code>dbreader.bat</code> или<br />
    9.33 -<code>java -jar dbreader.jar</code>.<br />
    9.34 -Для запуска необходима Java Runtime Environment (JRE) 5.0, можно скачать с <a href="http://java.sun.com/j2se/1.5.0/download.jsp">http://java.sun.com/j2se/1.5.0/download.jsp</a>. Возможно, будет работать и со старыми версиями JRE - не проверял.
    9.35 -
    9.36 -Все значения файла конфигурации можно переопределять при запуске программы:<br />
    9.37 -команда <code>java -Dru.karrc.dbreader.<em>ключ</em>=<em>значение</em> -jar dbreader.jar</code><br />
    9.38 -(например: <code>java -Dru.karrc.dbreader.log=dbreader.log -jar dbreader.jar</code>)</li>
    9.39 -</ol>
    9.40 -
    9.41 -<h2>Работа программы</h2>
    9.42 -
    9.43 -<p>Программа выполняет запрос biotope.sql (или другой, указанный в dbreader.properties), после чего обрабатывает файл biotope.template, заменяя найденные в нем инструкции на результаты их выполнения.</p>
    9.44 -<p>Формат инструкций: <code>&lt;%<em>список_функций</em>[:|\]<em>данные</em>%&gt;</code>, <em>список функций</em> - имена функций разделенные пробелом, список может быть пустым. Если указано несколько функций, они выполняются начиная с последней.</p>
    9.45 -
    9.46 -<h3>Разделители между списком функций и данными</h3>
    9.47 -
    9.48 -<ul>
    9.49 -  <li><code>:</code> - данные будут обрабатываться рекурсивно.</li>
    9.50 -  <li><code>\</code> - данные будут переданы функции без обработки. Можно использовать для экранирования комбинаций символов <code>&lt;%</code> и <code>%&gt;</code> (<code>&lt;%\&lt;%%&gt;</code> и <code>&lt;%\%%&gt;&gt;</code>).</li>
    9.51 -</ul>
    9.52 -
    9.53 -<h3>Функции</h3>
    9.54 -
    9.55 -<ul>
    9.56 -  <li><code>&lt;%get:<em>имя</em>%&gt;</code><br />
    9.57 -  Заменяется на значение встроенной переменной или колонки запроса.</li>
    9.58 -
    9.59 -  <li><code>&lt;%optional:<em>текст</em>%&gt;</code><br />
    9.60 -  Заменяется на <em>текст</em>, если в нем найдены инструкции, заменившиеся на непустые строки, иначе заменяется на пустую строку.</li>
    9.61 -
    9.62 -  <li><code>&lt;%escape:<em>текст</em>%&gt;</code><br />
    9.63 -  Заменяет в тексте "опасные" символы (таблица замен задается в файле конфигурации).</li>
    9.64 -
    9.65 -  <li><code>&lt;%invoke:<em>имя</em>; <em>парам1</em> <em>парам2</em> ... <em>парамN</em>%&gt;</code><br />
    9.66 -  Выполняет запрос с параметрами <em>имя</em>.sql и заменяется на результаты обработки шаблона <em>имя</em>.template. Значения параметров подставляются в запрос вместо символа '?'.</li>
    9.67 -
    9.68 -  <li><code>&lt;%image:<em>исх_файл</em> <em>кон_файл</em> <em>формат</em> [<em>макс_ширина</em>] [<em>макс_высота</em>]%&gt;</code><br />
    9.69 -  Загружает изображение из файла <em>исх_файл</em> (путь определяется относительно конфигурационного параметра "resource_base") и преобразует его в указанный формат, сохраняя результат в <em>кон_файл</em>. Если заданы максимальная высота и ширина, большие изображения будут уменьшены.
    9.70 -При успешном выполнении, инструкция <code>&lt;%image:...%&gt;</code> будет заменена на значение <em>кон_файл</em>, иначе - на пустую строку.</li>
    9.71 -
    9.72 -  <li><code>&lt;%copy:<em>исх_файл</em> <em>кон_файл</em>%&gt;</code><br />
    9.73 -  Копирует файл <em>исх_файл</em> (путь определяется относительно конфигурационного параметра "resource_base") в <em>кон_файл</em>. При успешном выполнении, инструкция <code>&lt;%copy:...%&gt;</code> будет заменена на значение <em>кон_файл</em>, иначе - на пустую строку.</li>
    9.74 -</ul>
    9.75 -
    9.76 -<h3>Встроенные переменные</h3>
    9.77 -
    9.78 -<p><code>NUMBER</code> - порядковый номер строки результата выполнения запроса.
    9.79 -Чтобы обратиться к переменной запроса, из которого обрабатываемый шаблон был вызван с помощью функции invoke, перед именем переменной нужно добавить <code>SUPER.</code> (например: <code>SUPER.NUMBER</code>).</p>
    9.80 -
    9.81 -<h3>Пример</h3>
    9.82 -
    9.83 -<p>Следующая инструкция получит значение из столбца name и заменит в нем специальные символы:</p>
    9.84 -<p><code>&lt;%escape get:name%&gt;</code></p>
    9.85 -
    9.86 -<p align="right"><i><a href="mailto:kryshen@cs.karelia.ru">Михаил Крышень</a></i></p>
    9.87 -
    9.88 -</body>
    9.89 -</html>
    10.1 --- a/misc/biotopes/doc/readme.txt	Fri May 15 03:07:16 2009 +0400
    10.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.3 @@ -1,63 +0,0 @@
    10.4 -text/plain; charset=UTF-8
    10.5 -
    10.6 -пёя│я┌п╟п╫п╬п╡п╨п╟ п©я─п╬пЁя─п╟п╪п╪я▀
    10.7 --------------------
    10.8 -
    10.9 -1. п═п╟я│п©п╟п╨п╬п╡п╟я┌я▄ п╟я─я┘п╦п╡.
   10.10 -
   10.11 -2. пёя│я┌п╟п╫п╬п╡п╦я┌я▄ п╦я│я┌п╬я┤п╫п╦п╨ п╢п╟п╫п╫я▀я┘:
   10.12 -п╡ Windows 2000: п÷п╟п╫п╣п╩я▄ я┐п©я─п╟п╡п╩п╣п╫п╦я▐/п░п╢п╪п╦п╫п╦я│я┌я─п╦я─п╬п╡п╟п╫п╦п╣/п≤я│я┌п╬я┤п╫п╦п╨п╦ п╢п╟п╫п╫я▀я┘ (ODBC), п╢п╬п╠п╟п╡п╦я┌я▄ biotopes.mdb.
   10.13 -
   10.14 -3. п²п╟я│я┌я─п╬п╦я┌я▄ п©я─п╬пЁя─п╟п╪п╪я┐:
   10.15 -п▓ я└п╟п╧п╩п╣ dbreader.properties я┐п╨п╟п╥п╟я┌я▄ п╦п╪я▐, п©я─п╦я│п╡п╬п╣п╫п╫п╬п╣ п╦я│я┌п╬я┤п╫п╦п╨я┐ п╢п╟п╫п╫я▀я┘:
   10.16 -    "resource: jdbc:odbc:<п╦п╪я▐>"
   10.17 -п╦ п©я┐я┌я▄ п╨ п╨п╟я┌п╟п╩п╬пЁя┐, п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ п╨п╬я┌п╬я─п╬пЁп╬ п©я─п╬пЁя─п╟п╪п╪п╟ п╠я┐п╢п╣я┌ п╦я│п╨п╟я┌я▄ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ (я│п╬п╢п╣я─п╤п╟я┴п╦п╧ biotopephotos п╦ maps):
   10.18 -    "resource_base: C:\\biotopes"
   10.19 -(я│п╦п╪п╡п╬п╩ '\' п╫п╣п╬п╠я┘п╬п╢п╦п╪п╬ п╢я┐п╠п╩п╦я─п╬п╡п╟я┌я▄)
   10.20 -
   10.21 -4. п≈п╟п©я┐я│п╨ п©я─п╬пЁя─п╟п╪п╪я▀: dbreader.bat п╦п╩п╦ "java -jar dbreader.jar"
   10.22 -п■п╩я▐ п╥п╟п©я┐я│п╨п╟ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╟ Java Runtime Environment (JRE) 5.0, п╪п╬п╤п╫п╬ я│п╨п╟я┤п╟я┌я▄ я│ http://java.sun.com/j2se/1.5.0/download.jsp. п▓п╬п╥п╪п╬п╤п╫п╬, п╠я┐п╢п╣я┌ я─п╟п╠п╬я┌п╟я┌я▄ п╦ я│п╬ я│я┌п╟я─я▀п╪п╦ п╡п╣я─я│п╦я▐п╪п╦ JRE - п╫п╣ п©я─п╬п╡п╣я─я▐п╩.
   10.23 -
   10.24 -п▓я│п╣ п╥п╫п╟я┤п╣п╫п╦я▐ я└п╟п╧п╩п╟ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ п╪п╬п╤п╫п╬ п©п╣я─п╣п╬п©я─п╣п╢п╣п╩я▐я┌я▄ п©я─п╦ п╥п╟п©я┐я│п╨п╣ п©я─п╬пЁя─п╟п╪п╪я▀:
   10.25 -    п╨п╬п╪п╟п╫п╢п╟ "java -Dru.karrc.dbreader.<п╨п╩я▌я┤>=<п╥п╫п╟я┤п╣п╫п╦п╣> -jar dbreader.jar"
   10.26 -(п╫п╟п©я─п╦п╪п╣я─: "java -Dru.karrc.dbreader.log=dbreader.log -jar dbreader.jar")
   10.27 -
   10.28 -
   10.29 -п═п╟п╠п╬я┌п╟ п©я─п╬пЁя─п╟п╪п╪я▀
   10.30 -----------------
   10.31 -
   10.32 -п÷я─п╬пЁя─п╟п╪п╪п╟ п╡я▀п©п╬п╩п╫я▐п╣я┌ п╥п╟п©я─п╬я│ biotope.sql (п╦п╩п╦ п╢я─я┐пЁп╬п╧, я┐п╨п╟п╥п╟п╫п╫я▀п╧ п╡ dbreader.properties), п©п╬я│п╩п╣ я┤п╣пЁп╬ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟п╣я┌ я└п╟п╧п╩ biotope.template, п╥п╟п╪п╣п╫я▐я▐ п╫п╟п╧п╢п╣п╫п╫я▀п╣ п╡ п╫п╣п╪ п╦п╫я│я┌я─я┐п╨я├п╦п╦ п╫п╟ я─п╣п╥я┐п╩я▄я┌п╟я┌я▀ п╦я┘ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐.
   10.33 -
   10.34 -п╓п╬я─п╪п╟я┌ п╦п╫я│я┌я─я┐п╨я├п╦п╧: "<%я│п©п╦я│п╬п╨_я└я┐п╫п╨я├п╦п╧[:|\]п╢п╟п╫п╫я▀п╣%>", я│п©п╦я│п╬п╨ я└я┐п╫п╨я├п╦п╧ - п╦п╪п╣п╫п╟ я└я┐п╫п╨я├п╦п╧ я─п╟п╥п╢п╣п╩п╣п╫п╫я▀п╣ п©я─п╬п╠п╣п╩п╬п╪, я│п©п╦я│п╬п╨ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п©я┐я│я┌я▀п╪. п∙я│п╩п╦ я┐п╨п╟п╥п╟п╫п╬ п╫п╣я│п╨п╬п╩я▄п╨п╬ я└я┐п╫п╨я├п╦п╧, п╬п╫п╦ п╡я▀п©п╬п╩п╫я▐я▌я┌я│я▐ п╫п╟я┤п╦п╫п╟я▐ я│ п©п╬я│п╩п╣п╢п╫п╣п╧.
   10.35 -
   10.36 -п═п╟п╥п╢п╣п╩п╦я┌п╣п╩п╦ п╪п╣п╤п╢я┐ я│п©п╦я│п╨п╬п╪ я└я┐п╫п╨я├п╦п╧ п╦ п╢п╟п╫п╫я▀п╪п╦:
   10.37 -':' - п╢п╟п╫п╫я▀п╣ п╠я┐п╢я┐я┌ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟я┌я▄я│я▐ я─п╣п╨я┐я─я│п╦п╡п╫п╬.
   10.38 -'\' - п╢п╟п╫п╫я▀п╣ п╠я┐п╢я┐я┌ п©п╣я─п╣п╢п╟п╫я▀ я└я┐п╫п╨я├п╦п╦ п╠п╣п╥ п╬п╠я─п╟п╠п╬я┌п╨п╦. п°п╬п╤п╫п╬ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п╢п╩я▐ я█п╨я─п╟п╫п╦я─п╬п╡п╟п╫п╦я▐ п╨п╬п╪п╠п╦п╫п╟я├п╦п╧ я│п╦п╪п╡п╬п╩п╬п╡ "<%" п╦ "%>" ("<%\<%%>" п╦ "<%\%%>>").
   10.39 -
   10.40 -п╓я┐п╫п╨я├п╦п╦:
   10.41 -<%get:<п╦п╪я▐>%> - п╥п╟п╪п╣п╫я▐п╣я┌я│я▐ п╫п╟ п╥п╫п╟я┤п╣п╫п╦п╣ п╡я│я┌я─п╬п╣п╫п╫п╬п╧ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ п╦п╩п╦ п╨п╬п╩п╬п╫п╨п╦ п╥п╟п©я─п╬я│п╟.
   10.42 -
   10.43 -<%optional:<я┌п╣п╨я│я┌>%>
   10.44 -п≈п╟п╪п╣п╫я▐п╣я┌я│я▐ п╫п╟ <я┌п╣п╨я│я┌>, п╣я│п╩п╦ п╡ п╫п╣п╪ п╫п╟п╧п╢п╣п╫я▀ п╦п╫я│я┌я─я┐п╨я├п╦п╦, п╥п╟п╪п╣п╫п╦п╡я┬п╦п╣я│я▐ п╫п╟ п╫п╣п©я┐я│я┌я▀п╣ я│я┌я─п╬п╨п╦, п╦п╫п╟я┤п╣ п╥п╟п╪п╣п╫я▐п╣я┌я│я▐ п╫п╟ п©я┐я│я┌я┐я▌ я│я┌я─п╬п╨я┐.
   10.45 -
   10.46 -<%escape:<я┌п╣п╨я│я┌>%>
   10.47 -п≈п╟п╪п╣п╫я▐п╣я┌ п╡ я┌п╣п╨я│я┌п╣ "п╬п©п╟я│п╫я▀п╣" я│п╦п╪п╡п╬п╩я▀ (я┌п╟п╠п╩п╦я├п╟ п╥п╟п╪п╣п╫ п╥п╟п╢п╟п╣я┌я│я▐ п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦).
   10.48 -
   10.49 -<%invoke:<п╦п╪я▐> <п©п╟я─п╟п╪1> <п©п╟я─п╟п╪2> ... <п©п╟я─п╟п╪N>%>
   10.50 -п▓я▀п©п╬п╩п╫я▐п╣я┌ п╥п╟п©я─п╬я│ я│ п©п╟я─п╟п╪п╣я┌я─п╟п╪п╦ <п╦п╪я▐>.sql п╦ п╥п╟п╪п╣п╫я▐п╣я┌я│я▐ п╫п╟ я─п╣п╥я┐п╩я▄я┌п╟я┌я▀ п╬п╠я─п╟п╠п╬я┌п╨п╦ я┬п╟п╠п╩п╬п╫п╟ <п╦п╪я▐>.template. п≈п╫п╟я┤п╣п╫п╦я▐ п©п╟я─п╟п╪п╣я┌я─п╬п╡ п©п╬п╢я│я┌п╟п╡п╩я▐я▌я┌я│я▐ п╡ п╥п╟п©я─п╬я│ п╡п╪п╣я│я┌п╬ я│п╦п╪п╡п╬п╩п╟ '?'.
   10.51 -
   10.52 -<%image:<п╦я│я┘_я└п╟п╧п╩> <п╨п╬п╫_я└п╟п╧п╩> <я└п╬я─п╪п╟я┌> [<п╪п╟п╨я│_я┬п╦я─п╦п╫п╟>] [<п╪п╟п╨я│_п╡я▀я│п╬я┌п╟>]%>
   10.53 -п≈п╟пЁя─я┐п╤п╟п╣я┌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ п╦п╥ я└п╟п╧п╩п╟ <п╦я│я┘_я└п╟п╧п╩> (п©я┐я┌я▄ п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬пЁп╬ п©п╟я─п╟п╪п╣я┌я─п╟ "resource_base") п╦ п©я─п╣п╬п╠я─п╟п╥я┐п╣я┌ п╣пЁп╬ п╡ я┐п╨п╟п╥п╟п╫п╫я▀п╧ я└п╬я─п╪п╟я┌, я│п╬я┘я─п╟п╫я▐я▐ я─п╣п╥я┐п╩я▄я┌п╟я┌ п╡ <п╨п╬п╫_я└п╟п╧п╩>. п∙я│п╩п╦ п╥п╟п╢п╟п╫я▀ п╪п╟п╨я│п╦п╪п╟п╩я▄п╫п╟я▐ п╡я▀я│п╬я┌п╟ п╦ я┬п╦я─п╦п╫п╟, п╠п╬п╩я▄я┬п╦п╣ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╠я┐п╢я┐я┌ я┐п╪п╣п╫я▄я┬п╣п╫я▀.
   10.54 -п÷я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, п╦п╫я│я┌я─я┐п╨я├п╦я▐ "<%!image ...%>" п╠я┐п╢п╣я┌ п╥п╟п╪п╣п╫п╣п╫п╟ п╫п╟ п╥п╫п╟я┤п╣п╫п╦п╣ <п╨п╬п╫_я└п╟п╧п╩>, п╦п╫п╟я┤п╣ - п╫п╟ п©я┐я│я┌я┐я▌ я│я┌я─п╬п╨я┐.
   10.55 -
   10.56 -<%copy:<п╦я│я┘_я└п╟п╧п╩> <п╨п╬п╫_я└п╟п╧п╩>%>
   10.57 -п п╬п©п╦я─я┐п╣я┌ я└п╟п╧п╩ <п╦я│я┘_я└п╟п╧п╩> (п©я┐я┌я▄ п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬пЁп╬ п©п╟я─п╟п╪п╣я┌я─п╟ "resource_base").
   10.58 -п÷я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, п╦п╫я│я┌я─я┐п╨я├п╦я▐ "<%!copy ...%>" п╠я┐п╢п╣я┌ п╥п╟п╪п╣п╫п╣п╫п╟ п╫п╟ п╥п╫п╟я┤п╣п╫п╦п╣ <п╨п╬п╫_я└п╟п╧п╩>, п╦п╫п╟я┤п╣ - п╫п╟ п©я┐я│я┌я┐я▌ я│я┌я─п╬п╨я┐.
   10.59 -
   10.60 -п▓я│я┌я─п╬п╣п╫п╫я▀п╣ п©п╣я─п╣п╪п╣п╫п╫я▀п╣:
   10.61 -NUMBER - п©п╬я─я▐п╢п╨п╬п╡я▀п╧ п╫п╬п╪п╣я─ я│я┌я─п╬п╨п╦ я─п╣п╥я┐п╩я▄я┌п╟я┌п╟ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐ п╥п╟п©я─п╬я│п╟.
   10.62 -п╖я┌п╬п╠я▀ п╬п╠я─п╟я┌п╦я┌я▄я│я▐ п╨ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ п╥п╟п©я─п╬я│п╟, п╦п╥ п╨п╬я┌п╬я─п╬пЁп╬ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟п╣п╪я▀п╧ я┬п╟п╠п╩п╬п╫ п╠я▀п╩ п╡я▀п╥п╡п╟п╫ я│ п©п╬п╪п╬я┴я▄я▌ я└я┐п╫п╨я├п╦п╦ invoke, п©п╣я─п╣п╢ п╦п╪п╣п╫п╣п╪ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ п╫я┐п╤п╫п╬ п╢п╬п╠п╟п╡п╦я┌я▄ "SUPER." (п╫п╟п©я─п╦п╪п╣я─: "SUPER.NUMBER").
   10.63 -
   10.64 -п÷я─п╦п╪п╣я─:
   10.65 -п║п╩п╣п╢я┐я▌я┴п╟я▐ п╦п╫я│я┌я─я┐п╨я├п╦я▐ п©п╬п╩я┐я┤п╦я┌ п╥п╫п╟я┤п╣п╫п╦п╣ п╦п╥ я│я┌п╬п╩п╠я├п╟ name п╦ п╥п╟п╪п╣п╫п╦я┌ п╡ п╫п╣п╪ я│п©п╣я├п╦п╟п╩я▄п╫я▀п╣ я│п╦п╪п╡п╬п╩я▀:
   10.66 -<%escape get:name%>
    11.1 --- a/misc/biotopes/main.template	Fri May 15 03:07:16 2009 +0400
    11.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.3 @@ -1,11 +0,0 @@
    11.4 -<%!:
    11.5 -  <%prepare:biotope_sql <%read\biotope.sql%>%>
    11.6 -  <%prepare:photo_sql <%read\photo.sql%>%>
    11.7 -  <%prepare:class_sql <%read\class.sql%>%>
    11.8 -  <%prepare:plant_sql <%read\plant.sql%>%>
    11.9 -
   11.10 -  <%query:biotope_sql [%\<%write:<%db\code%>.xml <%include\biotope.template%>%> %]%>
   11.11 -
   11.12 -  <%write:classes.xml <%include\classes.template%>%>
   11.13 -  <%write:plants.xml <%include\plants.template%>%>
   11.14 -%>
    12.1 --- a/misc/biotopes/photo.sql	Fri May 15 03:07:16 2009 +0400
    12.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3 @@ -1,1 +0,0 @@
    12.4 -SELECT * from photos WHERE biotope = ?
    13.1 --- a/misc/biotopes/photo.template	Fri May 15 03:07:16 2009 +0400
    13.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3 @@ -1,3 +0,0 @@
    13.4 -    <ДчБчсЮпДьО num="<%number\%>" <%optional:прБчЮ="<%xml_escape db\authphoto%>" %>text="" 
    13.5 -                file="<%xml_escape image:biotopephotos/<%db\photo%> images/<%super.db\code%>_<%number\%>.jpg jpg 300 300%>" 
    13.6 -                big="<%xml_escape copy:biotopephotos/<%db\photo%> images/big/<%super.db\code%>_<%number\%>.jpg%>"/>
    14.1 --- a/misc/biotopes/plant.sql	Fri May 15 03:07:16 2009 +0400
    14.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3 @@ -1,3 +0,0 @@
    14.4 -SELECT t1.*
    14.5 -FROM biotopelist AS t1
    14.6 -WHERE rusname AND Right(t1.rangcode, 2) <> '00'
    15.1 --- a/misc/biotopes/plants.template	Fri May 15 03:07:16 2009 +0400
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,5 +0,0 @@
    15.4 -<?xml version="1.0" encoding="ISO-8859-5"?>
    15.5 -<ЮпАБущьО><%query:plant_sql [%\
    15.6 -  <!-- rangcode: <%xml_escape db\rangcode%> -->
    15.7 -  <ЮпАБущьу><%xml_escape db\rusname%></ЮпАБущьу>%]%>
    15.8 -</ЮпАБущьО>
    16.1 --- a/misc/biotopes/tema.properties	Fri May 15 03:07:16 2009 +0400
    16.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3 @@ -1,22 +0,0 @@
    16.4 -# Data source configuration
    16.5 -resource          : jdbc:odbc:biotopes-data
    16.6 -driver            : sun.jdbc.odbc.JdbcOdbcDriver
    16.7 -
    16.8 -# Base directory for images and files
    16.9 -resource_base     : C:\\biotopes\\db
   16.10 -
   16.11 -# Template to start processing with
   16.12 -main_template     : main.template
   16.13 -
   16.14 -# File encodings
   16.15 -input_encoding    : ISO-8859-5
   16.16 -output_encoding   : ISO-8859-5
   16.17 -
   16.18 -# Cache templates
   16.19 -cache_read        : true
   16.20 -
   16.21 -# Output main_template parsing result to stderr
   16.22 -#output            : stderr
   16.23 -
   16.24 -# File to output error messages (redirect stderr)
   16.25 -#log               : tema.log
    17.1 --- a/misc/manual-ru-old/index.html	Fri May 15 03:07:16 2009 +0400
    17.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.3 @@ -1,370 +0,0 @@
    17.4 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    17.5 -          "DTD/xhtml1-transitional.dtd">
    17.6 -
    17.7 -<html>
    17.8 -
    17.9 -<head>
   17.10 -  <title>п°п╟п╨я─п╬п©я─п╬я├п╣я│я│п╬я─ TEMA</title>
   17.11 -  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   17.12 -</head>
   17.13 -
   17.14 -<body>
   17.15 -<h1>п°п╟п╨я─п╬п©я─п╬я├п╣я│я│п╬я─ TEMA</h1>
   17.16 -
   17.17 -<p>п°п╟п╨я─п╬п©я─п╬я├п╣я│я│п╬я─ TEMA п╬п╠я─п╟п╠п╟я┌я▀п╡п╟п╣я┌ п╥п╟п╢п╟п╫п╫я▀п╣ я┬п╟п╠п╩п╬п╫я▀ я┌п╣п╨я│я┌п╬п╡я▀я┘ я└п╟п╧п╩п╬п╡ п╦
   17.18 -п╥п╟п╪п╣п╫я▐п╣я┌ п╫п╟п╧п╢п╣п╫п╫я▀п╣ п╡ п╫п╦я┘ п╦п╫я│я┌я─я┐п╨я├п╦п╦ п╫п╟ я─п╣п╥я┐п╩я▄я┌п╟я┌я▀ п╦я┘ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐.
   17.19 -</p><p>
   17.20 -п·я│п╬п╠п╣п╫п╫п╬я│я┌п╦:
   17.21 -</p>
   17.22 -<ul>
   17.23 -  <li>п═п╟я│я┬п╦я─я▐п╣п╪п╬я│я┌я▄: п╡п╬п╥п╪п╬п╤п╫п╬ п╢п╦п╫п╟п╪п╦я┤п╣я│п╨п╦ п©п╬п╢п╨п╩я▌я┤п╟я┌я▄ п╫п╬п╡я▀п╣ я└я┐п╫п╨п╦п╦,
   17.24 -  я─п╣п╟п╩п╦п╥п╬п╡п╟п╫п╫я▀п╣ п╡ п╡п╦п╢п╣ п╨п╩п╟я│я│п╬п╡ п╫п╟ Java.</li>
   17.25 -  <li>п═п╟п╠п╬я┌п╟ я│ п╠п╟п╥п╟п╪п╦ п╢п╟п╫п╫я▀я┘: п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╣ SQL-п╥п╟п©я─п╬я│п╬п╡ п╢п╩я▐ п©п╬п╩я┐я┤п╣п╫п╦я▐
   17.26 -  п╢п╟п╫п╫я▀я┘.</li>
   17.27 -  <li>п÷п╬я┌п╬я┤п╫п╟я▐ п╬п╠я─п╟п╠п╬я┌п╨п╟ п╢п╟п╫п╫я▀я┘: п╦п╫я│я┌я─я┐п╨я├п╦п╦ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟я▌я┌я│я▐ п©п╬ п╪п╣я─п╣
   17.28 -  я┤я┌п╣п╫п╦я▐ я┌п╣п╨я│я┌п╟ п╠п╣п╥ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╬я│я┌п╦ п╥п╟пЁя─я┐п╥п╨п╦ я└п╟п╧п╩п╟ п╡ п╬п©п╣я─п╟я┌п╦п╡п╫я┐я▌ п©п╟п╪я▐я┌я▄
   17.29 -  п╦ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐ п©п╬п╩п╫п╬пЁп╬ я│п╦п╫я┌п╟п╨я│п╦я┤п╣я│п╨п╬пЁп╬ я─п╟п╥п╠п╬я─п╟.</li>
   17.30 -</ul>
   17.31 -
   17.32 -<p><b>п╓п╬я─п╪п╟я┌ п╦п╫я│я┌я─я┐п╨я├п╦п╧</b></p>
   17.33 -
   17.34 -<blockquote>
   17.35 -  <code>&lt;%<i>я│п©п╦я│п╬п╨_я└я┐п╫п╨я├п╦п╧</i>{:|\|`}<i>п╢п╟п╫п╫я▀п╣</i>%&gt;</code>  
   17.36 -</blockquote>
   17.37 -<p>
   17.38 -пЁп╢п╣<br />
   17.39 -
   17.40 -<code><i>я│п©п╦я│п╬п╨_я└я┐п╫п╨я├п╦п╧</i></code> - я│п©п╦я│п╬п╨ п╦п╪п╣п╫ я└я┐п╫п╨я├п╦п╧, я─п╟п╥п╢п╣п╩п╣п╫п╫я▀я┘
   17.41 -    п©я─п╬п╠п╣п╩п╟п╪п╦. п°п╬п╤п╣я┌ п╠я▀я┌я▄ п©я┐я│я┌я▀п╪.<br />
   17.42 -<code><i>п╢п╟п╫п╫я▀п╣</i></code> - п╢п╟п╫п╫я▀п╣, п©п╣я─п╣п╢п╟п╡п╟п╣п╪я▀п╣ я└я┐п╫п╨я├п╦п╦.
   17.43 -</p>
   17.44 -
   17.45 -<p><b>п╓п╬я─п╪п╟я┌ п╢п╟п╫п╫я▀я┘</b></p>
   17.46 -
   17.47 -<blockquote>
   17.48 -  <code>
   17.49 -    [<i>я│п©п╦я│п╬п╨_п╟я─пЁя┐п╪п╣п╫я┌п╬п╡</i>][<i>я┌п╣п╨я│я┌</i>]
   17.50 -  </code>
   17.51 -</blockquote>
   17.52 -<p>
   17.53 -пЁп╢п╣<br />
   17.54 -
   17.55 -<code><i>я│п©п╦я│п╬п╨_п╟я─пЁя┐п╪п╣п╫я┌п╬п╡</i></code> - я│п©п╦я│п╬п╨ п╟я─пЁя┐п╪п╣п╫я┌п╬п╡ я└я┐п╫п╨я├п╦п╦, я─п╟п╥п╢п╣п╩п╣п╫п╫я▀я┘ п©я─п╬п╠п╣п╩п╟п╪п╦.
   17.56 -    п°п╬п╤п╣я┌ п╠я▀я┌я▄ п©я┐я│я┌я▀п╪.<br />
   17.57 -<code><i>я┌п╣п╨я│я┌</i></code> - я┌п╣п╨я│я┌, п©п╣я─п╣п╢п╟п╡п╟п╣п╪я▀п╧ я└я┐п╫п╨я├п╦п╦ п╠п╣п╥ я─п╟п╥п╠п╦п╣п╫п╦я▐ п╫п╟ п╟я─пЁя┐п╪п╣п╫я┌я▀.
   17.58 -    п°п╬п╤п╣я┌ п╠я▀я┌я▄ п©я┐я│я┌я▀п╪. п п╬п╩п╦я┤п╣я│я┌п╡п╬ п╟я─пЁя┐п╪п╣п╫я┌п╬п╡, п©п╬я│п╩п╣ п╨п╬я┌п╬я─п╬пЁп╬ я│п╩п╣п╢я┐п╣я┌
   17.59 -    я┌п╣п╨я│я┌, п╥п╟п╡п╦я│п╦я┌ п╬я┌ я└я┐п╫п╨я├п╦п╦.
   17.60 -</p><p>
   17.61 -п═п╟п╥п╢п╣п╩п╦я┌п╣п╩я▄ п╪п╣п╤п╢я┐ я│п©п╦я│п╨п╬п╪ я└я┐п╫п╨я├п╦п╧ п╦ п╢п╟п╫п╫я▀п╪п╦ п╬п©я─п╣п╢п╣п╩я▐п╣я┌, п╨п╟п╨ п╢п╬п╩п╤п╫я▀
   17.62 -п╬п╠я─п╟п╠п╟я┌я▀п╡п╟я┌я▄я│я▐ п╢п╟п╫п╫я▀п╣ я└я┐п╫п╨я├п╦п╦:
   17.63 -</p><p>
   17.64 -<code>:</code> - я─п╣п╨я┐я─я│п╦п╡п╫п╟я▐ п╬п╠я─п╟п╠п╬я┌п╨п╟,<br />
   17.65 -<code>\</code> п╦п╩п╦ <code>`</code> - п©п╣я─п╣п╢п╟я┌я▄ п╠п╣п╥ п╬п╠я─п╟п╠п╬я┌п╨п╦.
   17.66 -</p><p>
   17.67 -п∙я│п╩п╦ п╡ я│п©п╦я│п╨п╣ я└я┐п╫п╨я├п╦п╧ п╥п╟п╢п╟п╫п╬ п╢п╡п╣ п╦ п╠п╬п╩п╣п╣ я└я┐п╫п╨я├п╦п╦, п╬п╫п╦ п╡я▀п©п╬п╩п╫я▐я▌я┌я│я▐,
   17.68 -п╫п╟я┤п╦п╫п╟я▐ я│ п©п╬я│п╩п╣п╢п╫п╣п╧, я┌п╟п╨ я┤я┌п╬ п╨п╟п╤п╢п╟я▐ я└я┐п╫п╨я├п╦я▐ п©п╬п╩я┐я┤п╟п╣я┌ п╡ п╨п╟я┤п╣я│я┌п╡п╣ п╢п╟п╫п╫я▀я┘
   17.69 -я─п╣п╥я┐п╩я▄я┌п╟я┌ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐ я│п╩п╣п╢я┐я▌я┴п╣п╧ я└я┐п╫п╨я├п╦п╦.
   17.70 -</p><p>
   17.71 -п п╟п╤п╢п╟я▐ я└я┐п╫п╨я├п╦я▐ п╦п╪п╣п╣я┌ п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟ - я├п╣п╩п╬п╣ я┤п╦я│п╩п╬. п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟
   17.72 -п╦п╫я│я┌я─я┐п╨я├п╦п╦ - п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟ п©п╣я─п╡п╬п╧ п╡ я│п©п╦я│п╨п╣ я└я┐п╫п╨я├п╦п╦. п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟,
   17.73 -п©п╬п╩я┐я┤п╟п╣п╪я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ я┌п╣п╨я│я┌п╟ - я│я┐п╪п╪п╟ п╨п╬п╢п╬п╡ п╡п╬п╥п╡я─п╟я┌п╟ п╬п╠я─п╟п╠п╬я┌п╟п╫п╫я▀я┘
   17.74 -п╦п╫я│я┌я─я┐п╨я├п╦п╧ (п╨п╟п╨ п©я─п╟п╡п╦п╩п╬, я│п╪я▀я│п╩ я█я┌п╬пЁп╬ п╥п╫п╟я┤п╣п╫п╦я▐ - п╨п╬п╩п╦я┤п╣я│я┌п╡п╬ п╦п╫я│я┌я─я┐п╨я├п╦п╧,
   17.75 -п╥п╟п╪п╣п╫п╣п╫п╫я▀я┘ п╫п╟ п╫п╣п©я┐я│я┌п╬п╧ я┌п╣п╨я│я┌).
   17.76 -</p><p>
   17.77 -п я─п╬п╪п╣ я│п╨п╬п╠п╬п╨ '&lt;', '&gt;', п╪п╬п╤п╫п╬ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ я│п╨п╬п╠п╨п╦ '[', ']'.
   17.78 -</p>
   17.79 -
   17.80 -
   17.81 -<h2>п╓я┐п╫п╨я├п╦п╦</h2>
   17.82 -
   17.83 -<p><code><b>set</b></code></p>
   17.84 -
   17.85 -<table>
   17.86 -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td>
   17.87 -<td><i>п╦п╪я▐</i></td></tr>
   17.88 -
   17.89 -<tr><td>п╒п╣п╨я│я┌:</td>
   17.90 -<td><i>п╥п╫п╟я┤п╣п╫п╦п╣</i></td></tr>
   17.91 -
   17.92 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td>
   17.93 -<td>пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟п╣я┌ п╥п╫п╟я┤п╣п╫п╦п╣ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ <i>п╦п╪я▐</i>.</td></tr>
   17.94 -
   17.95 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td>
   17.96 -<td><i>п╦п╪я▐</i></td></tr>
   17.97 -
   17.98 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td>
   17.99 -<td>1</td></tr>
  17.100 -</table>
  17.101 -
  17.102 -<p><code><b>define</b></code></p>
  17.103 -
  17.104 -<table>
  17.105 -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td>
  17.106 -<td><i>п╦п╪я▐</i></td></tr>
  17.107 -
  17.108 -<tr><td>п╒п╣п╨я│я┌:</td>
  17.109 -<td><i>я┬п╟п╠п╩п╬п╫</i></td></tr>
  17.110 -
  17.111 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п·п©я─п╣п╢п╣п╩я▐п╣я┌ п╫п╬п╡я┐я▌ я└я┐п╫п╨я├п╦я▌ <i>п╦п╪я▐</i>, п©я─п╦
  17.112 -п╡я▀п╥п╬п╡п╣ п╨п╬я┌п╬я─п╬п╧ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟п╣я┌я│я▐ <i>я┬п╟п╠п╩п╬п╫</i>. п÷я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ п╢п╬я│я┌я┐п©п╫я▀
  17.113 -я└я┐п╫п╨я├п╦п╦ <code>nextarg</code> п╢п╩я▐ п©п╬п╩я┐я┤п╣п╫п╦я▐ п╬я┤п╣я─п╣п╢п╫п╬пЁп╬ п╟я─пЁя┐п╪п╣п╫я┌п╟
  17.114 -п╡я▀п╥я▀п╡п╟п╣п╪п╬п╧ я└я┐п╫п╨я├п╦п╦ п╦ <code>data</code> п╢п╩я▐ п©п╬п╩я┐я┤п╣п╫п╦я▐ я┌п╣п╨я│я┌п╟.</td></tr>
  17.115 -
  17.116 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td>
  17.117 -<td><i>п╦п╪я▐</i></td></tr>
  17.118 -
  17.119 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td>
  17.120 -<td>1</td></tr>
  17.121 -</table>
  17.122 -
  17.123 -<p><code><b>load</b></code></p>
  17.124 -
  17.125 -<table>
  17.126 -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td>
  17.127 -<td><i>п╦п╪я▐</i> <i>п╦п╪я▐_п╨п╩п╟я│я│п╟</i></td></tr>
  17.128 -
  17.129 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td>
  17.130 -
  17.131 -<td>п·п©я─п╣п╢п╣п╩я▐п╣я┌ п╫п╬п╡я┐я▌ я└я┐п╫п╨я├п╦я▌ <i>п╦п╪я▐</i>. п═п╣п╟п╩п╦п╥п╟я├п╦я▐ я└я┐п╫п╨я├п╦п╦ п╬п©я─п╣п╢п╣п╩п╣п╫п╟
  17.132 -Java-п╨п╩п╟я│я│п╬п╪ <i>п╦п╪я▐_п╨п╩п╟я│я│п╟</i>, п╫п╟я│п╩п╣п╢я┐я▌я┴п╦п╪ п╨п╩п╟я│я│
  17.133 -<code>kryshen.tema.Function</code>.</td></tr>
  17.134 -
  17.135 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td>
  17.136 -<td><i>п╦п╪я▐</i></td></tr>
  17.137 -
  17.138 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td>
  17.139 -<td>1</td></tr>
  17.140 -</table>
  17.141 -
  17.142 -<p><code><b>prepare</b></code></p>
  17.143 -
  17.144 -<table>
  17.145 -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td>
  17.146 -<td><i>п╦п╪я▐</i></td></tr>
  17.147 -
  17.148 -<tr><td>п╒п╣п╨я│я┌:</td>
  17.149 -<td><i>п╥п╟п©я─п╬я│</i></td></tr>
  17.150 -
  17.151 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td>
  17.152 -<td>п÷п╬п╢пЁп╬я┌п╟п╡п╩п╦п╡п╟п╣я┌ SQL-п╥п╟п©я─п╬я│ <i>п╥п╟п©я─п╬я│</i> п╢п╩я▐ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐, п╥п╟п©п╦я│я▀п╡п╟п╣я┌
  17.153 -п©п╬п╢пЁп╬я┌п╬п╡п╩п╣п╫п╫я▀п╧ п╥п╟п©я─п╬я│ п╡ п©п╣я─п╣п╪п╣п╫п╫я┐я▌ <i>п╦п╪я▐</i>.</td></tr>
  17.154 -
  17.155 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td>
  17.156 -<td><i>п╦п╪я▐</i></td></tr>
  17.157 -
  17.158 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td>
  17.159 -<td>1</td></tr>
  17.160 -</table>
  17.161 -
  17.162 -<p><code><b>query</b></code></p>
  17.163 -
  17.164 -<table>
  17.165 -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td>
  17.166 -<td><i>п╦п╪я▐_п╥п╟п©я─п╬я│п╟</i> <i>я┬п╟п╠п╩п╬п╫</i> <i>п©п╟я─п╟п╪1</i> ... <i>п©п╟я─п╟п╪N</i></td></tr>
  17.167 -
  17.168 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td>
  17.169 -<td>п▓я▀п©п╬п╩п╫я▐п╣я┌ п╥п╟п©я─п╬я│ я│ п©п╟я─п╟п╪п╣я┌я─п╟п╪п╦, п©п╬п╢пЁп╬я┌п╬п╡п╩п╣п╫п╫я▀п╧ я│ п©п╬п╪п╬я┴я▄я▌ я└я┐п╫п╨я├п╦п╦
  17.170 -prepare. п≈п╫п╟я┤п╣п╫п╦я▐ п©п╟я─п╟п╪п╣я┌я─п╬п╡ п©п╬п╢я│я┌п╟п╡п╩я▐я▌я┌я│я▐ п╡ п╥п╟п©я─п╬я│ п╡п╪п╣я│я┌п╬ я│п╦п╪п╡п╬п╩п╟
  17.171 -'?'. п≈п╫п╟я┤п╣п╫п╦я▐ п©п╬п╩п╣п╧ п╬я┌п╡п╣я┌п╟ п╢п╬я│я┌я┐п©п╫я▀ я│ п©п╬п╪п╬я┴я▄я▌ я└я┐п╫п╨я├п╦п╦ <code>db</code>,
  17.172 -п╨п╟п╨ п©п╣я─п╣п╪п╣п╫п╫я▀п╣ я┬п╟п╠п╩п╬п╫п╟ <i>я┬п╟п╠п╩п╬п╫</i>. п÷я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╦ я┬п╟п╠п╩п╬п╫п╟ я┌п╟п╨п╤п╣
  17.173 -п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ п©п╣я─п╣п╪п╣п╫п╫п╟я▐ <code>number</code>, я│п╬п╢п╣я─п╤п╟я┴п╟я▐ п╫п╬п╪п╣я─ я┌п╣п╨я┐я┴п╣п╧
  17.174 -я│я┌я─п╬п╨п╦ п╬я┌п╡п╣я┌п╟.</td></tr>
  17.175 -
  17.176 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td>
  17.177 -<td>я─п╣п╥я┐п╩я▄я┌п╟я┌ п╬п╠я─п╟п╠п╬я┌п╨п╦ я┬п╟п╠п╩п╬п╫п╟ <i>я┬п╟п╠п╩п╬п╫</i> п╢п╩я▐ п╨п╟п╤п╢п╬п╧ я│я┌я─п╬п╨п╦
  17.178 -п╬я┌п╡п╣я┌п╟.</td></tr>
  17.179 -
  17.180 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td>
  17.181 -<td>п п╬п╩п╦я┤п╣я│я┌п╡п╬ п©п╬п╩я┐я┤п╣п╫п╫я▀я┘ я│я┌я─п╬п╨ п╬я┌п╡п╣я┌п╟.</td></tr>
  17.182 -</table>
  17.183 -
  17.184 -<p><code><b>optional</b></code></p>
  17.185 -
  17.186 -<table>
  17.187 -<tr><td>п╒п╣п╨я│я┌:</td>
  17.188 -<td><i>п╢п╟п╫п╫я▀п╣</i></td></tr>
  17.189 -
  17.190 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i>, п╣я│п╩п╦ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ п╢п╟п╫п╫я▀я┘
  17.191 -п╠я▀п╩ п©п╬п╩я┐я┤п╣п╫ п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟ п╬я┌п╩п╦я┤п╫я▀п╧ п╬я┌ 0, п╦п╫п╟я┤п╣ - п©я┐я│я┌п╟я▐
  17.192 -я│я┌я─п╬п╨п╟.</td></tr>
  17.193 -
  17.194 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td>
  17.195 -<td>1, п╣я│п╩п╦ я─п╣п╥я┐п╩я▄я┌п╟я┌ - п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟, 0 - п╦п╫п╟я┤п╣.</td></tr>
  17.196 -</table>
  17.197 -
  17.198 -<p><code><b>image</b></code></p>
  17.199 -
  17.200 -<table>
  17.201 -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td>
  17.202 -<td><i>п╦я│я┘_я└п╟п╧п╩</i> <i>п╨п╬п╫_я└п╟п╧п╩</i> <i>я└п╬я─п╪п╟я┌</i> [<i>п╪п╟п╨я│_я┬п╦я─п╦п╫п╟</i>
  17.203 -[<i>п╪п╟п╨я│_п╡я▀я│п╬я┌п╟</i>]]</td></tr>
  17.204 -
  17.205 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td>
  17.206 -<td>п≈п╟пЁя─я┐п╤п╟п╣я┌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ п╦п╥ я└п╟п╧п╩п╟ <i>п╦я│я┘_я└п╟п╧п╩</i> (п©я┐я┌я▄ п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐
  17.207 -п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬пЁп╬ п©п╟я─п╟п╪п╣я┌я─п╟ "resource_base") п╦
  17.208 -п©я─п╣п╬п╠я─п╟п╥я┐п╣я┌ п╣пЁп╬ п╡ я┐п╨п╟п╥п╟п╫п╫я▀п╧ я└п╬я─п╪п╟я┌, я│п╬я┘я─п╟п╫я▐я▐ я─п╣п╥я┐п╩я▄я┌п╟я┌ п╡
  17.209 -<i>п╨п╬п╫_я└п╟п╧п╩</i>. п∙я│п╩п╦ п╥п╟п╢п╟п╫я▀ п╪п╟п╨я│п╦п╪п╟п╩я▄п╫п╟я▐ п╡я▀я│п╬я┌п╟ п╦ я┬п╦я─п╦п╫п╟, п╠п╬п╩я▄я┬п╦п╣
  17.210 -п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╠я┐п╢я┐я┌ я┐п╪п╣п╫я▄я┬п╣п╫я▀.</td></tr>
  17.211 -
  17.212 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td>
  17.213 -<td><i>п╨п╬п╫_я└п╟п╧п╩</i> п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟ - п╦п╫п╟я┤п╣.</td></tr>
  17.214 -
  17.215 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td>
  17.216 -<td>1 п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, 0 - п╦п╫п╟я┤п╣.</td></tr>
  17.217 -</table>
  17.218 -
  17.219 -
  17.220 -<p><code><b>copy</b></code></p>
  17.221 -
  17.222 -<table>
  17.223 -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td><td><i>п╦я│я┘_я└п╟п╧п╩</i> <i>п╨п╬п╫_я└п╟п╧п╩</i></td></tr>
  17.224 -
  17.225 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п п╬п©п╦я─я┐п╣я┌ я└п╟п╧п╩ <i>п╦я│я┘_я└п╟п╧п╩</i> п╡ я└п╟п╧п╩
  17.226 -<i>п╨п╬п╫_я└п╟п╧п╩</i> (п©я┐я┌я▄ <i>п╦я│я┘_я└п╟п╧п╩</i> п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬
  17.227 -п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬пЁп╬ п©п╟я─п╟п╪п╣я┌я─п╟ "resource_base").</td></tr>
  17.228 -
  17.229 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td><i>п╨п╬п╫_я└п╟п╧п╩</i> п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦,
  17.230 -п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟ - п╦п╫п╟я┤п╣.</td></tr>
  17.231 -
  17.232 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>1 п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, 0 -
  17.233 -п╦п╫п╟я┤п╣.</td></tr>
  17.234 -</table>
  17.235 -
  17.236 -<p><code><b>write</b></code></p>
  17.237 -
  17.238 -<table>
  17.239 -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td><td><i>п╦п╪я▐_я└п╟п╧п╩п╟</i></td></tr>
  17.240 -
  17.241 -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr>
  17.242 -
  17.243 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п≈п╟п©п╦я│я▀п╡п╟п╣я┌ <i>п╢п╟п╫п╫я▀п╣</i> п╡ я└п╟п╧п╩
  17.244 -<i>п╦я│я┘_я└п╟п╧п╩</i>.</td></tr>
  17.245 -
  17.246 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td><i>п╨п╬п╫_я└п╟п╧п╩</i> п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦,
  17.247 -п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟ - п╦п╫п╟я┤п╣.</td></tr>
  17.248 -
  17.249 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>1 п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, 0 -
  17.250 -п╦п╫п╟я┤п╣.</td></tr>
  17.251 -</table>
  17.252 -
  17.253 -<p><code><b>read</b></code></p>
  17.254 -
  17.255 -<table>
  17.256 -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╦п╪я▐_я└п╟п╧п╩п╟</i></td></tr>
  17.257 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п╖п╦я┌п╟п╣я┌ я└п╟п╧п╩ <i>п╦п╪я▐_я└п╟п╧п╩п╟</i>.</td></tr>
  17.258 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>п©я─п╬я┤п╦я┌п╟п╫п╫я▀п╣ п╢п╟п╫п╫я▀п╣ п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦,
  17.259 -  п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟ - п╦п╫п╟я┤п╣.</td></tr>
  17.260 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>1 п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, 0 -
  17.261 -п╦п╫п╟я┤п╣.</td></tr>
  17.262 -</table>
  17.263 -
  17.264 -<p><code><b>include</b></code></p>
  17.265 -
  17.266 -<table>
  17.267 -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╦п╪я▐_я└п╟п╧п╩п╟</i></td></tr>
  17.268 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п╡п╨п╩я▌я┤п╟п╣я┌ я┬п╟п╠п╩п╬п╫ п╦п╥ я└п╟п╧п╩п╟
  17.269 -<i>п╦п╪я▐_я└п╟п╧п╩п╟</i>.</td></tr>
  17.270 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>я─п╣п╥я┐п╩я▄я┌п╟я┌ п╬п╠я─п╟п╠п╬я┌п╨п╦ я┬п╟п╠п╩п╬п╫п╟.</td></tr>
  17.271 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣
  17.272 -я┬п╟п╠п╩п╬п╫п╟.</td></tr>
  17.273 -</table>
  17.274 -
  17.275 -<p><code><b>!</b></code></p>
  17.276 -
  17.277 -<table>
  17.278 -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr>
  17.279 -
  17.280 -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п╫п╣я┌.</td></tr>
  17.281 -
  17.282 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>п╫п╣я┌.</td></tr>
  17.283 -
  17.284 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣
  17.285 -я┌п╣п╨я│я┌п╟ п╢п╟п╫п╫я▀я┘.</td></tr>
  17.286 -</table>
  17.287 -
  17.288 -<p><code><b>replace</b></code></p>
  17.289 -
  17.290 -<table>
  17.291 -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td><td><i>я│я┌я─1</i> <i>я│я┌я─2</i></td></tr>
  17.292 -
  17.293 -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr>
  17.294 -
  17.295 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>п╢п╟п╫п╫я▀п╣, я│ п╥п╟п╪п╣п╫п╣п╫п╫я▀п╪п╦ п╡я┘п╬п╤п╢п╣п╫п╦я▐п╪п╦ п©п╬п╢я│я┌я─п╬п╨п╦
  17.296 -<i>я│я┌я─1</i> п╫п╟ <i>я│я┌я─2</i>.</td></tr>
  17.297 -
  17.298 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td> п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣
  17.299 -я┌п╣п╨я│я┌п╟ п╢п╟п╫п╫я▀я┘.</td></tr>
  17.300 -</table>
  17.301 -
  17.302 -<p><code><b>xml_escape</b></code></p>
  17.303 -
  17.304 -<table>
  17.305 -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr>
  17.306 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>я┌п╣п╨я│я┌ <i>п╢п╟п╫п╫я▀п╣</i>, п╡ п╨п╬я┌п╬я─п╬п╪ я│п╦п╪п╡п╬п╩я▀
  17.307 -'&amp;', '&lt;', '&gt;', '`', '\' п╥п╟п╪п╣п╫п╣п╫я▀ п╫п╟ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┴п╦п╣ я│я┐я┴п╫п╬я│я┌п╦
  17.308 -XML.</td></tr>
  17.309 -
  17.310 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td> п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣
  17.311 -я┌п╣п╨я│я┌п╟ п╢п╟п╫п╫я▀я┘.</td></tr>
  17.312 -</table>
  17.313 -
  17.314 -<p><code><b>xml_cdata</b></code></p>
  17.315 -
  17.316 -<table>
  17.317 -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr>
  17.318 -
  17.319 -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>п╢п╟п╫п╫я▀п╣ п╡ п╡п╦п╢п╣ п╠п╩п╬п╨п╟ XML CDATA.</td></tr>
  17.320 -
  17.321 -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td> п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣
  17.322 -я┌п╣п╨я│я┌п╟ п╢п╟п╫п╫я▀я┘.  </td></tr>
  17.323 -</table>
  17.324 -
  17.325 -<p>
  17.326 -п°п╟п╨я─п╬п©я─п╬я├п╣я│я│п╬я─ TEMA я─п╟я│я┬п╦я─я▐п╣п╪: п╡п╬п╥п╪п╬п╤п╫п╬ п╢п╬п╠п╟п╡п╩п╣п╫п╦п╣ п╡ я│п╦я│я┌п╣п╪я┐ п╫п╬п╡я▀я┘
  17.327 -я└я┐п╫п╨я├п╦п╧, я─п╣п╟п╩п╦п╥п╬п╡п╟п╫п╫я▀я┘ п╡ п╡п╦п╢п╣ п╨п╩п╟я│я│п╬п╡ п╫п╟ я▐п╥я▀п╨п╣ Java.
  17.328 -</p>
  17.329 -
  17.330 -<h2>п≈п╟п©я┐я│п╨</h2>
  17.331 -
  17.332 -<p>java -jar tema.jar [<i>п╬п©я├п╦п╦</i>]
  17.333 -</p><p>
  17.334 -п·п©я├п╦п╦:
  17.335 -</p>
  17.336 -<table>
  17.337 -<tr><td>-d[emo]</td><td>п■п╣п╪п╬п╫я│я┌я─п╟я├п╦п╬п╫п╫я▀п╧ я─п╣п╤п╦п╪</td></tr>
  17.338 -<tr><td>-v[ersion]</td><td>п▓я▀п╡п╬п╢ п╡п╣я─я│п╦п╦</td></tr>
  17.339 -<tr><td>-h[help] -u[sage]</td><td>п▓я▀п╡п╬п╢ я│п©я─п╟п╡п╨п╦</td></tr>
  17.340 -</table>
  17.341 -
  17.342 -<p>
  17.343 -п÷я─п╦ п╥п╟п©я┐я│п╨п╣ я┤п╦я┌п╟п╣я┌я│я▐ я└п╟п╧п╩ "tema.properties" п╦п╥ я┌п╣п╨я┐я┴п╣пЁп╬ п╨п╟я┌п╟п╩п╬пЁп╟.<br />
  17.344 -п÷я─п╦п╪п╣я─ я└п╟п╧п╩п╟ "tema.properties":
  17.345 -</p>
  17.346 -
  17.347 -<pre>
  17.348 -# п²п╟я│я┌я─п╬п╧п╨п╟ п╦я│я┌п╬я┤п╫п╦п╨п╟ п╢п╟п╫п╫я▀я┘
  17.349 -# resource          : jdbc:odbc:database
  17.350 -# driver            : sun.jdbc.odbc.JdbcOdbcDriver
  17.351 -
  17.352 -# п▒п╟п╥п╬п╡я▀п╧ п╨п╟я┌п╟п╩п╬пЁ я─п╣я│я┐я─я│п╬п╡
  17.353 -# resource_base     : .
  17.354 -
  17.355 -# п╗п╟п╠п╩п╬п╫, я│ п╨п╬я┌п╬я─п╬пЁп╬ п╫п╟я┤п╦п╫п╟п╣я┌я│я▐ п╬п╠я─п╟п╠п╬я┌п╨п╟
  17.356 -main_template     : main.template
  17.357 -
  17.358 -# п п╬п╢п╦я─п╬п╡п╨п╦ я└п╟п╧п╩п╬п╡
  17.359 -# input_encoding    : UTF-8
  17.360 -# output_encoding   : UTF-8
  17.361 -
  17.362 -# п я█я┬п╦я─п╬п╡п╟п╫п╦п╣ я┬п╟п╠п╩п╬п╫п╬п╡
  17.363 -# cache_read        : true
  17.364 -
  17.365 -# п▓я▀п╡п╬п╢ я─п╣п╥я┐п╩я▄я┌п╟я┌п╟ я─п╟п╥п╠п╬я─п╟ я┬п╟п╠п╩п╬п╫п╟ main.template п╡ stderr
  17.366 -# output            : stderr
  17.367 -
  17.368 -# п▓я▀п╡п╬п╢ я│п╬п╬п╠я┴п╣п╫п╦п╧ п╬п╠ п╬я┬п╦п╠п╨п╟я┘ п╡ я└п╟п╧п╩
  17.369 -# log               : dbreader.log
  17.370 -</pre>
  17.371 -
  17.372 -</body>
  17.373 -</html>
    18.1 --- a/misc/util/header	Fri May 15 03:07:16 2009 +0400
    18.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.3 @@ -1,19 +0,0 @@
    18.4 -/*
    18.5 - *  Copyright 2006-2009 Mikhail Kryshen
    18.6 - *
    18.7 - *  This file is part of Tema.
    18.8 - *
    18.9 - *  Tema is free software: you can redistribute it and/or modify it
   18.10 - *  under the terms of the GNU Lesser General Public License as
   18.11 - *  published by the Free Software Foundation, either version 3 of the
   18.12 - *  License, or (at your option) any later version.
   18.13 - *
   18.14 - *  Tema is distributed in the hope that it will be useful,
   18.15 - *  but WITHOUT ANY WARRANTY; without even the implied warranty of
   18.16 - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   18.17 - *  GNU Lesser General Public License for more details.
   18.18 - *
   18.19 - *  You should have received a copy of the 
   18.20 - *  GNU Lesser General Public License along with Tema.  
   18.21 - *  If not, see <http://www.gnu.org/licenses/>.
   18.22 - */
    19.1 --- a/misc/util/header.gpl	Fri May 15 03:07:16 2009 +0400
    19.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.3 @@ -1,20 +0,0 @@
    19.4 -/*
    19.5 - *  Copyright (C) 2006, 2007, 2008 Mikhail Kryshen
    19.6 - *
    19.7 - *  This file is part of Tema.
    19.8 - *
    19.9 - *  Tema is free software: you can redistribute it and/or modify it
   19.10 - *  under the terms of the GNU General Public License as published by
   19.11 - *  the Free Software Foundation, either version 3 of the License, or
   19.12 - *  (at your option) any later version.
   19.13 - *
   19.14 - *  Tema is distributed in the hope that it will be useful,
   19.15 - *  but WITHOUT ANY WARRANTY; without even the implied warranty of
   19.16 - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   19.17 - *  GNU General Public License for more details.
   19.18 - *
   19.19 - *  You should have received a copy of the GNU General Public License
   19.20 - *  along with Tema.  If not, see <http://www.gnu.org/licenses/>.
   19.21 - *
   19.22 - *  $Id: header.gpl,v 1.1 2008/02/16 16:56:34 mikhail Exp $
   19.23 - */
    20.1 --- a/misc/util/update_headers.pl	Fri May 15 03:07:16 2009 +0400
    20.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.3 @@ -1,36 +0,0 @@
    20.4 -#!/usr/bin/perl
    20.5 -
    20.6 -use File::Find;
    20.7 -
    20.8 -undef $/;
    20.9 -
   20.10 -my $src = "../../src";
   20.11 -my $header_file = "header";
   20.12 -
   20.13 -open (FILE, "$header_file");
   20.14 -my $header = <FILE>;
   20.15 -close(FILE);
   20.16 -
   20.17 -find (\&update_header, $src);
   20.18 -
   20.19 -sub update_header
   20.20 -{
   20.21 -   my $code;
   20.22 -   
   20.23 -   if ( $File::Find::name !~ /^.*\.java$/ )
   20.24 -   {
   20.25 -     return;
   20.26 -   }
   20.27 -
   20.28 -   print $File::Find::name."\n";   
   20.29 -   open(FILE, "$_") or die "error opening file";
   20.30 -  
   20.31 -   $code = <FILE>;
   20.32 -   $code =~ s|(^[[:space:]]*/\*.*?\*/[[:space:]]*?\n\|^)|$header|s;
   20.33 -   
   20.34 -   close(FILE);
   20.35 -
   20.36 -   open(FILE, ">$_") or die "error opening file";
   20.37 -   print FILE $code;
   20.38 -   close(FILE);
   20.39 -}