[Devel] uniset и составной configure.xml

Pavel Vaynerman pv на etersoft.ru
Чт Дек 16 22:16:34 MSK 2010


  Приветствую всех.

Недавно звучала тема, что наш монолитный configure.xml хорошо бы чтобы можно 
было разбить на много xml-файлов...

   Я чуть озаботился этой темой. И вот щаз у меня есть несколько вариантов 
(идей) реализации на обсуждение:

Вариант 1. 
------------------
Идеальным вариантом конечно является использовать для загрузки внешних xml-
файлов средства самой библиотеки. Типа прозрачным образом вообще
и ничего делать не надо.
    В libxml2 сходу не нашёл такого. По краней мере без специальной  
реализации... Так что если кто знает.. прошу..

Вариант 2.
-----------------
Могу (это не сложно) встроить в uniset загрузку многих xml например в 
следующем виде:
В главном файле (configure.xml) объявляется секция 
<extfiles>
   <filename1>
   <filename2>
   ...
   <filenameN
</extfiles>
 При этом эти файлы имеют такую же структуру как и configure.xml и парсер
"забирает" из них заранее(!) известные секции. Типа 
<settings>,<sensors>,<objects> и т.п.  Ну и "вставляет" их в основной файл.
Проверку на дубли и корректность, пока держим за скобками.

Вообщем вариант собственно простой реализации "склеивания".
Плюсы: реализовать не сложно.
Минусы: жёсткая завязка на структуру... 
(ну и замедление загрузки.. см. вариант 3)

Вариант 3. 
------------------
   Пришла ко мне такая идея. Есть мощные(!) внешние парсеры типа xsltproc.
А что если генерировать итоговый монолитный configure.xml при помощи них.
Т.е. в разработке находится много xml-файлов, а при сборке или на более 
позднем этапе, это всё "собирается" в один configure.xml.
К плюcам этого способа, отношу  то, что:
- используются мощные внешние программы (на любом(!) удобном языке 
програмирования)
- не надо переписывать uniset :)
- когда система уже установлена и работает (на контроллерах), то configure.xml
не меняется и поэтому каждый раз "замедлять" загрузку из-за "парсенья" многих 
файлов, которые не менялись.. тоже не хорошо. 

P.S. Если кто-то видит другие более удачные варианты.. welcome.. 


-- 
Pavel Vaynerman
www.etersoft.ru


Подробная информация о списке рассылки Devel