Импорт из XML

Материал из Brownie Software
Перейти к: навигация, поиск

Содержание

Импорт структуры папок из XML файла

Эта функция была создана, чтобы была возможность быстро перенести структуру директорий из другой системы.

Импорт XML файла в Vault

  1. Выберите пункт меню Сервис > DS: Структуры > Импорт структуры из XML.
    Proj5.png
  2. Выберите XML файл и нажмите Открыть.

XML файл должен быть следующего формата:


<?xml version="1.0" encoding="utf-8"?>
<structure>
  <categories>
    <category displayname="" id="" />
  </categories>
  <propeties>
    <property displayname="" id="" type="" />
  </propeties>
  <groups>
   <group name="" id=""/>
  </groups>
  <folders location="">
    <folder name="" catid="" userlogin="">
   <permissions Propagate="">
      <permisgroup id="" AllowRead="" AllowWrite="" AllowDelete=""/>
   </permissions>
   <fldrproperties>
        <fldrprop propid="" value="" />
      </fldrproperties>
     </folder>
    </folder>
  </folders>
</structure>


Описание формата

  • Узел structure - корневой узел
  • Узел categories - содержит в себе информацию о создаваемых категориях
  • Узел category - содержит в себе информацию о категории
    • атрибут displayname - название категории
    • атрибут id - идентификатор, используется в дальнейшем для указания категории
  • Узел properties - содержит в себе информацию о создаваемых свойствах
  • Узел property - содержит в себе информацию о свойстве
    • атрибут displayname - имя свойства
    • атрибут id - идентификатор свойства, используется в дальнейшем для указания свойства
    • атрибут type - тип данных, которые хранит свойство
  • Узел groups - содержит в себе информацию о создаваемых группах
  • Узел group - содержит в себе информацию о группе
    • атрибут name - имя группы
    • атрибут id - идентификатор группы, используется в дальнейшем для указания группы
  • Узел folders - содержит в себе всю структуру папок
    • атрибут location - корневая папка, в которую должна импортироваться структура
  • Узлы folder - содержат в себе информацию о создаваемой папке, её свойствах и вложенных папках
    • атрибут name - название папки
    • атрибут catid - категория папки, идентификатор
    • атрибут userlogin - ответственный, логин пользователя Vault
  • Узел permissions - содержит в себе описания привелегий для групп
    • атрибут Propagate - режим наследования привелегий ко вложенным папкам
  • Узел permisgroup - содержит в себе привелегии одной группы
    • атрибут id - идентификатор группы
    • атрибут AllowRead - разрешить чтение
    • атрибут AllowWrite - разрешить запись
    • атрибут AllowDelete - разрешить удаление
  • Узел fldrproperties - содержит в себе значения свойств папки
    • атрибут propid - идентификатор свойства
    • атрибут value - значение свойства


Атрибут location узла folders содержит в себе путь к папке в системе Vault, в которую надо вставить структуру. Корневая папка в Vault обозначается символом $. Для разделения папок в пути используется прямой слеш (/). Пример: $/test/part1.

Атрибут username узла folder должен содержать логин существующего пользователя в Vault. Если такого пользователя не уществует, ответственный не будет назначен.

Атрибут type узла properties может иметь одно из следующих значений:

  • Bool - Логический тип
  • DateTime - Время и дата
  • Numeric - Число
  • String - Строка

Значение атрибута value узла fldrproperties должно соответствовать типу данных указанного свойства. Время должно быть указано в следующем формате: ЧЧ:ММ:СС ДД.ММ.ГГ. Логический тип может принимать значения True или False.

Узлы groups и permissions необязательны. Атрибуты AllowRead, AllowWrite, AllowDelete могут быть пропущены. Атрибуты AllowRead, AllowWrite, AllowDelete могут принимать значения true или false. Атрибут Propagate может иметь следующие значения:

  • None - не наследовать права
  • Append - только добавлять новые
  • Replace - полностью заменять права

Если узел groups пропущен, то в конце импорта будет предложено назначить права на все папки следующим образом: группе, к которой принадлежит ответственный, будет добавлено разрешение на чтение папки.

Ограничения

Значения всех атрибутов не должны содержать в себе следующие символы: / ? < > \ : * | ” $

Пример файла


<?xml version="1.0" encoding="utf-8"?>
<structure>
   <categories>
      <category displayname="Договор" id="1" />
      <category displayname="Позиция" id="2" />
      <category displayname="Специальность" id="3" />
   </categories>
   <propeties>
      <property displayname="Наименование" id="1" type="String" catids="1" />
      <property displayname="Дата начала" id="2" type="DateTime" catids="1, 2" />
      <property displayname="Дата окончания" id="3" type="DateTime" catids="3" />
   </propeties>
   <groups>
      <group name="Все пользователи" id="1"/>
      <group name="Тестеры" id="2"/>
   </groups>
   <folders location="$/Договоры">
      <folder name="681005" catid="1" userlogin="malof">
         <permissions Propagate="Append">
            <permisgroup id="1" AllowRead="true" AllowWrite="true"/>
            <permisgroup id="2" AllowRead="true"/>
         </permissions>
         <fldrproperties>
            <fldrprop propid="1" value="Первый" />
            <fldrprop propid="2" value="00:00:00 04.01.10" />
            <fldrprop propid="3" value="00:00:00 28.02.13" />
         </fldrproperties>
         <folder name="002" catid="2" userlogin="sabinin">
         <permissions Propagate="Replace">
            <permisgroup id="1" AllowRead="true" AllowWrite="true" AllowDelete="false"/>
            <permisgroup id="2" AllowWrite="true" AllowDelete="false"/>
         </permissions>
            <fldrproperties>
               <fldrprop propid="1" value="Второй" />
               <fldrprop propid="2" value="00:00:00 05.08.10" />
               <fldrprop propid="3" value="00:00:00 25.11.10" />
            </fldrproperties>
            <folder name="192" catid="3" userlogin="corrector_2">
               <fldrproperties>
                  <fldrprop propid="1" value="Третий" />
               </fldrproperties>
            </folder>
         </folder>
      </folder>
   </folders>
</structure>