XML+DMT

В этом разделе мы говорим об особенностях взаимодействия шаблонов DMT и карты на базе XMLNormal.dmf (то есть с обменным файлом формата XML).

Отметим, что подход XML+DMT с легкой руки разработчиков вытесняется в пользу XML+DMT+FastReport, становясь частью этой связки. И хотя на сегодня в поставке программы нет ни одного шаблона для “чистой” комбинации XML+DMT, подобный шаблон сравнительно несложно создать на базе шаблона для IN4.

Примечание

Технология создания шаблонов DMT для XML практически не отличается от изложенной в предыдущем разделе для IN4. Если вы пропустили этот раздел, вам придется к нему вернуться.

Информация из раздела «IN4+DMT» тем более полезна потому, что шаблоны DMT, размещенные в пакетах в папке Templates, которые работают на упомянутую выше связку XML+DMT+FastReport и о которых мы еще будем говорить далее в этой главе, строятся, фактически, по тем же правилам.

Если отбросить детали, то суть построения шаблона заключается в том, чтобы правильно извлечь информацию из исходной кадастровой карты. В этом смысле основная сложность формата XML в сравнении с IN4 связана с наличием в содержимом параметров служебных тегов языка XML, затрудняющих извлечение данных.

В помощь разработчику шаблона Digitals предлагает пару функций для работы со строками в формате XML. Формальное описание этих функций опять-таки находится в разделе «Производные параметры» в Гл.6, «Классификатор», а здесь мы дадим примеры использования.

XPT(P[ID7000500],"Region")

Возвращает название области из параметра ID7000500 “Місце розташування земельної ділянки”.

XPT(P[ID7000520],"/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/LastName")

Более сложный пример. Извлекает фамилию владельца из параметра “Блок опису усіх власників або користувачів земельної ділянки”. Здесь пришлось указывать полный XPath-путь к элементу данных.

Примечание

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

Из-за своей длины формулы с применением функции XPT смотрятся в шаблоне довольно неряшливо. Рассмотрите возможность их замены функциями SEF или FFF, “спрятав” длинные формулы во внешний файл.

XMP(Землі загального користування)

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

Вот как должна выглядеть таблица смежников, размещенная в шаблоне документов:

Від А до Б    XMP(Землі загального користування)
Від А до Б    XMP(Землі загального користування)