Форматы и договоренности — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
 
(не показано 5 промежуточных версии этого же участника)
Строка 1: Строка 1:
[[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]]
+
{|cellpadding="10" cellspacing="0" border="0"
 +
| [[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]]
 +
| [[Регистрация библиотеки|Регистрация библиотеки<<<]]
 +
| [[Форматы и договоренности|Форматы и договоренности]]
 +
| [[Загрузка и выгрузка модуля|>>>Загрузка и выгрузка модуля]]
 +
|-
 +
|}
  
 
== Конфигурация и формат параметров ==
 
== Конфигурация и формат параметров ==
Строка 7: Строка 13:
 
Взаимодействие осуществляется методами и callback-методами с передачей параметров простых типов (<span style="color:blue">BOOL</span>, <span style="color:blue">INT</span>, <span style="color:blue">STRING</span>). В случае необходимости передачи большого числа параметров или сложных параметров используется строковый параметр, содержащий внутри себя XML-структуру. Строка XML установленного образца по умолчанию в кодировке UTF-16 (может быть установлен любой формат методом <span style="color:darkred">SetXmlEncoding</span>). Заголовки жестко фиксированы, содержимое согласно установленной структуре тэгов и их зависимостей, но произвольно по уровням вложенности и комбинациям.  
 
Взаимодействие осуществляется методами и callback-методами с передачей параметров простых типов (<span style="color:blue">BOOL</span>, <span style="color:blue">INT</span>, <span style="color:blue">STRING</span>). В случае необходимости передачи большого числа параметров или сложных параметров используется строковый параметр, содержащий внутри себя XML-структуру. Строка XML установленного образца по умолчанию в кодировке UTF-16 (может быть установлен любой формат методом <span style="color:darkred">SetXmlEncoding</span>). Заголовки жестко фиксированы, содержимое согласно установленной структуре тэгов и их зависимостей, но произвольно по уровням вложенности и комбинациям.  
  
  <?xml version="1.0" encoding="utf-16"?>
+
  <nowiki><?xml version="1.0" encoding="utf-16"?>
 
  <oktellcommapper version="80710">
 
  <oktellcommapper version="80710">
 
  <data name="" count="">
 
  <data name="" count="">
Строка 32: Строка 38:
 
   </property_set>
 
   </property_set>
 
  </data>
 
  </data>
  </oktellcommapper>
+
  </oktellcommapper></nowiki>
  
 
Четыре основных тега внутренней структуры:  
 
Четыре основных тега внутренней структуры:  
Строка 47: Строка 53:
  
 
Очевидна объектная модель, лежащая в основе подобным образом организованной структуры. Рекомендация: не делать различий между property_simple и property_cdata при парсинге XML в объекты.
 
Очевидна объектная модель, лежащая в основе подобным образом организованной структуры. Рекомендация: не делать различий между property_simple и property_cdata при парсинге XML в объекты.
 +
 +
{|cellpadding="10" cellspacing="0" border="0"
 +
| [[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]]
 +
| [[Регистрация библиотеки|Регистрация библиотеки<<<]]
 +
| [[Форматы и договоренности|Форматы и договоренности]]
 +
| [[Загрузка и выгрузка модуля|>>>Загрузка и выгрузка модуля]]
 +
|-
 +
|}

Текущая версия на 08:08, 26 марта 2015

Наверх Регистрация библиотеки<<< Форматы и договоренности >>>Загрузка и выгрузка модуля

Конфигурация и формат параметров

Загрузка осуществляется на основе конфигурационного файла, лежащего где-либо рядом: с исполняемым модулем, запустившим процесс, со сборкой COM-объекта. Имя файла ищется под одним из имен: oktell.ClientComLib.dll.config, oktell.ClientStarter.exe.config, App.config. Параметры конфигурационного настроечного файла описаны в мануале к октеллу (здесь). Он дополнен только тремя параметрами - базового каталога для хранения логжурналов (WORK_ROOTDIR) и базового каталога для поиска сборок (MODULE_ROOTDIR) Если параметры не присутствуют, то модули ищутся в каталоге со сборкой COM, все временные папки, обновления и логи хранятся в каталоге исполняемого модуля или в каталоге со сборками (по умолчанию). Также возможно выставить параметр WORK_ROOTDIR_TYPE, который в отсутствие WORK_ROOTDIR будет указывать путь размещения всех временных папок (0 - каталог исполняемого модуля, 1 - каталог размещения сборок).

Взаимодействие осуществляется методами и callback-методами с передачей параметров простых типов (BOOL, INT, STRING). В случае необходимости передачи большого числа параметров или сложных параметров используется строковый параметр, содержащий внутри себя XML-структуру. Строка XML установленного образца по умолчанию в кодировке UTF-16 (может быть установлен любой формат методом SetXmlEncoding). Заголовки жестко фиксированы, содержимое согласно установленной структуре тэгов и их зависимостей, но произвольно по уровням вложенности и комбинациям.

<?xml version="1.0" encoding="utf-16"?>
 <oktellcommapper version="80710">
 <data name="" count="">
   <property_set name="" id="">
     <property_simple key="" value="" name="" />
     .....
     <property_simple key="" value="" name="" />
     <property_cdata key="" value=""><![CDATA[]]></property_cdata>
     .....
     <property_cdata key="" value=""><![CDATA[]]></property_cdata>
     <property_collection name="" count=""> 
       <property_set name="" id="">
          .....
       </property_set>
       .....
       <property_set name="" id="">
          .....
       </property_set>       
     </property_collection> 
   </property_set>
   .....
   <property_set name="" id="">
      .....
   </property_set>
 </data>
 </oktellcommapper>

Четыре основных тега внутренней структуры:

property_simple ( <property_simple key="" value="" name="" /> ) - элементарные свойства {key,value,name}, value и name могут отсутствовать.
property_cdata ( <property_cdata key="" value=""><![CDATA[]]></property_cdata> ) - полнотекстовые свойства с неизвестным заранее содержимым {key,value,text}, value может отсутствовать.
property_set ( <property_set name="" id="">...</property_set> ) - набор произвольного числа property_simple и property_cdata с допустимым присутствием одного тега property_collection.
property_collection ( <property_collection name="" count="">...</property_collection> ) - коллекция произвольного числа property_set.

Базовый внешний тег представляет собой аналог <property_collection>.

Очевидна объектная модель, лежащая в основе подобным образом организованной структуры. Рекомендация: не делать различий между property_simple и property_cdata при парсинге XML в объекты.

Наверх Регистрация библиотеки<<< Форматы и договоренности >>>Загрузка и выгрузка модуля