А. С. Гусаренко, канд. техн. наук, ФГБОУ ВПО «Уфимский государственный авиационный технический
университет» (УГАТУ), г. Уфа, [email protected]
Модели создания документов в формате Office Open XML на основе ситуационно-ориентированной базы данных
В статье предлагается динамическая модель СОБД, предусматривающей спецификации и новые элементы для создания готовых электронных документов на основе заготовок Office Open XML, подготовленных средствами текстовых процессоров . Статья показывает графические и эквивалентные текстовые средства, введенные в динамическую модель и интерпретируемые с помощью интерпретатора встроенных динамических моделей для решения задачи генерации документов . Интерпретатор встроенных динамических моделей работает с документами Office Open XML, используя технологию динамических DOM-объектов, при этом результирующие документы имеют варианты представления docx и vdx .
Ключевые слова: веб-приложение, база данных, динамическая модель, NoSQL, XML, DOM, РНР .
введение
Для развития концепции обработки XML-документов в ситуационно-ориентированных базах данных (СОБД) на основе динамических DOM-объектов, предложенной в работах [1-3], требуется решить задачу генерирования электронных документов. Электронные документы являются основой документо-ори-ентированных информационных систем, они должны содержать персонифицированные данные для использования их в информационной системе и выдачи их пользователю в виде результирующего документа. В до-кументо-ориентированных системах на базе СОБД часто требуется решать задачу генерирования готовых документов опосредованно через веб-приложение из XML-данных, содержащихся в ней и хранящихся на сервере. Причем создавать такой документ требуется не целиком, начиная с этапа его размещения в файловой системе сервера с созданием оформления и выстраиванием его внутренней структуры, а только наполнением данными и обогащением содержательным контентом с учетом персо-
нифицированной информации пользователя. Таким образом, задача генерирования упрощенно выглядит как создание заранее подготовленного электронного документа с помощью обычных средств, таких как текстовый процессор, а в дальнейшем заполнение его в информационной системе средствами СОБД.
Заготовка настраивается в ходе генерации, документ достраивается не оформлением, так как оформление уже заложено в заготовку, а персонифицированными данными, необходимыми пользователю. Заготовка документа представляет собой файл в формате Office Open XML, он представляет собой архив, в котором содержимое документов разбито на несколько файлов в формате XML, каждый из которых содержит спецификации оформления документа и данные, содержащиеся в документе. Примерами источников данных для СОБД в формате Office Open XML служат документы docx и vdx. По своей структуре они являются архивами, содержащими файлы XML, которые в СОБД могут обрабатываться с помощью технологии динамических DOM-объектов. Динамические DOM-объекты за-
Том 10. № 3 (57). 2015
полняются XML-данными, и в них загружаются XML-документы для обработки в СОБД. С помощью таких данных в документе описываются объекты и иерархические структуры данных. Для решения задачи генерирования документов интерпретатору встроенных динамических моделей требуется специально запрограммированная функциональность, а динамической модели — специальное лингвистическое обеспечение для динамической модели СОБД.
В статьях [1-7] рассматривались вопросы использования источников данных для создания контента и его трансформации для выдачи результата пользователю. Это было преимущественно содержимое веб-страниц, преобразованное с помощью XSLT, вопросы создания результирующих документов не рассматривались. Таким образом, необходим специальный инструментарий СОБД, реализующий задекларированную функциональность.
В данной статье рассматривается концепция по автоматическому генерированию контента из XML-данных базы данных и заготовок документов Office Open XML, ассоциированных с состояниями динамической модели СОБД, а также спецификации для работы с заготовками, необходимые для оснащения динамической модели DOM-элементов.
Вводные замечания
Данная статья является развитием работ по созданию инструментальных, лингвистических средств СОБД [3], в которых были разработаны средства спецификации динамических DOM-объектов. При генерировании структуры документа Office Open XML следует учитывать иерархическое содержимое пакета архива документа. Содержимое архива можно увидеть, если вновь созданному файлу документа присвоить расширение zip, а затем открыть архиватором. Открытый архив содержит иерархическую структуру из файлов рис. 1, отвечающих за его содержимое.
Основное текстовое содержание файла размещается в XML-файле document.xml. Структура документа, приведенная на рис. 1 в виде графической модели, имеет стандартный набор файлов и директорий. Все содержимое разделено на части согласно функциональному предназначению. Элемент связей пакета содержит XML-записи связей с другими частями документа, например на файл свойства ядра документа core.xml и файл с программно-определяемыми свойствами app.xml. Главный документ и его содержимое представлены в файле document. xml, в основном это текст, содержащийся в документе. Для достраивания колонтитулов документа и заголовков требуется редактировать файлы footer1.xml и header1.xml соответственно, так как все они нумеруются, файлы с названием header и footer будут иметь порядковые номера. Часть архива numbering.xml содержит в себе определения нумерованных параграфов документа, а также стилей для них. Настройки документа, в том числе и предварительно установленные, хранятся в файле settings.xml. Все файлы внутри архива документа имеют только XML-содержимое. Таким образом, есть возможность использования технологии обработки XML-документов архива с помощью динамических DOM-объектов, загружая туда заготовку по частям и обогащая ее персонифицированными данными из СОБД. Причем с помощью одной и той же технологии [8-11] станет возможным генерировать как документы docx, так и документы vdx. Широко используется способ программирования таких документов вручную [12-16], т. е. для каждого документа операции программируются отдельно на языке программирования приложения. При таком положении дел для снижения объема рутинной обработки частей документа требуется оснастить модель DOM-элементов специальными средствами достраивания частей документов (рис. 1) данными из СОБД, обрабатываемых в динамических DOM-объектах.
Таким образом, в исходной заготовке предусматриваются специальные заклад-
\ 63
Vol. 10. No. 3 (57). 2015
Ipkg document.docx.zip
—Ï3303 [Content_Types].xml —OJ _rels Ц*303 .rels ЕЦ docProps -£H3 app.xml W303 core.xml —OJ word
-£И3 document.xml -ЕЦ _rels
l-|3lff3 document.xml.rels —1303 comments.xml Часть комментариев
Элемент связи пакета
Часть файлов с программно-определяемыми свойствами
Часть файлов со свойствами ядра Часть главного документа
Часть элементов отношений
—(303 endnotes.xml —fiS3 fontTable.xml —ß03 footer1.xml —fiS3 footer2.xml —Î303 footer3.xml —£03 footer4.xml —ß03 footnotes.xml —ЙВ3 header1.xml —Î303 header2.xml —ß03 header3.xml —ßB3 header4.xml —ßS3 header5.xml —£03 header6.xml —Î303 numbering.xml —ßS3 settings.xml H303 styles.xml theme
theme1.xml
Часть с примечаниями Часть с таблицей шрифтов Части нижнего колонтитула
Часть сносок Части заголовка
Часть определения нумерации Часть настроек документа Часть определения стилей Часть темы
Рис. 1. Внутренняя структура архива документа Office Open XML Fig. 1. The internal structure of the document archive Office Open XML
ки w:bookmarkStart и w:bookmarkEnd для размещения в них персонифицированных данных. Закладка w:bookmarkStart используется для обозначения начала данных, а w:bookmarkEnd — для окончания области их размещения. Закладки из заготовки специфицируются в модели для того, чтобы заполнять их контентом. В модели требуется специфицировать лингвистические выражения для изменения содержимого закладок и других областей, в которые требуется разместить данные. Также требуются
спецификации переменных, в которых будут храниться персонифицированные данные и DOM-объекты, в которых они будут обрабатываться.
Подход, ориентированный на использование модели для генерации заготовок, предполагает расширение использования источников данных, а также расширение спецификаций для их определения в модели методами обновления и выполнением запросов к целевым узлам. В динамической модели к состояниям привязываются специ-
64 J
фикации DOM-объектов и вложенные определения источников данных вместе со спецификациями операций по генерации узлов заготовки. Также внутри состояний предусматриваются переменные для получения персонифицированных данных пользователя, используемых в DOM-объектах. Эти спецификации автоматически обрабатывает интерпретатор встроенных динамических моделей [1-3]. Исходя из этого DOM-объекты и обрабатываемые в них заготовки создаются и достраиваются автоматически с учетом персонифицированных данных, хранящихся в переменных, ассоциированных с состояниями модели. Ручное программирование не позволяет использовать модель для повышения уровня абстракции при использовании типовых операций генерирования, извлечения и фильтрации данных при обработке Office Open XML-заготовок и вывода результата в виде результирующего документа. В таком случае разумно оснастить этими функциями модель СОБД.
В предлагаемом подходе с состояниями динамической модели связаны:
• у DOM-элементов в состояниях динамической модели предусмотрены дочерние элементы-источники, которые регламентируют использование метода обработки данных, а также задают целевой узел и обновляемое значение, а дочерние элементы-приемники — метод сохранения архива заготовки и целевого файла в части архива;
• в ходе интерпретации динамической модели интерпретатором происходит автоматическое порождение DOM-объектов и выполнение спецификаций для вложенных источников и загрузка XML-данных в соответствии с заданным запросом по их извлечению, удалению,обновлению,сохранению и фильтрации.
DOCX-документы. Для сбора и обработки личных данных пользователя требуются глобальные переменные, для их определения используется символ QOb, в котором спецификация value указывает интерпретатору, какие данные сессионной переменной задействовать в состоянии динамиче-
ЕЕР Студент
Студент
ЧШЗ Семестр value="const::ses::Sem" Группа value="const::ses::GRUPPA"
-<50 Идентификатор студента
value="const::ses::Stud" -tdOi Студент
path="Studs/ses::Sem/::ses::Stud.xml" ^-dSm Студент
^—СН Студент method = "copy" L6GÖ Результат
-ВИ^ Загрузить схему
^—[ДТП Загрузить схему
caption = "Загрузить схему" L-Hüp Загрузить пояснительную записку
^—[Дп Студенты caption = "Загрузить пояснительную записку"
Рис. 2. Диаграмма динамической модели, в которой заданы элементы управления, с помощью которых происходит генерирование документов
Fig. 2. Diagram of the dynamic model in which the specified control by means of which documents are generated
ской модели СОБД. Заготовки docx рис. 4 загружаются в ходе интерпретации модели и заполняются персонифицированными данными из DOM-объекта Студент, который запрашивается из СОБД рис. 2, а затем отправляются пользователю рис. 3, для этого используется переход, обозначаемый символом, после EEp нажатия кнопки происходит генерирование результирующего документа и его отправка в браузер.
VDX-документы. Имеют внутреннее представление в виде XML, но не являются архивом со структурой, аналогичной рис. 1. Тем не менее это такое же XML-содержимое, которое требуется заполнить персонифицированными данными. Заготовки документов vdx рис. 3 также ассоциируются с состояниями динамической модели СОБД, для их генерации требуется загрузка внутренней структуры заготовки в DOM-объект. Модели требуются средства для спецификации операций обработки заготовок vdx, такие спецификации использует модель рис. 3.
\ 65
ЩЗ Студент Iflta Загрузить схему
ЧШЭ Выбрано
value="const::post::Stadia"
-<ШЭ ВыбранныеФормы value="const::VDX/ glb::Selected/glb::studId.vdx"
-£303 ВыбранныеФормы
path="glb::SelectedShapes"
-Î303 ВыбранныеФормы action="send"
Bp Результат
—Q33 Результат
Рис. 3. Диаграмма динамической модели с состояниями, в которой ассоциированы DOM-объекты со спецификациями генерирования Office Open XML документов Fig. 3. Diagram of the dynamic model with the states, which are associated DOM-objects with the specifications generation of Office Open XML documents
В заранее подготовленном документе размещаются закладки bookmark, которые аналогично docx документам являются контейнерами для пользовательских данных. В примере модели на рис. 3 готовый документ отправляется в браузер клиента при нажатии на кнопку Результат. Новый формат Visio 2013 vsdx представляет собой архив из XML-файлов, но в этой статье не рассматривается.
концепция генерирования персонифицированных документов с помощью DOM-объектов
Bookmark-закладки. Закладки в документе-заготовке необходимо заранее приготовить в средствах Word для последующей вставки на их места данных о пользователе. Для того чтобы вручную не обрабатывать каждую закладку документа, требуется использовать спецификации модели для автоматического заполнения их персонифицированными данными. При обработке модели интерпретатором динамических моделей СОБД закладки, ассоциированные с источником данных, заполняются автоматически.
Атрибуты описывают закладки в источнике данных и имеют вид <w:bookmarkStart w:id=«0» w:name=«Имя закладки» /> рис. 4. Для обработки этих спецификаций необходимо добавлять в интерпретатор функциональность по заполнению в DOM-объектах закладок, что позволяет создавать эти заполненные объекты, когда родительские состояния становятся текущими, и удалять содержимое закладок, когда состояние перестает быть текущим.
Это позволит снизить трудоемкость подготовки документов в DOM-объектах при обработке XML, а также задавать типовые операции преобразования XML-данных, для дополнительной обработки специфицировать процедуры обработки XML.
Целевые узлы targNode и значения updateValue. В модели описания источника СП, ранее введенного для источников динамических DOM-объектов [1-3], добавим конструкции задания целевого узла результирующего документа, где обращение к закладке по имени targNode = «//w:r [preceding-sibling::w::bookmarkStart/@w:nam e='тема'] [1]/w:t» дает доступ к ней, а значение updateValue = «dom::Stud#//TOPIC/ NAME» — к значению, вставляемому на ее место, в которое интерпретатор вставляет персонифицированный контент. Дальнейшая реализация идеи по сокращению трудоемкости требует последующего исследования вопросов по обеспечению источников данных.
Методы модификации заготовки updateNode и removeNode. Для того чтобы иметь возможность модифицировать и настраивать заготовку модели, требуются специальные методы обработки заготовок. Эти методы задают режим работы интерпретатора с XML-контентом. Минимальные необходимые методы, введенные в модель, называются по функциональному назначению.
Метод updateNode обновляет целевой узел, специфицированный в targNode значением updateValue. Для удаления или очищения требуемых узлов заготовки возможно, что в результирующей заготовке требуется
66
Том 10. № 3 (57). 2015
не только что-то вставить, а удалить для приведения документа в исходное состояние.
Результат вывода zipEntry и метод save результирующего документа. Для
указания интерпретатору части архива, которую следует обновлять, требуется спецификация части архива для вывода XML-контента. В модели указывается атрибут zipEntry и прописывается путь к файлу XML в архиве заготовки, который требуется обновить.
Для настройки заготовок используется специальный буфер сервера, который очищается и обновляется с помощью методов updateNode и targNode. С помощью zipEntry таким буфером можно сделать документ-заготовку. В таких условиях СОБД требуется оснастить данными спецификациями инструментарий, позволяющий обрабатывать и сохранять XML-документы в динамических DOM-объектах, находящихся как в оперативной, так и во внешней памяти.
Пример генерирования персонифицированных документов
Для иллюстрации предлагаемой концепции предлагается рассмотреть практический пример использования технологии динамических DOM-объектов при решении задачи генерирования персонифицированного документа пояснительной записки, аналогичный тому, что приводился в работах [1-3] со сведениями о студенте из СОБД.
Исходные данные. Данные о студентах хранятся в нумерованных файлах XML — в нашем примере будет один документ без номера Студенть/xml, которые расположены в папке XML сервера СОБД. На рис. 5 представлены концептуальные модели этих документов и тестовые экземпляры их содержимого. Документ Студенты.xml (рис. 5а) в корневом объекте «Студенты» может содержать несколько вложенных экземпляров объекта «студент» с атрибутами «код» (код студента) и «ФИО» (фамилия, имя, отчество студента), причем атрибут «код» является идентификатором. Документ (рис. 5а) со-
держит сведения о студенте. Аналогичным образом XML-документ Темы.xml (рис. 5б) в корневом объекте «Темы» может содержать несколько вложенных экземпляров объекта «тема» с атрибутами «номер темы» (код темы) и «название предмета» (с названием темы), причем атрибут «номер темы» является идентификатором.
Модель фрагмента этого документа (рис. 5б) содержит сведения о функциях и агрегатах в соответствии с заданием.
Документ-заготовка.xml (рис. 5в) в корневом объекте «тело документа» может содержать несколько вложенных экземпляров с персонифицированными данными соответствующего студента, с атрибутами «имя исполнителя», «группа» и «шифр специальности», а также персонифицированные сведения выданного студенту задания.
Модель экземпляра этого документа (рис. 5в) содержит сведения в закладке с идентификатором rsidRpr, эти сведения являются составными и включают год, курс, семестр, шифр специальности, название предмета, тип работы, группу и зачетку студента. Приведенный пример заключается в формировании документа заготовки (рис. 5в) на основе сведений документов о студенте и задании, загруженных в DOM-объекты из XML-документов СОБД.
Начальное состояние отображает форму запроса фамилии студента, для которого с помощью DOM-объектов запрашиваются данные для заготовки. Результат выводится в браузер в виде документа пояснительной записки. Тестовый экземпляр (рис. 5в) показывает, как интерпретатор обогащает заготовку с названием темы Вуз. Отдел охраны труда и датой выдачи задания студенту из документа Студенты.xml.
Динамическая модель. Основой приложения служит модель нового уровня абстракции, которая оснащена новыми спецификациями.
Динамическая модель данного приложения рассматривалась в работах [1-8], основными отличительными признаками модели веб-приложения, рассматриваемой
v_67
Vol. 10. No. 3 (57). 2015
ЩЭ Студент Uria Загрузить пояснительную записку ЧЩЭ Выбрано value="const::post::Stadia"
НШЭ ВыбраныФормы
value="const::VDX/glb::Selected/glb::studId.vdx" -ЧШЭ ВыбраныФормы
path="glb::SelectedShapes" -f3B3 Целевой документ
path="TMP/pz-glb::studId.docx" action="create" from="Blanks/ glb::Selected/pz.docx" type="zip" flags="CREATE" -IdOi Текст path="XSL/gen-zadanie-text.xsl"
Группы path="XML/groups.xml" -ШВ Группы
^—G3 Группы method = "copy" -GOm Тема
^—fTT Defs method = "copy" -C^m Студент
—СП Прицепим-группу dom="Группы" join="//gruppa" on="@id==att::gr" method = "copy" 1—GH Прицепим-тему dom="Тема" join="//TOPIC"
on="NOM==att::topicId" method = "copy" —Ш Шифр
value="dom::Stud#//gruppa/year const::. dom::Stud#//gruppa/ @semester const::. dom::Stud#//gruppa/@naprId const::.БД. КР. dom:: Stud#//stud[@id='glb::studId']/@gr const::.glb::studId" —Шт Целевой заголовок
—G3 Target zipEntry="word/header2.xml" —GH Вставь-шифр method="updateNode" targNode = "// w:r[preceding-sibling::w:bookmarkStart/ @w:name='колонтитул'][1]/w:t" updateValue="glb::shifr" —G3 Очистить закладки
method="removeNode" targNode="// w:bookmarkStart|//w:bookmarkEnd" 1—ШЭ Сохранить заголовок method="save" doc="Target" zipEntry="word/ header2.xml" —Целевой документ
^—G3 Target zipEntry="word/document.xml" —Щт Целевой документ
—G3 method="updateNode" targNode="//
w:r[preceding-sibling::w::bookmarkStart/ @w:name='тема'][1]/w:t" updateValue="dom::Stud#//TOPIC/NAME" onMiss="ignory" s—fW Вставить-тему2 method="updateNode" targNode="// w:r[preceding-sibling::w:bookmarkStart/ @w:name='тема2'][1]/w:t" updateValue="dom::Stud#// TOPIC/NAME" onMiss="ignory" —G3 Вставим-шифр1 method="updateNode" targNode="// w:r[preceding-sibling::w:bookmarkStart/ @w:name='шифр1'][1]/w:t" updateValue="const::glb::shifr" onMiss="ignory" —GH Вставим-функ1_1 method="updateNode"
targNode="//w:r[preceding-sibling::w:bookmarkStart/ @w:name='функ1_1'][1]/w:t" updateValue="dom::Stud#//FUNC[1]/FNAME" onMiss="ignory" —G3 Вставим-функ1_2 method="updateNode"
targNode="//w:r[preceding-sibling::w:bookmarkStart/ @w:name='функ1_2'][1]/w:t" updateValue="dom::Stud#//FUNC[1]/FNAME" onMiss="ignory"
[ Вставим-функ2_1 method="updateNode" targNode=7/w:r[preceding-sibling::w:bookmarkStart/ @ш:пате='функ2_1 l[1]/w:t" updateValue="dom::Stud#//FUNC[2]/FNAME" onMiss="ignory"
Вставим-функ2_2 method="updateNode"
targNode="//w:r[preceding-sibling::w:bookmarkStart/
@w:name='функ2_2'][1]/w:t"
updateValue="dom::Stud#//FUNC[2]/FNAME"
onMiss="ignory"
Вставим-функ2_2 method="updateNode"
targNode="//w:r[preceding-sibling::w:bookmarkStart/
@w:name='функ2_2'][1]/w:t"
updateValue="dom::Stud#//FUNC[2]/FNAME"
onMiss="ignory"
Вставим-функ3_1 method="updateNode"
targNode="//w:r[preceding-sibling::w:bookmarkStart/
@w:name='функ3_1'][1]/w:t"
updateValue="dom::Stud#//FUNC[3]/FNAME"
onMiss="ignory"
Вставим-функ3_2 method="updateNode"
targNode="//w:r[preceding-sibling::w:bookmarkStart/
@w:name='функ3_2'][1]/w:t"
updateValue="dom::Stud#//FUNC[3]/FNAME"
onMiss="ignory"
[ Вставим-функКомм1_1 method="updateNode" targNode="//w:r[preceding-sibling::w:bookmarkStart/ @w:name='функКомм1_1'][1]/w:t" updateValue="dom::Stud#//FUNC[1]/FCOMM" onMiss="ignory"
Вставим-функКомм2_1 method="updateNode"
targNode="//w:r[preceding-sibling::w:bookmarkStart/
@w:name='функКомм2_1'][1]/w:t"
updateValue="dom::Stud#//FUNC[2]/FCOMM"
onMiss="ignory"
Вставим-функКомм3_1 method="updateNode"
targNode="//w:r[preceding-sibling::w:bookmarkStart/
@w:name='функКомм3_1'][1]/w:t"
updateValue="dom::Stud#//FUNC[3]/FCOMM"
onMiss="ignory"
Вставим-сущ1 method="updateNode" targNode="// w:r[preceding-sibling::w:bookmarkStart/ @w:name='сущ1'][1]/w:t" updateValue="dom::Stud#// FUNC[1]/NAME" onMiss="ignory"
Вставим-сущ2 method="updateNode" targNode="// w:r[preceding-sibling::w:bookmarkStart/ @w:name='сущ2'][2]/w:t" updateValue="dom::Stud#// FUNC[1]/NAME" onMiss="ignory"
Вставим-сущ3 method="updateNode" targNode="// w:r[preceding-sibling::w:bookmarkStart/ @w:name='сущ3'][1]/w:t" updateValue="dom::Stud#// FUNC[3]/NAME" onMiss="ignory"
^рт Целевой документ
—СЗ Очистить закладки method="removeNode" targNode=l7/w:bookmarkStart|// w:bookmarkEnd" ^—ШЭ Сохранить документ method="save"
doc="Target" zipEntry="word/document.xml"
<-—^га Целевой action="close" -—Ата Целевой action="send" ✓—Ага Целевой action="drop" /•—ЕШ> Результат
ВОЛ Результат
Рис. 4. Диаграмма динамической модели в состоянии «Загрузить пояснительную записку», с которым ассоциированы динамические DOM-объекты со спецификациями генерирования персонифицированного Office Open XML документа «Пояснительная записка» Fig. 4. The diagram of the dynamic model in the «Upload explanatory note» state, which are associated dynamic DOM-objects with the specifications generation of personalized Office Open XML document
«Explanatory Note»
68
-çf> студент
•уденты
(xm) Темь
Lcf> стадия
■ код--------------------------------
> фио--------------------------------
» группа----------------------------
»дата получения задания
» название предмета---------
» курс-------------------------------
> семестр-------------------------
• номер темы
1с[>Тема
■ номер
>дата получения > название темы ытка сдачи
Ч^поп
■ номер темы
• название темы -
■ название предмета
■ описание
• дата начала -------------
» время начала
» дата успешного сканирования » время успешного сканирования » дата завершения » время завершения » замечания к документу » отметка о сдаче
а)
Документ-заготовка
Тел
о документа
—с^ функция 4
-• название функции -сГ> описание функции
Ь название описание
1ф> агрегат
[-• название ^описание .
-ф> строка
I-« гз1йРРг=м000Р482Р"
1-ф> закладка
и 2014-3.5.230700. БД. КР.ПИ-304.125401 -ф> строка
[-■ rsidR="00E4164F" Ц:[> закладка ^ id="9"
пате="тлИсполнитель" ---------------------
-ф> строка
к-и id="00B31400" -----------------
закладка ;
дата получения = "01.09.2014" -ф> строка
1~с[> закладка
и название предмета -с[> строка
rsidR="00E4164F" к-И rsidRPr="00802DDA" закладка
Вуз. Отдел охраны труда-
*-ф> строка
закладка к-с^. функция
b)
название функции -сТ> описание функции
Ь название описание
1сТ> агрегат
Ь название описание ^У
С)
Рис. 5. Диаграмма структур данных динамических DOM-объектов в состоянии «Загрузить пояснительную записку»: а — документ с данными студента; b — сведения о задании; c — персонифицированная Office Open XML заготовка документа Fig. 5. Diagram of data structures dynamic DOM-objects in the «Upload explanatory note»: a — data document the student; b — job information; c — Office Open XML personalized blank document
\ 69
Vol. 10. No. 3 (57). 2015
в данной работе, является задание спецификаций обработки заготовок документов XML с помощью элементов «dom», до этого с помощью данной структуры описывались только XML-документы во внешней памяти сервера СОБД. Введены новые спецификации в заготовках типа bookmark для вставки персонифицированных данных пользователей DOM-объектов. Примеры данных средств приведены на рис. 4 в состоянии «Загрузить пояснительную записку». Конструкция, обозначаемая bookmark, указывает интерпретатору, что в заготовке, значение «//w:r [preceding-sibling::w::bo okmarkStart/@w:name='тема'][1]/w:t» в под-состоянии «Студент» субмодели «Студенты» требует вставки из DOM-объекта значения updateValue «<dom::Stud#//TOPIC/NAME» с помощью метода updateNode, который из оперативной памяти в DOM-объект «Целевой документ» добавляет из DOM-объекта «Студент» номер группы студента и название темы. У каждого состояния динамической модели СОБД могут быть глобальные переменные, обозначаемые символом GQb, кроме того, они могут быть различного происхождения, например запрошенные из DOM-объекта «Студент» для переменной «Шифр». Для того чтобы получить результаты, пользователю требуются элементы управления, специфицируемые в модели, так называемые переходы ЕЕр, позволяющие использовать внутри них кнопки и вид-жеты [4-7]. Дальнейшая работа будет состоять в разработке пользовательских интерфейсов для получения результирующих документов.
Заключение
В данной статье рассмотрена задача генерирования документов Office Open XML в ситуационно-ориентированных базах данных из заранее подготовленных заготовок, созданных обычными средствами Word и Visio, а также введены в динамическую модель средства задания операций по обработке внутреннего содержимого
класса документов-заготовок, требующиеся для их персонификации. Сформирована концепция, которая заключается в использовании модели более высокого уровня абстракции для оснащения приложений, использующих в состояниях модели технологию динамических DOM-объектов для обработки XML-данных из источников данных СОБД. Примеры, приведенные и используемые в модели, рассмотрены без учета конкретной реализации технологий программирования.
Концепция основывается на технологии динамических DOM-объектов, ассоциированных с состояниями динамической модели СОБД, при этом создание Office Open XML документов в ходе интерпретации и загрузка с заданной обработкой осуществляются с учетом заданных условий автоматически. Конечный документ отправляется пользователю через браузер.
Основные отличительные признаки данной концепции следующие:
1) элементы состояния динамической модели ситуационно-ориентированной базы данных содержат ассоциированные с ними DOM-объекты со спецификациями обработки закладок в заранее подготовленной заготовке документа;
2) в процессе интерпретации динамической модели объекты создаются автоматически, загружаются XML-контентом, затем в соответствии с заданными условиями обработки формируется результирующий персонифицированный документ;
3) динамическая модель пополнилась дополнительными средствами для подключения и обработки Office Open XML заготовок в ситуационно-ориентированной базе данных;
4) модель использует два вида методов для модификации и настройки документа-заготовки updateNode и removeNode;
5) в модель введены спецификации targNode и updateValue, необходимые для задания целевых узлов, требующих автоматического обновления значений интерпретатором динамических моделей СОБД;
Том 10. № 3 (57). 2015
6) в модель введены спецификации zipEntry для обогащения конкретной части архива Office Open XML персонифицированными данными.
В соответствии с этой концепцией у специалиста появится возможность без ручного программирования создавать приложения, подключать в состояниях динамической модели Office Open XML источники и специфицировать для них условия обработки для получения персонифицированного документа. Дальнейшая разработка и реализация данной концепции связана с программной реализацией на платформе HSMI для обработки HSM динамической модели СОБД.
Затем начнется работа с гетерогенными источниками данных, будет рассмотрен текущий уровень развития ситуационно-ориентированных баз данных на концептуальном уровне на основе обзора СОБД и приложений на базе СОБД с позиции динамических систем. Планируется наметить направления развития исследований по проекту ситуационно-ориентированных баз данных, а также уделить внимание архитектуре СОБД по компонентам и структуре приложений, по уровням сервер приложений и сервер баз данных, детально разобрать два основных подхода к построению баз данных — СОБД (не реляционный — NoSQL) и уже существующий реляционный подход. На имеющееся обеспечение в реляционных базах данных будут даны описания схожих по функциональному назначению средств, разработанных в качестве подсистем СОБД. Подробно необходимо остановиться на архитектуре практической части СОБД, на таких компонентах, как буферные объекты, память текущего состояния, хранилище документов, иерархическая ситуационная модель. Следует привести используемые виды получаемого результата и структуру запросов к системе управления базой данных. Сформировать концепцию СОБД, описать, как происходит интерпретация, из чего состоит структура модели, как происходит обработка до-
кументов на практике, учесть содержимое буферных объектов, подмножества источников и приемников данных в состояниях СОБД и рассмотреть вопрос использования сторонних сервисов сети, используемых моделью СОБД в качестве подвида удаленных гетерогенных источников данных.
Список литературы
1. Гусаренко А. С. Обработка XML-документов в ситуационно-ориентированных базах данных на основе динамических DOM-объектов: автореферат дисс. на соискание ученой степени кандидата технических наук. Уфимский государственный авиационный технический университет. Уфа, 2013.
2. Гусаренко А. С., Миронов В. В. Алгоритмическое и лингвистическое обеспечение ситуационно-ориентированных баз данных на основе динамических DOM-объектов // Информационные и инфокоммуникационные технологии: сб. науч. трудов 8-й всероссийской зимней школы-семинара аспирантов и молодых ученых. Уфа: УГАТУ, 2013. Т. 1. С. 119-122.
3. Гусаренко А. С., Миронов В. В. Профилирование алгоритма ситуационно-ориентированной базы данных на основе динамических DOM-объектов // Информационные и инфо-коммуни-кационные технологии: сб. науч. трудов 8-й всероссийской зимней школы-семинара аспирантов и молодых ученых. Уфа: УГАТУ, 2013. Т. 1. С. 115-118.
4. Канашин В. В., Миронов В. В. Иерархические виджеты: опыт применения в веб-приложении на основе ситуационно-ориентированной базы данных // Вестник УГАТУ. 2013. Т. 18. № 2 (63). С. 185-196.
5. Канашин В. В., Миронов В. В. Иерархические виджеты: организация интерфейса пользователя в веб-приложениях на основе ситуационно-ориентированных баз данных // Вестник УГАТУ. 2013. Т. 17. № 2 (55). С. 138-149.
6. Канашин В. В., Миронов В. В. Иерархические виджеты: ввод и контроль данных пользователя в веб-приложениях на основе ситуационно-ориентированных баз данных // Вестник УГАТУ. 2013. Т. 17. № 5 (58). С. 166-176.
v^1
7. Канашин В. В., Миронов В. В. Иерархические виджеты: алгоритмы контроля данных пользователя в веб-приложениях на основе ситуационно-ориентированных баз данных // Вестник УГАТУ. 2014. Т. 18. № 1 (62). С. 204-213.
8. Макарова Е. С., Миронов В. В. Проектирование концептуальной модели данных для задач WebOLAP на основе ситуационно-ориентированной базы данных // Вестник УГАТУ. 2012. Т. 16. № 6 (51). С. 177-188.
9. Макарова Е. С., Миронов В. В. Функции аналитики в веб-приложениях на основе ситуационно-ориентированных баз данных // Вестник УГАТУ. 2013. Т. 17. № 5 (58). С. 150-165.
10. Миронов В. В., Гусаренко А. С. Ситуационно-ориентированные базы данных: концепция управления XML-данными на основе динамических DOM-объектов // Вестник УГАТУ. 2012. Т. 16. № 3 (48). С. 159-172.
11. Миронов В. В., Гусаренко А. С. Динамические DOM-объекты в ситуационно-ориентированных базах данных: лингвистическое и алгоритмическое обеспечение источников данных // Вестник УГАТУ. 2012. Т. 16. № 6 (51). С. 167-176.
12. Миронов В. В., Юсупова Н. И., Шакиро-ва Г. Р. Ситуационно-ориентированные базы данных: концепция, архитектура, XML-реализация // Вестник УГАТУ. 2010. Т. 14. № 2 (37). С. 233-244.
13. Миронов В. В., Юсупова Н. И., Шакирова Г. Р. Ситуационно-ориентированные базы данных: внешние представления на основе XSL // Вестник УГАТУ. 2010. Т. 14. № 4 (39). С. 200-209.
14. Миронов В. В., Маликова К. Э. Интернет-приложения на основе встроенных динамических моделей: идея, концепция, безопасность // Вестник УГАТУ. 2009. Т. 13. № 2 (35). С. 167-179.
15. Миронов В. В., Маликова К. Э. Интернет-приложения на основе встроенных динамических моделей: архитектура, структура данных, интерпретация // Вестник УГАТУ. 2010. Т. 14. № 1 (36). С. 154-163.
16. Миронов В. В., Маликова К. Э. Интернет-приложения на основе встроенных динамических моделей: элементы управления пользовательского интерфейса // Вестник УГАТУ. 2010. Т. 14. № 5 (40). С. 170-175.
17. Batory D. Multilevel models in model-driven engineering, product lines, and metaprogramming // Ibm Systems Journal. 2006. Vol. 45. No. 3. C. 527-539.
18. Benzaken V. and others. Static and dynamic semantics of NoSQL languages // 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL' 2013 (Rome, 23 through 25 January 2013) 2013. C. 101-113.
19. Case P. Enhancing XML search with XQuery 1.0 and XPath 2.0 full-text // Ibm Systems Journal. 2006. Vol. 45. No. 2. C. 353-360.
20. Chen Y. J., Huck G. On the evaluation of path-oriented queries in document databases // Database and Expert Systems Applications. 2001. Vol. 2113. C. 953-962.
21. Dejanovic I., Milosavljevic G., Perisic B., Tumbas M. A. Domain-Specific Language for Defining Static Structure of Database Applications // Computer Science and Information Systems. 2010. Vol. 7. No. 3. C. 409-440.
22. Dekeyser S., Hidders J., Paredaens J. A transaction model for XML databases // World Wide Web-Internet and Web Information Systems. 2004. Vol. 7. No. 1. C. 29-57.
23. Han W. and others. Leveraging spatial join for robust tuple extraction from web pages // Information Sciences, 2014. 10 March. Vol. 261. P. 132-148.
24. He W. & Zha J. Application of the indent conversion based on XML and DOM // Paper presented at the Proceedings — 2013 International Conference on Computational and Information Sciences, ICCIS'2013. P. 411-413.
25. Herskovits E. H., Chen R. Integrating Data-Mining Support into a Brain-Image Database Using Open-Source Components // Advances in Medical Sciences. 2008. Vol. 53. No. 2. C. 172-181.
26. Jea K. F, Chang T. P., Chen S. Y. A Semantic-Based Protocol for Concurrency Control in DOM Database Systems // Journal of Information Science and Engineering. 2009. Vol. 25. No. 5. P. 1617-1639.
27. Kaur K., Rani R. Modeling and querying data in NoSQL databases // Proc. of IEEE International Conference on Big Data 2013 (Santa Clara, CA, United States, 6 October through 9 October 2013). Santa Clara, United States, 2013. P. 1-7.
28. Kudrass T., Conrad M. Management of XML documents in object-relational databases // Xml-
Том 10. № 3 (б?). 2015
Based Data Management and Multimedia Engi-neering-Edbt 2002 Workshops. 2002. Vol. 2490. Р. 210-227.
29. Nassis V, Dillon T. S., Rajagopalapillai R., Raha-yu W. An XML Document Warehouse model // Database Systems for Advanced Applications, Proceedings. 2006. Vol. 3882. Р. 513-529.
30. O'Connor B. D., Merriman B., Nelson S. F. Se-qWare Query Engine: storing and searching sequence data in the cloud // Bmc Bioinformatics. 2010. Vol. 11. C. 9.
31. Panach J. I., Juristo N., Pastor O. Including Functional Usability Features in a Model-Driven Development Method // Computer Science and Information Systems. 2013. Vol. 10. No. 3. Р. 999-1024.
32. Pokorny J. New database architectures: Steps towards big data processing // Proceedings of the IADIS International Conference Intelligent Systems and Agents 2013 ECDM' 2013, (Prague, Czech Republic, 22 July through 24 July 2013). Prague, Czech Republic, 2013. P. 3-10.
33. Rose K. H., Malaika S., Schloss R. J. Virtual XML: A toolbox and use cases for the XML world view // Ibm Systems Journal. 2006. Vol. 45. No. 2. Р. 411-424.
34. Strauch C., Kriha W. NoSQL databases. URL: http://www.christof-strauch.de/nosqldbs. pdf (дата обращения 07.11.2012).
35. Sladic G., Milosavljevic B., Konjovic Z., Vida-kovic M., Access Control Framework for XML Document Collections // Computer Science and Information Systems. 2011. Vol. 8. No. 3. Р. 591-609.
36. Sudarsan R., Gray J., Metamodel search: Using XPath to search domain-specific models // Journal of Research and Practice in Information Technology. 2006. Vol. 38. No. 4. Р. 337-351.
37. Su-Cheng H., Lee C. S. Efficient Preprocesses for Fast Storage and Query Retrieval in Native XML Database // Iete Technical Review. 2009. Vol. 26. No. 1. Р. 28-40.
38. Takahashi K. [and others] Design and evaluation of lifelog mashup platform with NoSQL database / // Proc. of 15th International Conference on Information Integration and Web-Based Applications and Services, iiWAS'2013 (Vienna, Austria, 2-4 december. 2013) 2013. Р. 133-139.
39. Tang N., Yu J. X., Wong K. F, Li J. X., Fast XML structural join algorithms by partitioning // Journal of Research and Practice in Information Technology. 2008. Vol. 40. No. 1. P. 33-53.
References
1. Gusarenko A. S. Obrabotka XML-documentov v sit-uationno-orientirovannih bazah dannih na osnove dynamicheskih DOM-objectov. Thesis abstract. dokt. tekhn. nauk [Handling XML-documents in situationally-oriented databases based on dynamic DOM-objects]. Ufa, UGATU Publ., 2013, 16 p. (in Russian).
2. Mironov V. V., Gusarenko A. S. Algoritmicheskoe i lingvisticheskoe obespechenie situacionno-orien-tirovannyh baz dannyh na osnove dinamicheskih DOM-objektov [Algorithmic and and linguistic support of situationally-oriented databases based on dynamic DOM-objects] Informacionnye i infokom-munikacionnye tehnologii: sb. nauch. trudov «8-j vserossijskoj zimnej shkoly-seminara aspirantov i molodyh uchenyh» [in Proc. «8th Workshop of winter school postgraduates and young researchers»]. Ufa, 2013, vol. 1, pp. 119-122.
3. Mironov V. V., Gusarenko A. S. Profilirovanie al-goritma situacionno-orientirovannoj bazy dannyh na osnove dinamicheskih DOM-objektov [Profiling algorithm of situationally-oriented database based on dynamic DOM-objects] Infor-macionnye i infokommunikacionnye tehnologii: sb. nauch. trudov «8-j vserossijskoj zimnej shko-ly-seminara aspirantov i molodyh uchenyh» [in Proc. 8th Workshop of winter school postgraduates and young researchers]. Ufa, 2013, vol. 1, pp. 115-118.
4. Mironov V. V., Kanashin V. V. Hierarchical widgets: experience of use in the web application on the basis of situation-oriented database. Vestnik UGATU — Announcer UGATU, 2014, vol. 18, no. 2 (63), pp. 185-196 (in Russian).
5. Mironov V. V., Kanashin V. V. Hierarchical widgets: user interface organization in web applications on the basis of situation-oriented databases. Vestnik UGATU — Announcer UGATU, 2013, vol. 17, no. 2 (55), pp. 138-149 (in Russian).
6. Mironov V. V., Kanashin V. V. Hierarchical widgets: input and control of the user data in web applications on the basis of situation-oriented databas-
Vi3
es. Vestnik UGATU — Announcer UGATU, 2013, vol. 17, no. 5 (58), pp. 166-176 (in Russian).
7. Mironov V. V., Kanashin V. V. Hierarchical widgets: user data control algorithms in web applications on the basis of situation-oriented data-bases. Vestnik UGATU — Announcer UGATU, 2014, vol. 18, no. 1 (62), pp. 204-213 (in Russian).
8. Makarova E. S., Mironov V. V. Web OLAP conceptual data model design on the basis of situation-oriented database. Vestnik UGATU — Announcer UGATU,
2012, vol. 16, no. 6 (51), pp. 177-188 (in Russian).
9. Makarova E. S., Mironov V. V. Analytical functions in web applications based on situation-oriented databases. Vestnik UGATU — Announcer UGATU,
2013, vol. 17, no. 5 (58), pp. 150-165 (in Russian).
10. Mironov V. V., Gusarenko A. S. Situationally-orient-ed databases: the concept of managing XML-data based on dynamic DOM-objects. Vestnik UGATU — Announcer UGATU, 2012, vol. 16, no. 3 (48), pp. 159-172 (in Russian).
11. Mironov V. V., Gusarenko A. S. Dynamic DOM-objects in situationally-oriented databases: ling-ware and knoware of data sources, Vestnik UGATU — Announcer UGATU, 2012, vol. 16, no. 6 (51), pp. 167-176 (in Russian).
12. Mironov V. V., Yusupova N. I., Shakirova G. R. Situation-oriented databases: concept, architecture, XML realization. Vestnik UGATU — Announcer UGATU, 2010, vol. 14, no. 4 (39), pp. 200-209 (in Russian).
13. Mironov V. V., Yusupova N. I., Shakirova G. R. Situation-oriented databases: external view in the basis of XSL. Vestnik UGATU — Announcer UGATU, 2010, vol. 14, no. 2 (37), pp. 233-244, (in Russian).
14. Mironov V. V., Malikova K. E. Internet applications based on embedded dynamic models: idea, concept. Vestnik UGATU — Announcer UGATU, 2009, vol. 13, no. 2 (35), pp. 167-179, (in Russian).
15. Mironov V. V., Malikova K. E. Internet applications based on embedded dynamic models: architecture, data structure, interpretation. Vestnik UGATU — Announcer UGATU, 2010, vol. 14, no. 1 (36), pp. 154-163 (in Russian).
16. Mironov V. V., Malikova K. E. Internet applications based on embedded dynamic models: user interface controls. Vestnik UGATU — Announcer UGATU, 2010, vol. 14, no. 5 (40), pp. 170-175 (in Russian).
17. Batory D. Multilevel models in model-driven engineering, product lines, and metaprogramming. Ibm Systems Journal, 2006, vol. 45, no. 3, pp. 527-539.
18. Benzaken V. et al. Static and dynamic semantics of NoSQL languages [Proc. «40th Annual ACM SIG-PLAN-SIGACT Symposium on Principles of Programming Languages»]. Rome, 2013, pp. 101-113.
19. Case P., Enhancing XML search with XQuery 1.0 and XPath 2.0 full-text. Ibm Systems Journal, 2006, vol. 45, no. 2, pp. 353-360.
20. Chen Y. J., Huck G. On the evaluation of path-oriented queries in document databases, Database and Expert Systems Applications, 2001, vol. 2113, pp. 953-962.
21. Dejanovic I., Milosavljevic G., Perisic B., Tumbas M. A. Domain-Specific Language for Defining Static Structure of Database Applications. Computer Science and Information Systems, 2010, vol. 7, no. 3, pp. 409-440.
22. Dekeyser S., Hidders J., Paredaens J. A transaction model for XML databases. World Wide WebInternet and Web Information Systems, 2004, vol. 7, no. 1, pp. 29-57.
23. Han W., et al., Leveraging spatial join for robust tuple extraction from web pages. Information Sciences, 2014, vol. 261, pp. 132-148.
24. He W., Zhai J. Application of the indent conversion based on XML and DOM. [Proc. «International Conference on Computational and Information Sciences»], 2013, vol. 1, pp. 411-413.
25. Herskovits E. H., Chen R. Advances in Medical Sciences. Integrating Data-Mining Support into a Brain-Image Database Using Open-Source Components, 2008, vol. 53, no. 2, pp. 172-181.
26. Jea K. F., Chang T. P., Chen S. Y. A Semantic-Based Protocol for Concurrency Control in DOM Database Systems. Journal of Information Science and Engineering, 2009, vol. 25, no. 5, pp. 1617-1639.
27. Kaur K., Rani R. Modeling and querying data in NoSQL databases. [Proc. of IEEE International Conference on Big Data 2013]. Santa Clara, 2013, pp. 1-7.
28. Kudrass T., Conrad M. Management of XML documents in object-relational databases.xml-Based Data Management and Multimedia Engi-neering-Edbt 2002 Workshops, 2002, vol. 2490, pp. 210-227.
7±J
Том 10. № 3 (57). 2015
29. Nassis V., Dillon T. S., Rajagopalapillai R., Raha-yu W. An XML Document Warehouse model. Database Systems for Advanced Applications, Proceedings, 2006, vol. 3882, pp. 513-529.
30. O'Connor B. D., Merriman B., Nelson S. F. SeqWare Query Engine: storing and searching sequence data in the cloud. Bmc Bioinformatics, 2010, vol. 11, p. 9.
31. Panach J. I., Juristo N., Pastor O. Usability Features in a Model-Driven Development Method. Computer Science and Information Systems, 2013, vol. 10, no. 3, pp. 999-1024.
32. Pokorny J., New database architectures: Steps towards big data processing [Proc. of the IADIS International Conference Intelligent Systems and Agents]. Prague, 2013, pp. 3-10.
33. Rose K. H., Malaika S., Schloss R. J. Virtual XML: A toolbox and use cases for the XML world view. Ibm Systems Journal, 2006, vol. 45, no. 2, pp. 411-424.
34. Strauch C., Kriha W. (2012, Nov. 11). NoSQL databases. URL: (http://www.christof-strauch.de/ nosqldbs. pdf) (accessed 25.10.2013).
35. Sladic G., Milosavljevic B., Konjovic Z., Vidakov-ic M. Access Control Framework for XML Document Collections. Computer Science and Information Systems, 2011, vol. 8, no. 3, pp. 591-609.
36. Sudarsan R., Gray J. Metamodel search: Using XPath to search domain-specific models. Journal of Research and Practice in Information Technology, 2006, vol. 38, no. 4, pp. 337-351.
37. Su-Cheng H., Lee C. S. Efficient Preprocesses for Fast Storage and Query Retrieval in Native XML Database. lete Technical Review, 2009, vol. 26, no. 1, pp. 28-40.
38. Takahashi K. et al. Design and evaluation of lifelog mashup platform with NoSQL database. [Proc. 15th Int. Conference on Information Integration and Web-Based Applications and Services]. Vienna, 2013, pp. 133-139.
39. Tang N., Yu J. X., Wong K. F., Li J. X. Fast XML structural join algorithms by partitioning. Journal of Research and Practice in Information Technology, 2008, vol. 40, no. 1, pp. 33-53.
A. Gusarenko, Ufa State Aviation Technical University (UGATU), Ufa, Russia, [email protected]
Model for creating documents in OFFICE OPEN XML format based on situationally-oriented databases
Article uses XML-processing documents in situationally-oriented databases based on dynamic DOM-objects for the task of generating personalized documents. The paper proposes a dynamic model SOBD providing specifications and new elements to create a finished electronic documents based on the Office Open XML blanks prepared by means of word processors. In the states of the dynamic model blanks are generated using information from XML documents SOBD server web application. The model in this paper allows the specification of routine operations to generate documents at a higher level of abstraction, using the syntax model SOBD. The article shows the graphical equivalents, and text tools introduced in the dynamic model and interpreted using the interpreter embedded dynamic models for solving the problem of generation of documents. Interpreter embedded dynamic models works with documents Office Open XML, using the technology of dynamic DOM-objects, while the resulting documents have ways of representing docx and vdx. The work looks at ways to specification of sources and processing XML-based data dynamic DOM-objects bound to the states of the dynamic model. Proposed to implement the model on the platform PHP using blanks docx and vdx.
Keywords: web-application; dynamic model; NoSQL; XML; DOM; PHP. About author: A. Gusarenko, PhD in Computer Science
For citation: Gusarenko A. Model for creating documents in OFFICE OPEN XML format based on situationally-oriented databases. Prikladnaya Informatika — Journal of Applied Informatics, 2015, vol. 10, no. 3 (57), pp. 62-75 (in Russian).