Описание скрипта для импорта моделей - polpoz.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Программа для просмотра файлов dbf dbfnavigator ini вспомогательный... 1 35.12kb.
Научные подходы к классификации моделей ограничений жизнедеятельности... 1 99.08kb.
О возможности построения акустических моделей оборудования лесного... 1 93.48kb.
Методы скелетной анимации для трансформации полигональных поверхностей... 1 203.34kb.
Конспект лекцій курсу "Математичне моделювання у світлотехніці" 1 7.28kb.
Type=x acc=3012000123002 Платежное поручение [in param] и заканчиваться... 1 254.03kb.
Описание языка Turbo Basic для студентов всех специальностей 1 232.56kb.
Минпромторг россии начинает специальное защитное расследование в... 1 46.52kb.
Вступление России в вто предполагает снижение импортных пошлин в... 1 34.94kb.
Motorrad Fork Oil 10W medium описание 1 13.84kb.
1. Техническое задание 3 Описание предметной области 3 Описание проектируемой... 1 144.6kb.
Этот документ предоставляется на условиях «как есть». Информация... 1 204.13kb.
1. На доске выписаны n последовательных натуральных чисел 1 46.11kb.

Описание скрипта для импорта моделей - страница №1/1


Описание скрипта для импорта симуляций

Описание скрипта для импорта моделей

Скрипт import.pl предназначен для импорта моделей из репозитория в OpenCollege.


Составные части


Скрипт состоит из следующих файлов:

importer.pl - главный файл, который разбирает командную строку, конфигурационный файл, запускает остальные файлы скрипта и копирует необходимые файлы в нужные директории.

xml_physicon_parser.pl – разбирает xml-файл info.xml из каждой директории и выбирает из него данные согласно шаблону, заданному в конфигурационном файле.

import_to_db.pl – формирует и выполняет sql запросы по заданным в конфигурационном файле шаблонам и полученным из info.xml данным.

importer.cfg - тут задаются глобальные переменные, относящиеся к базе данных и копированию файлов.

importer.template – даны шаблоны разбора xml-файла и составления sql-запросов для каждого типа вносимых моделей (java, screenshot, flacon, flash). К сожалению, шаблон копирования файлов сейчас не применяется. Все директивы копирования зашиты в importer.pl (функция copy_files).

Аргументы командной строки


importer.pl [--check|check_only|verbose] dir_name_list …

Указанные директории должны содержать директории с номерами моделей. Обычно такая структура получается разархивированием полученного файла из репозитория (Репозиторий -> Export Simulations -> …)



Ключ

Описание

--check

Проверяет, есть ли записи в каталоге, ссылающиеся на одни и те же модели. Проверка ведется до внесения в базу данных новых моделей.

--check_only
-o

Аналогично ключу --check проходит проверка множественных ссылок на одну модель. Больше никаких действий не выполняется. Аргумент dir_name_list можно опустить.

--verbose
-v

Выводится информация о совершаемых действиях: создании директорий, копировании файлов, запросах к базе данных.

Конфигурационный файл


Файл importer.cfg содержит следующие настройки:

Переменная

Пример значения

Ее значение

BASE

/home/open/www/simrent/

Относительно ее задаются DIR_* переменные.

DIR_JAR

jars/

В этой директории хранятся файлы java-симуляций.

DIR_FLACON

flacon/

В этой директории находятся файлы симуляций на флаконе.

DIR_FLASH

flash/

В этой директории хранятся файлы флешевых анимаций.

DIR_SCRSHOT

scrshots/

В этой директории хранятся файлы скриншотов.

DIR_ICON

res_icons/

В этой директории хранятся файлы иконок.

JAR_PATH

../jars/

этот путь входит в SQL-запросы java-симуляций.

SCR_PATH

../scrshots/

этот путь входит в SQL-запросы (путь к скриншотам).

ICON_PATH

../res_icons/

этот путь входит в SQL-запросы (путь к иконкам).

FLACON_BASE

../flacon/

этот путь1 входит в SQL-запросы флешевых анимаций.

FLASH_PATH

../flash/

этот путь входит в SQL-запросы

DATABASE

trial

имя базы данных, куда идут SQL-запросы.

DBHOST

localhost

где находится база данных

DBUSER

taty

пользователь, под которым соединяемся с БД

DBAUTH

“”

его пароль.

Структура шаблонов


Шаблоны лежат в importer.template.

Шаблоны позволяют указать для каждого типа моделей какие теги и аттрибуты надо извлекать из файла info.xml, какими SQL-запросами помещать найденную информацию в базу данных и какие файлы куда копировать.



Комментариями являются строки, начинающиеся с #.

Различные типы моделей (Java, Flacon, Flash etc.) отделяются друг от друга линией знаков равенства, внутри которой указан тип. Название типа должно СТРОГО совпадать с тем именем, который будет указан в файле info.xml в теге <simulation type=”…”>. Например:

====================== Java ===================================

Все, что написано до первого разделителя типов игнорируется.

Внутри типа информация подразделяется на шаблон разбора xml-файла, шаблон SQL-запросов и шаблон копирования файлов. Разделители подсекций состоят из лидирующих знаков равенства и названия подсекции (XML, SQL, FILE), например:

=== XML


==SQL

=== FILE

Структура шаблона для разбора XML файла


Шаблон начинается со стороки типа ==XML.

Так как в некоторых типах таги с одинаковыми именами лежат внутри разных тегов и имеют различное значение (например, для Flash надо брать содержимое тега movie, который лежит внутри тега code, а не от того, который лежит внутри тега params), то вам надо указать все теги, внутри которых лежит нужная информация. Пробельные символы не имеют значения. Например,





text

Запоминается содержимое тега, если между тегами находится ключевое слово text или int. В следующих версиях для ключевого слова int будет содержимое приводиться к числу, но пока никакой разницы между text и int нет.

Если интересует значение аттрибута тега, то ключевое слово text указывается как значение аттрибута, например,

Все аттрибуты тега и все теги, не указанные в шаблоне, игнорируются.

Указанное содержимое тегов и значения аттрибутов запоминаются с именем аттрибута (для значения аттрибута) или тега (для содержимого тега). Для подстановки этих значений надо указать имя в квадратных скобках. Для приведенных примеров это [movie] и [type].

Структура шаблона SQL запросов


Шаблон начинается со стороки типа ==SQL.

Метаязык шаблона запросов к БД похож на SQL. Каждый запрос заключен в двойные кавычки. Запрос может располагаться на нескольких строках. Запросы выполняются в том порядке, в котором они указаны в шаблоне.

Глобальные переменные из конфигурационного файла указываются в угловых скобках, например, . Переменные, полученные при разборе xml-файла или в результате выполнения SQL-запроса пишутся в квадратных скобках, например, [movie] или [resID_jar].

“UPDATE SET =’[applet]’ WHERE =’[catalogID]’ AND =’code’ “

Чтобы запомнить результат выполнения запроса как значение переменной, напишите ее имя в квадратных скобках и поставьте после нее знак ~ :

“[catalogID] ~ SELECT FROM WHERE =’[resID_jar]’ “

Все запросы в разделе, расположенные после специального запроса “EXIT” не выполняются.

Если запрос начинается с диеза, то он не выполняется.


Структура шаблона копирования файлов


Шаблон начинается со стороки типа ==FILE.

Сначала пишется переменная из конфигурационного файла, в которой указана директория, куда будем копировать файлы. Далее после знака «<=» пишем путь к файлу. Например:

DIR_ICON <= [icon]

FLACON_PATH <= [movie].swf



Файл берется из той же директории, что и info.xml.

Следует отметить, что для Флакона надо указывать не DIR_FLACON (хотя именно эту переменную Вы определяете в конфигурационном файле, а FLACON_PATH, который получается (хитрой) конкатенацией DIR_FLACON и версии Флакона. Надеюсь, что в будущем эта структура директорий будет заменена более ясной, и подобные финты будут не нужны.

1 В запросы входит переменная flacon_path, которая состоит из FLACON_BASE с указанной версией флакона. Например, FLACON_BASE=’../flacon/’, модель написана на Flacon2 (т.е. FlaconVersion=2), тогда flacon_path=’../flacon2/’