|
Меню "Правка" - "Пользовательские тэги" открывает Редактор пользовательских тэгов.
ВНИМАНИЕ! Создание/Редактирование пользовательских тэгов требует от пользователя знания основ формата GEDCOM и определенной компьютерной подготовки.
Пользовательские тэги (тэги, определяемые пользователем) - это типы элементов, не описанные в стандарте GEDCOM, а создаваемые пользователем для своих нужд. Обычно такие тэги создаются производителями генеалогических программ, так что термин "пользовательский", то есть относящийся к конечному пользователю, не совсем верен. Пользовательские тэги применяются для описания элементов, которых, по мнению их создателей, не хватает в стандартном наборе GEDCOM тэгов или если такие элементы необходимы для нормального функционирования программы. Так, в программе "Родственники" в запись типа Родственник (тэг INDI) добавлены пользовательские тэги _X и _Y, хранящие информацию о геометрических координатах родственников в дереве. Без этих тэгов программа не смогла бы работать - в стандарте GEDCOM не предусмотрено никаких методов сохранения подобных данных. Механизм определения пользовательских тэгов был введен создателями формата GEDCOM в версии 5.3 с помощью специального тэга SCHEMA, но не был хорошо продуман и не позволял в достаточной мере описать дополнительные тэги как новые типы данных. Поэтому уже в версии 5.5 авторы GEDCOM отказались от тэга SCHEMA, и вопрос, как говорится, "повис в воздухе" - пользовательские тэги по-прежнему можно было вводить, но описывать их уже было нечем...
Программа "Родственники" предлагает свой механизм поддержки пользовательских тэгов, предусматривающий более полное их описание - в частности, для тэга можно описать тип его значения - строка, текст, ссылка на запись и т.д.
При импорте GEDCOM файла, созданного другой программой, механизм поддержки пользовательских тэгов работает следующим образом:
- Если в заголовке файла присутствует тэг SCHEMA, то описания пользовательских тэгов прочитываются из него и сохраняются в программе;
- Все пользовательские тэги (т.е. те, имена которых начинаются со знака подчеркивания "_"), не описанные в SCHEMA, также сохраняются в программе;
- Все стандартные GEDCOM-тэги, обнаруженные не на своих стандартных местах, помечаются как пользовательские и сохраняются в программе;
- Тэги, которые не найдены среди стандартных GECDOM-тэгов и не начинаются с "_", также помечаются как пользовательские и сохраняются в программе, а к их именам спереди прибавляется символ "_".
- Все прочитанные таким образом тэги можно затем редактировать в Редакторе пользовательских тэгов.
- Тэг SCHEMA в заголовке файла невидим (и не может быть добавлен) - все функции по обслуживанию пользовательских тэгов доступны через Редактор пользовательских тэгов.
- При экспорте в GEDCOM формат информация о пользовательских тэгах сохраняется в заголовке файла в элементе SCHEMA.
Редактор пользовательских тэгов
При открытии Редактора на левой панели будет список пользовательских тэгов данного файла. Каждый тэг представлен "цепочкой" тэгов в виде Тэг - тэг - ... - тэг, то есть тэги показываются в виде "Главный тэг (Родственник, Семья и т.п.) - затем принадлежащий ему тэг - и т.д... - наконец, собственно пользовательский тэг".
При выборе строки в списке на правой панели отображаются свойства выбранного пользовательского тэга:
- Тэг - имя тэга;
- Определение - краткое определение, метка - то, как тэг будет представлен, например, в дереве элементов записи и т.п.;
- Описание - развернутое описание тэга, что означает данный тэг, какие данные он хранит;
- Помощь - еще более развернутое описание тэга, включающее в себя информацию о том, как редактировать значение данного тэга, какие значения он может принимать, и т.п. Эта информация появляется при вызове помощи в окне редактирования элемента. См.:
Редактор;
- Мин. количество - какое минимальное количество элементов с данным тэгом может иметь элемент-родитель. Может быть 0 или 1;
- Макс. количество - какое максимальное количество элементов с данным тэгом может присутствовать в элементе-родителе. Может быть от 1 до 65535;
- Тип значения - тип значения, которое может принимать данный элемент. Эти типы: пусто, строка, текст, шаблон, ссылка, выбор;
- Длина значения - максимальная длина значения для типов "строка" и "шаблон".
Кнопки "Новый" и "Правка" на нижней панели открывают окно редактора тэга для создания нового или редактирования выбранного пользовательского тэга.
Кнопка "Удалить" удаляет выделенный пользовательский тэг.
Обратите внимание, что удаление тэга означает, что все элементы с данным тэгом тоже должны быть удалены. Поэтому перед удалением программа проверяет, есть ли в файле такие элементы и, если они найдены, выдает предупреждение. Пользователь может отменить удаление и просмотреть записи, в которых найдены эти элементы (см. кнопка "Проверить").
Если удаляемый тэг имеет подтэги (тоже, естественно, пользовательские), то эти подтэги также будут удалены (вместе с соответствующими элементами).
Как видите, удаление пользовательского тэга (а также изменение типа его значения) может привести к потере данных, поэтому надо быть внимательным и действовать осторожно. Тем более, что в данной версии программы изменения в пользовательских тэгах не могут быть отменены.
Кнопка "Проверить" выдает список записей, в которых есть элемент с данным пользовательским тэгом. Применяется для проверки перед удалением тэга (см. кнопка "Удалить"). Кстати, есть другой (и, возможно, даже более удобный) способ найти все записи с элементом данного тэга - с помощью "Улучшенного поиска". Для этого в диалоге поиска выберите в дереве тэгов нужный тэг, нажмите на нем правой кнопкой мыши, и выберите меню "Добавить в поиск". В появившемся на панели справа текстовом поле ничего не вводите (или введите символ звездочки *, что означает то же самое - искать любое значение) и нажмите "Искать" - будут найдены все записи с элементами данного тэга.
Редактор тэга
Имеет следующие элементы интерфейса:
- Тэг - текстовое поле для задания имени тэга.
Имя тэга должно начинаться со знака подчеркивания '_' и состоять из больших букв английского алфавита от A до Z, цифр 0-9 и '_'. Никакие другие символы редактор ввести не позволит. Внимание: если вы не можете ничего ввести в это поле, то это, скорее всего потому, что раскладка вашей клавиатуры переключена на национальную, неанглийскую раскладку! Если Вы забыли начать имя тэга со знака '_', редактор исправит это.
- Контекст - позволяет определить "родительский" тэг для нового тэга, т.е. тэг, в котором пользовательский тэг будет "подтэгом". В данной версии программы задать контекст можно только для нового пользовательского тэга, т.е. при его создании.
Контекст задается следующим образом:
а) Выберите из выпадающего списка тэг самого верхнего уровня (Родственник, Семья и т.д.) и нажмите кнопку "Добавить" - тэг появится в текстовом поле выше, а выпадающий список будет теперь содержать все возможные подтэги выбранного тэга.
б) Выберите из выпадающего списка тэг следующего уровня и нажмите кнопку "Добавить" - выбранный тэг добавится к тэгу верхнего уровня. Подобным образом можно задать "цепочку" родительских тэгов нашего пользовательского тэга.
в) Кнопка "Убрать" позволяет удалить последний из тэгов контекста.
- Определение - поле ввода определения, или метки тэга. Метка тэга должна быть о возможности короче, желательно одним словом. Под этой меткой тэг будет показываться в программе, как например тэг INDI имеет метку "Родственник".
- Описание - поле ввода описания. Описание определяет тэг более подробно и не имеет ограничения на длину. Тем не менее, не делайте описание слишком длинным, желательно не более 50-60 знаков.
- Помощь - текстовое поле для ввода текста помощи. Длина этого текста не ограничена, и он может быть многострочным. Помощь будет доступна пользователю во время создания/редактирования элемента с данным тэгом и потому может содержать расширенное описание тэга, информацию о том, какие значения может принимать данный элемент, какие-то другие особенности.
- Мин. количество - выпадающий список со значениями 0 и 1; 0 означает, что элемент с таким тэгом не обязателен, 1 - что он обязательно должен присутствовать в родительском элементе хотя бы один раз.
- Макс. количество - поле для задания максимального количества элементов с данным тэгом в родительском элементе. Может принимать значение от 1 до 65535.
- Тип значения - набор радиокнопок для задания типа значения данного тэга.
- Пусто - элемент данного тэга не имеет значения. Такой элемент просто содержит другие элементы.
- Строка - значение - одна строка текста. Макс. длину строки (до 248 символов согласно стандарта GEDCOM) можно указать в последнем текстовом поле, но реально в данной программе она не ограничена.
- Текст - значение - многострочный текст неограниченной длины.
- Шаблон - то же, что и строка, но значение должно соответствовать определенному шаблону. Шаблон задается в текстовом поле рядом с помощью регулярного выражения (regex). Например, чтобы ограничить значение четырехзначным десятичным числом, используется регулярное выражение "\d{1,4}". О регулярных выражениях читайте: Mastering Regular Expressions, 2nd Edition, Jeffrey E. F. Friedl, O'Reilly and Associates, 2002.
- Ссылка - значение элемента данного тэга - ссылка на запись. Тип записи выбирается из выпадающего списка рядом.
- Выбор - значение элемента данного тэга может принимать одно из нескольких заранее заданных значений. Список этих значений задается в текстовом поле ниже. Каждая строка текста в этом списке задает одно значение. Значение может быть снабжено комментарием, записанным после знака равенства '='. Например, список
CAD = Канадский доллар
USD = Доллар США
FR = Французский франк
задает три возможных значения - CAD, USD и FR. Комментарии после знака равенства будут показываться во время редактирования элемента, однако будут проигнорированы Редактором записей (только левая часть строки, до знака равенства, будет рассматриваться Редактором, как значение).
- Длина значения - для задания максимальной длины значения данного тэга.
- Кнопки "OK" и "Отмена" - понятно для чего.
См. также:
О "расширенной" поддержке пользовательских тэгов
Меню "Файл" - "Импорт из:" - "GEDCOM 5.5 файл"
Примечание: Тэги в программе "Родственники" почти нигде не представлены своими настоящими именами (INDI, FAM, SOUR и т.п.), а только своими краткими определениями (Родственник, Семья, Источник и т.п.)
Примечание: Изменение типа значения уже существующего пользовательского тэга также может привести к потере данных, если элементы данного тэга уже присутствуют в записях дерева. Например, если тип данных был "Ссылка", а вы сменили его на "Строка", то ссылка на запись неизбежно потеряется. Или при замене типа "Текст" на "Строка" из данных будут удалены все переводы строки, чтобы сделать текст однострочным. Программа проверяет, какие данные могут быть потеряны или изменены и предупреждает об этом. Тем не менее, будьте внимательны при смене типа значения пользовательского тэга!
|