RU2613026C1 - Method of preparing documents in markup languages while implementing user interface for working with information system data - Google Patents

Method of preparing documents in markup languages while implementing user interface for working with information system data Download PDF

Info

Publication number
RU2613026C1
RU2613026C1 RU2015141532A RU2015141532A RU2613026C1 RU 2613026 C1 RU2613026 C1 RU 2613026C1 RU 2015141532 A RU2015141532 A RU 2015141532A RU 2015141532 A RU2015141532 A RU 2015141532A RU 2613026 C1 RU2613026 C1 RU 2613026C1
Authority
RU
Russia
Prior art keywords
template
elements
entity class
entity
data
Prior art date
Application number
RU2015141532A
Other languages
Russian (ru)
Inventor
Павел Юрьевич Лысанов
Original Assignee
Общество с ограниченной ответственностью "Интерсофт"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Интерсофт" filed Critical Общество с ограниченной ответственностью "Интерсофт"
Priority to RU2015141532A priority Critical patent/RU2613026C1/en
Application granted granted Critical
Publication of RU2613026C1 publication Critical patent/RU2613026C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/114Pagination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: stages of the method for preparing the documents in markup languages while implementing the user interface for working with the information system data are carried out, while at the method stages: metadata are formed for at least one entity class, its attributes and data sets, the data sets elements comprising at least data sets fields and the aggregate functions of data sets; the template of presentation of above entity class is formed, consisting of at least one document formed in at least one markup language; the link of the template with the entity class is formed and saved; the template is displayed, the links of the template elements with the entity class attributes, data sets, their fields and aggregate functions are formed and saved. Wherein the link is formed and saved, containing the identifier of a previously selected template element and the identifier of an entity class attribute, or a data set, or a data set field, or an aggregate dataset function, selected at the previous step.
EFFECT: reducing the time spent for the documents preparation.
19 cl, 14 dwg

Description

Изобретение относится к области пользовательских интерфейсов, точнее к пользовательским интерфейсам для работы с данными в компьютерных информационных системах.The invention relates to the field of user interfaces, and more specifically to user interfaces for working with data in computer information systems.

УРОВЕНЬ ТЕХНИКИBACKGROUND

Данные в компьютерных информационных системах обычно обрабатывают как экземпляры сущностей, имеющих некоторый постоянный или переменный набор атрибутов. В настоящее время широко распространено использование в компьютерных информационных системах языков разметки, включая, но не ограничиваясь, HTML и XML, для хранения, передачи, публикации и других задач работы с данными, в том числе и для реализации пользовательского интерфейса. При этом, возможно, наибольшую популярность приобрели способы, когда значения атрибутов экземпляров сущностей информационной системы включают в документы на языках разметки и предоставляют пользователю для обработки в браузере. Пользователь может просматривать и редактировать значения атрибутов экземпляров сущностей в браузере, а также инициировать сохранение измененных значений в информационной системе. Следует подчеркнуть, что в документах на языках разметки, кроме собственно данных, присутствуют вспомогательные элементы, которые определяют стили и/или местоположение отображения данных в браузере, а также определяют смысловое значение данных. Дополнительно, в таких документах могут присутствовать элементы оформления (например, фоновые изображения), вспомогательные текстовые фрагменты (например, поясняющие надписи) и другие элементы, не относящиеся к данным.Data in computer information systems is usually treated as instances of entities that have some constant or variable set of attributes. Currently, the use of markup languages in computer information systems is widespread, including, but not limited to, HTML and XML for storing, transmitting, publishing, and other tasks of working with data, including for implementing the user interface. At the same time, the methods have become most popular when the attribute values of instances of entities of the information system are included in documents in markup languages and provided to the user for processing in a browser. The user can view and edit attribute values of entity instances in the browser, as well as initiate the saving of changed values in the information system. It should be emphasized that in documents in markup languages, in addition to the actual data, there are auxiliary elements that determine the styles and / or location of the data display in the browser, as well as determine the semantic meaning of the data. Additionally, such documents may include design elements (for example, background images), auxiliary text fragments (for example, explanatory labels) and other elements that are not related to data.

Для того чтобы предоставить пользователю экземпляр сущности информационной системы для обработки в браузере, требуется разместить значения атрибутов экземпляра сущности (данные) в документе на языке разметки.In order to provide the user with an instance of an entity of an information system for processing in a browser, it is required to place the values of the attributes of the entity instance (data) in a document in a markup language.

Из уровня техники известен способ, при котором в документы на языках разметки внедряют блоки программного кода, которые обрабатывают препроцессором и при этом блоки кода заменяют на результат работы этого кода. Данный способ требует дополнительных специальных знаний, по крайней мере, синтаксиса языка программирования, на котором формируют блоки программного кода, внедряемые в документы на языках разметки. Также данный способ требует дополнительных затрат времени на внедрение в документы на языках разметки блоков программного кода, подлежащего обработке препроцессором.The prior art method is known in which blocks of program code are inserted into documents in markup languages, which are processed by a preprocessor, and code blocks are replaced with the result of this code. This method requires additional special knowledge, at least of the syntax of the programming language, which form blocks of program code that are embedded in documents in markup languages. Also, this method requires additional time for the implementation of documents in markup languages of blocks of program code to be processed by the preprocessor.

Также известен способ, при котором в документы на языках разметки, в места, предназначенные для помещения данных, вставляют специальные символы и связанные с ними переменные, которые заменяют данными в процессе подготовки к передаче в браузер. Для обработки таких документов, также называемых шаблонами, используются так называемые процессоры шаблонов, например Apache Velocity. Данный способ требует дополнительных специальных знаний, по крайней мере, синтаксиса процессора шаблонов. Также данный способ требует дополнительных затрат времени на внедрение в документы на языках разметки дополнительных символов и переменных и их периодическую актуализацию в случае изменения или развития синтаксиса процессора шаблонов.A method is also known in which special characters and related variables are inserted into documents in markup languages, in places intended for placing data, which are replaced by data in preparation for transferring to the browser. To process such documents, also called templates, so-called template processors, such as Apache Velocity, are used. This method requires additional specialized knowledge, at least of the syntax of the template processor. Also, this method requires additional time for introducing additional symbols and variables into documents in markup languages and their periodic updating in case of change or development of template processor syntax.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Далее представлено упрощенное описание сущности технического решения для обеспечения основного понимания некоторых аспектов. Эта сущность не является обширным обзором. Она не предназначена для идентификации ключевых или критических элементов технического решения. Единственная цель состоит в том, чтобы представить некоторые концепции в упрощенной форме как вводную часть к более подробному описанию, которое представлено позднее.The following is a simplified description of the essence of the technical solution to provide a basic understanding of some aspects. This entity is not an extensive overview. It is not intended to identify key or critical elements of a technical solution. The sole purpose is to present some concepts in a simplified form as an introduction to the more detailed description that is presented later.

Данное техническое решение направлено на устранение недостатков, присущих известным решениям из уровня техники.This technical solution is aimed at eliminating the disadvantages inherent in known solutions from the prior art.

Техническим результатом является оптимизация процесса подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы, уменьшение временных затрат при подготовке документов и упрощение их последующей поддержки. Технический результат обусловлен исключением необходимости внедрения в документы на языках разметки дополнительной информации, предназначенной для управления отображением данных информационной системы в составе документов. Дополнительными эффектами являются: повышение удобства подготовки документов на языках разметки к использованию при реализации пользовательского интерфейса для работы с данными информационной системы и снижение требований к специальным знаниям пользователей, формирующих эти документы.The technical result is to optimize the process of preparing documents in markup languages when implementing a user interface for working with information system information, reducing time spent on preparing documents and simplifying their subsequent support. The technical result is due to the exclusion of the need to introduce additional information in documents in markup languages designed to control the display of information system information as a part of documents. Additional effects are: improving the convenience of preparing documents in markup languages for use in the implementation of the user interface for working with information system information and reducing the requirements for special knowledge of users who generate these documents.

Указанный технический результат достигается благодаря способу подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы, в котором формируют метаданные для, по крайней мере, одного класса сущности, его атрибутов и наборов данных, элементов наборов данных, включающих, по крайней мере, поля наборов данных и агрегатные функции наборов данных 154 (Фиг. 14); формируют шаблон представления экземпляров вышеупомянутого класса сущности, состоящий, по крайней мере, из одного документа, сформированного на, по крайней мере, одном языке разметки 155 (Фиг. 14); формируют и сохраняют связь шаблона и класса сущности 156 (Фиг. 14); отображают шаблон, формируют и сохраняют связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями 157 (Фиг. 14), при этом: выбирают элемент шаблона и отображают информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях; выбирают атрибут класса сущности, или набор данных, или поле набора данных, или агрегатную функцию набора данных; формируют и сохраняют связь, содержащую идентификатор выбранного ранее элемента шаблона и идентификатор выбранного на предыдущем шаге атрибута класса сущности, или набора данных, или поля набора данных, или агрегатной функции набора данных.The specified technical result is achieved due to the method of preparing documents in markup languages when implementing a user interface for working with information system information, in which metadata is generated for at least one entity class, its attributes and data sets, data set elements, including at least least, the fields of data sets and the aggregate functions of data sets 154 (Fig. 14); form a template for representing instances of the aforementioned entity class, consisting of at least one document generated in at least one markup language 155 (Fig. 14); form and save the relationship of the template and entity class 156 (Fig. 14); display a template, form and save relationships of template elements with attributes of an entity class, data sets, their fields and aggregate functions 157 (Fig. 14), while: select a template element and display information about attributes of an entity class available for forming a connection, data sets, their fields and aggregate functions; selecting an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set; form and save a link containing the identifier of the previously selected template element and the identifier of the attribute of the entity class selected in the previous step, or the data set, or the data set field, or the aggregate function of the data set.

В некоторых вариантах осуществления технического решения наборы данных содержат значения атрибутов и значения агрегатных функций, вычисленные на основе значений этих атрибутов, причем атрибуты принадлежат экземплярам сущностей, связанным с представляемым экземпляром сущности.In some embodiments of the technical solution, the data sets contain attribute values and aggregate function values calculated based on the values of these attributes, the attributes belonging to entity instances associated with the entity being represented.

В некоторых вариантах осуществления технического решения языком разметки является HTML, или XML, или XHTML, или DocBook.In some embodiments of the technical solution, the markup language is HTML, or XML, or XHTML, or DocBook.

В некоторых вариантах осуществления технического решения шаблон формируют при помощи текстовых редакторов с подсветкой синтаксиса, или WYSIWYG-редакторов, или онлайн-редакторов.In some embodiments of the technical solution, the template is formed using text editors with syntax highlighting, or WYSIWYG editors, or online editors.

В некоторых вариантах осуществления технического решения элементам шаблона, предназначенным для представления значений атрибутов экземпляра класса сущности, устанавливают значения, по типу данных и размеру соответствующие атрибутам класса сущности.In some embodiments of the technical solution, the elements of the template intended to represent the attribute values of an instance of an entity class are set to values corresponding to the attributes of the entity class by data type and size.

В некоторых вариантах осуществления технического решения элементам шаблона, предназначенным для представления элементов наборов данных, устанавливают значения, по типу данных и размеру соответствующие элементам наборов данных.In some embodiments of the technical solution, the elements of the template for representing the elements of the data sets are set to values according to the type of data and size corresponding to the elements of the data sets.

В некоторых вариантах осуществления технического решения в шаблоне представления экземпляров класса сущности дополнительно формируют группы элементов для представления элементов наборов данных и создают структурные элементы, являющиеся корневыми элементами фрагментов иерархической структуры документа, в которые входят все элементы соответствующих упомянутых групп элементов.In some embodiments of the technical solution, in the template for representing instances of an entity class, groups of elements are additionally formed for representing elements of data sets and structural elements are created that are root elements of fragments of the hierarchical structure of the document, which include all elements of the corresponding mentioned element groups.

В некоторых вариантах осуществления технического решения сформированный шаблон сохраняют на сервере в БД.In some embodiments of the technical solution, the generated template is stored on the server in the database.

В некоторых вариантах осуществления технического решения информацию о сформированной связи шаблона и класса сущности сохраняют на сервере в БД.In some embodiments of the technical solution, information about the formed relationship between the template and the entity class is stored on the server in the database.

В некоторых вариантах осуществления технического решения в составе информации о сформированной связи шаблона и класса сущности дополнительно сохраняют идентификатор типа шаблона и идентификатор языка пользователей, с использованием которого сформированы значения вспомогательных элементов шаблона.In some embodiments of the technical solution, the identifier of the type of the template and the identifier of the user language, with which the values of the auxiliary elements of the template are generated, are additionally stored in the information about the formed relationship between the template and the entity class.

В некоторых вариантах осуществления технического решения перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, подключающий библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.In some embodiments of the technical solution, before displaying the template, the server retrieves the template from the database and embeds an element with the identifier of the entity class into it, using information about the relationship between the template and the entity class, and an element that connects the library of program code designed to provide user actions for creating and saving relations of template elements with attributes of an entity class, data sets, their fields and aggregate functions.

В некоторых вариантах осуществления технического решения библиотеку программного кода реализуют на языке программирования, поддерживаемом браузером.In some embodiments of the technical solution, the library of program code is implemented in a programming language supported by the browser.

В некоторых вариантах осуществления технического решения языком программирования, поддерживаемым браузером, является JavaScript или Dart.In some embodiments of the technical solution, the programming language supported by the browser is JavaScript or Dart.

В некоторых вариантах осуществления технического решения библиотеку программного кода располагают на удаленном сервере, доступ к которому осуществляют по Internet.In some embodiments of the technical solution, the library of program code is located on a remote server accessed via the Internet.

В некоторых вариантах осуществления технического решения перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, содержащий программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.In some embodiments of the technical solution, before displaying the template, the server extracts the template from the database and injects into it an element with the identifier of the entity class, using information about the relationship between the template and the entity class, and an element containing program code designed to provide user actions for creating and maintaining links template elements with entity class attributes, data sets, their fields and aggregate functions.

В некоторых вариантах осуществления технического решения для выбора элемента шаблона при наведении пользователем указателя на элемент шаблона данный элемент графически выделяют.In some embodiments of the technical solution for selecting a template element, when a user hovers a pointer over a template element, this element is graphically highlighted.

В некоторых вариантах осуществления технического решения информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях отображают в виде списков, в которые включают только свободные, еще не привязанные к какому-либо элементу шаблона атрибуты, наборы данных, их поля и агрегатные функции.In some embodiments of the technical solution, information about the attributes of an entity class available for forming a connection, data sets, their fields and aggregate functions are displayed in the form of lists, which include only free attributes, data sets not yet attached to any element of the template, their fields and aggregate functions.

В некоторых вариантах осуществления технического решения информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях отображают в отдельном окне браузера или в перемещаемой области внутри окна с шаблоном, при этом формирование связей с элементами шаблона осуществляют с использованием способа Drag-and-Drop.In some embodiments of the technical solution, information about the attributes of the entity class, data sets, their fields, and aggregate functions available for forming a relationship is displayed in a separate browser window or in a movable area inside the template window, and the formation of relations with template elements is performed using the Drag method -and-drop.

В некоторых вариантах осуществления технического решения при выборе элемента шаблона, когда отображаемая область подлежащего выбору элемента полностью закрыта отображаемыми областями дочерних элементов и выбрать этот элемент невозможно, выбирают любой дочерний элемент и далее последовательно осуществляют выбор родительских элементов до тех пор, пока не будет выбран нужный элемент для формирования его связи с атрибутом класса сущности, или набором данных, или полем набора данных, или агрегатной функцией набора данных.In some embodiments of the technical solution, when selecting a template element, when the displayed area of the element to be selected is completely closed by the displayed areas of the child elements and it is impossible to select this element, any child element is selected and then the parent elements are subsequently selected until the desired element is selected to form its connection with an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set.

В некоторых вариантах осуществления технического решения выбор очередного родительского элемента осуществляют при помощи элемента управления, отображаемого совместно со списками доступных для формирования связи атрибутов класса сущности, наборов данных, их полей и агрегатных функций.In some embodiments of the technical solution, the selection of the next parent element is carried out using the control element displayed in conjunction with the lists of attributes of the entity class, data sets, their fields and aggregate functions available for linking.

В некоторых вариантах осуществления технического решения после формирования связи элемента шаблона с атрибутом класса сущности, или набором данных, или полем набора данных, или агрегатной функцией набора данных этот элемент графически выделяют.In some embodiments of the technical solution, after the connection of the template element with the attribute of the entity class, or with the data set, or with the data set field, or with the aggregate function of the data set, this element is graphically highlighted.

В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют последовательность индексов дочерних элементов, ведущую к элементу от известного элемента шаблона.In some embodiments of the technical solution, a sequence of indices of child elements leading to an element from a known template element is used as the identifier of the template element.

В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют значение атрибута ID.In some embodiments of the technical solution, the value of the attribute ID is used as the identifier of the template element.

В некоторых вариантах осуществления технического решения уникальные для шаблона значения атрибута ID устанавливают для всех элементов шаблона автоматически после формирования связи шаблона с классом сущности.In some embodiments of the technical solution, unique for the template ID attribute values are set for all elements of the template automatically after the connection of the template with the entity class.

В некоторых вариантах осуществления технического решения уникальное для шаблона значение атрибута ID устанавливают автоматически для элемента шаблона в процессе формирования связи этого элемента с атрибутом класса сущности, или набором данных, или полем набора данных, или агрегатной функцией набора данных.In some embodiments of the technical solution, a unique ID attribute value for the template is automatically set for the template element in the process of linking this element with an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set.

В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют выражение для запроса на языке XPath.In some embodiments of the technical solution, an expression for the XPath query is used as the identifier of the template element.

В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют уникальное шаблонное значение элемента.In some embodiments of the technical solution, a unique template value of the element is used as the identifier of the template element.

В некоторых вариантах осуществления технического решения для получения идентификаторов элементов шаблона используют язык запросов XPath.In some embodiments of the technical solution, XPath query language is used to obtain the identifiers of the template elements.

В некоторых вариантах осуществления технического решения инициируют формирование и сохранение связи атрибута класса сущности, или набора данных, или поля набора данных, или агрегатной функции набора данных с выбранным элементом шаблона при помощи элемента управления, отображаемого совместно со списками доступных для формирования связи атрибутов класса сущности, наборов данных, их полей и агрегатных функций.In some embodiments, the implementation of the technical solution initiates the formation and maintenance of a connection between an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set with a selected template element using a control displayed in conjunction with the lists of entity class attributes available for forming a connection data sets, their fields and aggregate functions.

В некоторых вариантах осуществления технического решения сформированные связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями сохраняют на сервере в БД.In some embodiments of the technical solution, the formed relationships of template elements with attributes of the entity class, data sets, their fields and aggregate functions are stored on the server in the database.

ОПИСАНИЕ ЧЕРТЕЖЕЙDESCRIPTION OF DRAWINGS

Последующее описание и прилагаемые чертежи подробно формулируют конкретные иллюстративные аспекты технического решения. Однако эти аспекты показывают только некоторые из различных способов, в которых могут использоваться принципы данного технического решения.The following description and the annexed drawings set forth in detail specific illustrative aspects of the technical solution. However, these aspects show only some of the various ways in which the principles of this technical solution can be used.

Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:The signs and advantages of this technical solution will become apparent from the following detailed description of the invention and the accompanying drawings, in which:

на Фиг. 1 изображен фрагмент возможной структуры БД с указанием атрибутного состава таблиц, примерного содержания таблиц и связей между таблицами (в виде стрелок), на котором обозначены:in FIG. 1 shows a fragment of a possible database structure indicating the attribute composition of the tables, the approximate contents of the tables and the relationships between the tables (in the form of arrows), which indicate:

таблица 100 классов сущностей, в которой хранятся метаданные классов сущностей;a table of 100 entity classes that stores metadata for entity classes;

таблица 101 атрибутов сущностей, в которой хранятся метаданные атрибутов сущностей; связь атрибута сущности из таблицы 101 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных атрибута сущности (в атрибуте «ID класса» таблицы 101);an entity attribute table 101 that stores metadata of entity attributes; the relationship of the entity attribute from table 101 with the entity class in table 100 is provided by storing the value of the entity class identifier as part of the entity attribute metadata (in the “Class ID” attribute of table 101);

таблица 102 наборов данных, в которой хранятся метаданные наборов данных; связь набора данных из таблицы 102 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных набора данных (в атрибуте «ID класса» таблицы 102);a dataset table 102 that stores metadata of the datasets; the connection of the data set from table 102 with the entity class in table 100 is provided by storing the value of the identifier of the class of the entity as part of the metadata of the data set (in the attribute "class ID" of the table 102);

таблица 103 полей наборов данных, в которой хранятся метаданные полей наборов данных; связь поля набора данных из таблицы 103 с набором данных в таблице 102 обеспечивается хранением значения идентификатора набора данных в составе метаданных поля набора данных (в атрибуте «ID набора» таблицы 103); связь поля набора данных из таблицы 103 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных поля набора данных (в атрибуте «ID класса» таблицы 103); связь поля набора данных из таблицы 103 с атрибутом сущности в таблице 101 обеспечивается хранением значения идентификатора атрибута сущности в составе метаданных поля набора данных (в атрибуте «ID атрибута» таблицы 103);a dataset field table 103 in which metadata of the dataset fields is stored; the connection of the data set field from table 103 with the data set in table 102 is provided by storing the data set identifier value as part of the data set field metadata (in the "Set ID" attribute of table 103); the connection of the data set field from table 103 with the entity class in table 100 is provided by storing the value of the identifier of the class of the entity as part of the metadata of the data set field (in the attribute "class ID" of the table 103); the connection of the data set field from table 103 with the entity attribute in table 101 is provided by storing the value of the identifier of the attribute of the entity as part of the metadata of the field of the data set (in the attribute "attribute ID" of the table 103);

таблица 104 агрегатных функций, в которой хранятся метаданные агрегатных функций наборов данных; связь агрегатной функции из таблицы 104 с набором данных в таблице 102 обеспечивается хранением значения идентификатора набора данных в составе метаданных агрегатной функции (в атрибуте «ID набора» таблицы 104); связь агрегатной функции из таблицы 104 с полем набора данных в таблице 103 обеспечивается хранением значения идентификатора поля набора данных в составе метаданных агрегатной функции (в атрибуте «ID поля» таблицы 104);an aggregate function table 104, which stores metadata of the aggregate functions of the data sets; the relationship of the aggregate function from table 104 with the data set in table 102 is provided by storing the value of the identifier of the data set as part of the aggregate function metadata (in the "Set ID" attribute of table 104); the connection of the aggregate function from table 104 with the data set field in table 103 is provided by storing the value of the field identifier of the data set as part of the aggregate function metadata (in the "Field ID" attribute of table 104);

на Фиг. 2 изображен пример процесса копирования фрагмента иерархической структуры документа на языке HTML при помощи программного кода на языке JavaScript, на котором обозначены:in FIG. Figure 2 shows an example of the process of copying a fragment of the hierarchical structure of an HTML document using JavaScript code, which indicates:

фрагмент 105 иерархической структуры документа на языке HTML и отображение 106 этого фрагмента в браузере;a fragment 105 of the hierarchical structure of an HTML document and a display 106 of this fragment in a browser;

программный код 107 на языке JavaScript, который копирует элемент 108 вместе с вложенными элементами и вставляет копию после оригинала;JavaScript program code 107 that copies an element 108 along with nested elements and pastes a copy after the original;

фрагмент 109 иерархической структуры документа на языке HTML, внутреннее представление которого в браузере аналогично внутреннему представлению результата работы программного кода 107, а его отображение 110 в браузере идентично отображению результата работы программного кода 107;a fragment 109 of the hierarchical structure of the HTML document, the internal representation of which in the browser is similar to the internal representation of the result of the program code 107, and its display 110 in the browser is identical to the display of the result of the program code 107;

на Фиг. 3 изображен сокращенный фрагмент одного из возможных вариантов шаблона на языке HTML, на котором обозначены:in FIG. 3 shows an abbreviated fragment of one of the possible options for the template in HTML, which indicates:

вспомогательный элемент 111 типа «горизонтальная линия»;auxiliary element 111 of the type "horizontal line";

вспомогательная надпись 112;supporting text 112;

элемент 113 шаблона (для представления значения атрибута «Подразделение» экземпляра сущности «План») и шаблонное значение 114 этого элемента;element 113 of the template (to represent the value of the attribute "Unit" of the entity instance "Plan") and the template value 114 of this element;

корневой элемент 115 (для группы элементов, предназначенных для представления значений атрибутов экземпляров сущности «Задача»);root element 115 (for a group of elements intended to represent attribute values of instances of the "Task" entity);

элемент 116 упомянутой группы (предназначенный для представления значения атрибута «Формулировка») и шаблонное значение 117 этого элемента;an element 116 of the aforementioned group (intended to represent the value of the “Formulation” attribute) and a template value 117 of this element;

элемент 118 (для представления результата агрегатной функции) и шаблонное значение 119 этого элемента;element 118 (to represent the result of an aggregate function) and the template value 119 of this element;

на Фиг. 4 изображено визуальное представление браузером изображенного на Фиг. 3 сокращенного фрагмента одного из возможных вариантов шаблона на языке HTML, на котором обозначены:in FIG. 4 is a visual representation of the browser of FIG. 3 abridged fragments of one of the possible options for the template in HTML, which indicates:

вспомогательный элемент 111 типа «горизонтальная линия»;auxiliary element 111 of the type "horizontal line";

вспомогательная надпись 112;supporting text 112;

шаблонные значения 114, 117 и 119;template values 114, 117 and 119;

на Фиг. 5 изображен фрагмент возможной структуры БД с указанием атрибутного состава таблиц, примерного содержания таблиц и связей между таблицами (в виде стрелок), на котором обозначены:in FIG. 5 shows a fragment of a possible database structure indicating the attribute composition of the tables, the approximate contents of the tables and the relationships between the tables (in the form of arrows), which indicate:

таблица 100 классов сущностей, в которой хранятся метаданные классов сущностей;a table of 100 entity classes that stores metadata for entity classes;

таблица 101 атрибутов сущностей, в которой хранятся метаданные атрибутов сущностей; связь атрибута сущности из таблицы 101 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных атрибута сущности (в атрибуте «ID класса» таблицы 101);an entity attribute table 101 that stores metadata of entity attributes; the relationship of the entity attribute from table 101 with the entity class in table 100 is provided by storing the value of the entity class identifier as part of the entity attribute metadata (in the “Class ID” attribute of table 101);

таблица 120 шаблонов представления экземпляров сущностей, в которой хранятся метаданные шаблонов; связь шаблона из таблицы 120 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных шаблона (в атрибуте «ID класса» таблицы 120);a table 120 of templates for representing entity instances in which template metadata is stored; the connection of the template from table 120 with the entity class in table 100 is provided by storing the value of the identifier of the entity class as part of the template metadata (in the attribute "class ID" of table 120);

таблица 121 путей к элементам шаблонов, в которой хранятся пути к целевым элементам от корневых элементов шаблонов (в виде строк, содержащих цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой); связь пути из таблицы 121 с атрибутом сущности в таблице 101 обеспечивается хранением значения идентификатора атрибута сущности в составе записи таблицы 121 (в атрибуте «ID атрибута»); связь пути из таблицы 121 с шаблоном в таблице 120 обеспечивается хранением значения идентификатора шаблона в составе записи таблицы 121 (в атрибуте «ID шаблона»);table 121 of the paths to the elements of the templates, which stores the paths to the target elements from the root elements of the templates (in the form of strings containing digital representations of the numerical values of the indices of the child elements, located from left to right and separated by a semicolon); the connection of the path from table 121 with the entity attribute in table 101 is provided by storing the value of the identifier of the attribute of the entity as part of the record of table 121 (in the attribute "attribute ID"); the connection of the path from table 121 with the template in table 120 is provided by storing the value of the template identifier as part of the record of table 121 (in the attribute "Template ID");

на Фиг. 6 изображены примеры возможных вариантов внедрения в шаблон элемента для подключения библиотеки программного кода, обеспечивающего действия пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, и элемента с идентификатором связанной сущности (в случае если шаблон сформирован на языке HTML, а программный код библиотеки сформирован на языке JavaScript). На Фиг. 6 обозначены:in FIG. Figure 6 shows examples of possible options for introducing into the template an element for connecting a library of program code that provides user actions for the formation and preservation of relations of template elements with attributes of an entity class, data sets, their fields and aggregate functions, and an element with an identifier of a related entity (if the template generated in HTML, and the program code of the library generated in JavaScript). In FIG. 6 are indicated:

пример 122 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 123, который подключает библиотеку программного кода, находящуюся во внешнем файле с именем «markup_library»;Example 122 of a simplified template for representing an entity in HTML with an embedded server element 123, which connects a library of program code located in an external file with the name “markup_library”;

внедренный сервером в шаблон элемент 124, который, после завершения загрузки шаблона браузером, обеспечивает вызов процедуры «prepare_for_markup» для подготовки шаблона к формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями;an element 124 inserted by the server into the template, which, after the browser has finished loading the template, provides a call to the prepare_for_markup procedure to prepare the template for the formation and preservation of relationships between template elements with entity class attributes, data sets, their fields and aggregate functions;

пример 125 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 126, который содержит непосредственно программный код библиотеки и, после завершения загрузки шаблона браузером, обеспечивает вызов процедуры «prepare_for_markup» для подготовки шаблона к формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями;Example 125 of a simplified template for representing an entity in HTML with an embedded server element 126, which contains the library program code directly and, after the browser finishes loading the template, provides a call to the prepare_for_markup procedure to prepare the template for creating and saving template element relationships with entity class attributes, data sets, their fields and aggregate functions;

идентификатор 127 класса сущности, для представления экземпляров которого будет осуществляться формирование и сохранение связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями;identifier 127 of the entity class, for the presentation of instances of which the formation and connection of template elements with attributes of the entity class, data sets, their fields and aggregate functions will be generated;

на Фиг. 7 изображено визуальное представление браузером изображенного на Фиг. 3 сокращенного фрагмента одного из возможных вариантов шаблона на языке HTML в режиме формирования и сохранения связей элементов с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, на котором обозначены:in FIG. 7 is a visual representation of the browser of FIG. 3 abbreviated fragment of one of the possible variants of the HTML template in the mode of formation and preservation of relations of elements with attributes of the entity class, data sets, their fields and aggregate functions, on which are indicated:

выбранный пользователем элемент 113, который графически выделен (рамкой из сплошных линий);user-selected element 113, which is graphically highlighted (a frame of solid lines);

диалоговое окно 128, которое содержит список 129 доступных для привязки атрибутов класса сущности; кнопку 130, предназначенную для запуска процедуры формирования и сохранения связи; кнопку 131, нажатием которой выбирают элемент, являющийся родительским элементом для текущего выбранного элемента;dialog box 128, which contains a list of 129 available for binding attributes of the entity class; a button 130 for starting a procedure for generating and maintaining communication; a button 131, by pressing which an element is selected, which is the parent element for the currently selected element;

на Фиг. 8 изображен фрагмент возможной структуры БД с указанием атрибутного состава таблиц, примерного содержания таблиц и связей между изображенными таблицами (в виде стрелок), на котором обозначены:in FIG. 8 shows a fragment of a possible database structure indicating the attribute composition of the tables, the approximate contents of the tables and the relationships between the tables shown (in the form of arrows), which indicate:

таблица 132 экземпляров сущностей; связь экземпляра сущности из таблицы 132 с классом сущности в изображенной на Фиг. 1 таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе данных экземпляра сущности (в атрибуте «ID класса» таблицы 132);table of 132 instances of entities; the relationship of the entity instance from table 132 with the entity class in FIG. 1, table 100 is provided by storing the value of the entity class identifier as part of the data of the entity instance (in the attribute "class ID" of table 132);

таблица 133 значений атрибутов экземпляров сущностей; связь значения атрибута из таблицы 133 с экземпляром сущности в таблице 132 обеспечивается хранением значения идентификатора экземпляра сущности в составе данных значения атрибута сущности (в атрибуте «ID экземпляра» таблицы 133); связь значения атрибута из таблицы 133 с атрибутом сущности в изображенной на Фиг. 1 таблице 101 обеспечивается хранением значения идентификатора атрибута сущности в составе данных значения атрибута сущности (атрибуте «ID атрибута» таблицы 133);a table of 133 attribute values of entity instances; the connection of the attribute value from table 133 with the entity instance in table 132 is provided by storing the value of the identifier of the entity instance in the entity attribute value data (in the "Instance ID" attribute of table 133); the relationship of the attribute value from table 133 with the entity attribute in the one shown in FIG. 1, table 101 is provided by storing the value of the identity attribute of the entity as part of the data of the value of the attribute of the entity (attribute "attribute ID" of table 133);

таблица 134 путей наборов данных, в которой хранятся пути (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента шаблона к корневому элементу группы элементов шаблона, предназначенных для отображения элементов наборов данных; связь пути набора данных из таблицы 134 с набором данных в изображенной на Фиг. 1 таблице 102 обеспечивается хранением значения идентификатора набора данных в составе данных пути набора данных (в атрибуте «ID набора» таблицы 134); связь пути набора данных из таблицы 134 с шаблоном представления сущности в изображенной на Фиг. 5 таблице 120 обеспечивается хранением значения идентификатора шаблона представления экземпляра сущности в составе данных пути набора данных (в атрибуте «ID шаблона» таблицы 134);a table of 134 dataset paths in which the paths are stored (in the form of a string containing digital representations of the numerical values of the indices of child elements, left to right and separated by a semicolon) from the root element of the template to the root element of the group of template elements designed to display the elements of the sets data; the relationship of the data set path from table 134 with the data set in FIG. 1, table 102 is provided by storing the value of the data set identifier as part of the data of the data set path (in the “Set ID” attribute of table 134); the connection of the data set path from table 134 with the entity representation template in FIG. 5, table 120 is provided by storing the value of the identifier of the template for representing the entity instance in the data set path data (in the “Template ID” attribute of table 134);

таблица 135 путей полей наборов данных, в которой хранятся пути (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента группы элементов шаблона, предназначенных для отображения элементов наборов данных, к целевым элементам группы; связь пути поля набора данных из таблицы 135 с полем набора данных в изображенной на Фиг. 1 таблице 103 обеспечивается хранением значения идентификатора поля набора данных в составе данных пути поля набора данных (в атрибуте «ID поля» таблицы 135); связь пути поля набора данных из таблицы 135 с шаблоном представления экземпляра сущности в изображенной на Фиг. 5 таблице 120 обеспечивается хранением значения идентификатора шаблона представления экземпляра сущности в составе данных пути поля набора данных (в атрибуте «ID шаблона» таблицы 135);a table 135 of the paths of the data set fields, in which the paths are stored (in the form of a string containing digital representations of the numerical values of the indices of the children elements, left to right and separated by a semicolon) from the root element of the group of template elements intended to display the elements of the data sets, to target elements of the group; the relationship of the path of the data set field from table 135 with the data set field in FIG. 1, table 103 is provided by storing the value of the identifier of the data set field as part of the data path of the data set field (in the attribute "field ID" of table 135); the connection of the path of the data set field from table 135 with the template for representing the entity instance in FIG. 5, table 120 is provided by storing the value of the identifier of the template for representing the entity instance as part of the path data of the data set field (in the “Template ID” attribute of table 135);

таблица 136 путей агрегатных функций наборов данных, в которой хранятся пути (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента шаблона к элементу шаблона, предназначенному для представления значения агрегатной функции набора данных; связь пути агрегатной функции набора данных из таблицы 136 с агрегатной функцией набора данных в изображенной на Фиг. 1 таблице 104 обеспечивается хранением значения идентификатора агрегатной функции набора данных в составе данных пути агрегатной функции набора данных (в атрибуте «ID агрегатной функции» таблицы 136); связь пути агрегатной функции набора данных из таблицы 136 с шаблоном представления сущности в изображенной на Фиг. 5 таблице 120 обеспечивается хранением значения идентификатора шаблона представления сущности в составе данных пути агрегатной функции набора данных (в атрибуте «ID шаблона» таблицы 136);a table 136 of the paths of the aggregate functions of the data sets in which the paths are stored (in the form of a string containing digital representations of the numerical values of the indices of the child elements, left to right and separated by a semicolon) from the root element of the template to the template element intended to represent the value of the aggregate function data set; the relationship of the path of the aggregate function of the data set from table 136 to the aggregate function of the data set in FIG. 1, table 104 is provided by storing the value of the identifier of the aggregate function of the data set as part of the data of the path of the aggregate function of the data set (in the attribute "ID of the aggregate function" of table 136); the connection of the path of the aggregate function of the data set from table 136 with the entity representation template in the one shown in FIG. 5, table 120 is provided by storing the value of the identifier of the entity representation template as part of the path data of the aggregate function of the data set (in the “Template ID” attribute of table 136);

на Фиг. 9 изображены примеры возможных вариантов внедрения в шаблон элемента для подключения библиотеки программного кода, который осуществляет представление экземпляра сущности и наборов данных в шаблоне, а также обеспечивает действия пользователя по редактированию значений атрибутов сущности и сохранению измененных значений в БД (в случае если шаблон сформирован на языке HTML, а программный код библиотеки сформирован на языке JavaScript). На Фиг. 9 обозначены:in FIG. Figure 9 shows examples of possible options for introducing into the template an element for connecting a library of program code that implements an entity instance and data sets in a template, and also provides user actions for editing entity attribute values and storing changed values in the database (if the template is created in the language HTML, and the program code of the library is formed in JavaScript). In FIG. 9 are indicated:

пример 137 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 138, который подключает библиотеку программного кода, находящуюся во внешнем файле с именем «edit_library»;Example 137 of a simplified template for representing an entity in HTML with an embedded 138 server element, which includes a library of program code located in an external file with the name “edit_library”;

внедренный сервером в шаблон элемент 139, который обеспечивает вызов процедуры представления экземпляра сущности и подготовки значений атрибутов экземпляра к редактированию с именем «prepare_for_edit» после завершения загрузки шаблона браузером;an element 139 introduced by the server into the template, which provides a call to the procedure for presenting an entity instance and preparing instance attribute values for editing with the name “prepare_for_edit” after the browser has finished loading the template;

пример 140 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 141, который содержит непосредственно программный код библиотеки и обеспечивает вызов процедуры представления экземпляра сущности и подготовки значений атрибутов экземпляра к редактированию с именем «prepare_for_edit» после завершения загрузки шаблона браузером;Example 140 of a simplified template for representing an entity in HTML with an embedded server element 141, which contains the library program code directly and provides a call to the procedure for presenting an entity instance and preparing instance attribute values for editing with the name “prepare_for_edit” after the browser has finished loading the template;

идентификатор 142 экземпляра сущности, который будет представлен в браузере для просмотра и редактирования пользователем;identifier 142 of the entity instance that will be presented in the browser for viewing and editing by the user;

на Фиг. 10 изображен пример объекта (в виде программного кода на языке JavaScript по созданию объекта) для хранения в памяти браузера данных и метаданных экземпляра сущности и наборов данных, в составе которого обозначены:in FIG. 10 shows an example of an object (in the form of JavaScript code to create an object) for storing data and metadata of an entity instance and data sets in browser memory, which include:

свойство 143, в котором хранится значение идентификатора экземпляра сущности;property 143, which stores the value of the identifier of the entity instance;

массив 144 объектов, в которых хранятся в сопоставленном виде идентификаторы атрибутов сущности, значения атрибутов экземпляра сущности, а также пути к целевым элементам шаблона для представления значений атрибутов экземпляра сущности;an array of 144 objects in which identifiers of attributes of an entity, values of attributes of an entity instance are stored in a matching form, as well as paths to target elements of a template to represent values of attributes of an entity instance;

массив 145 объектов, в которых хранятся данные и метаданные наборов данных, такие как: свойство 146, в котором хранится путь (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента шаблона к корневому элементу группы элементов шаблона, предназначенных для отображения элементов набора данных; массив 147 путей (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента группы элементов шаблона, предназначенных для отображения элементов наборов данных, к целевым элементам группы; массив 148, в котором хранятся строки табличной части набора данных (в виде массивов значений элементов набора данных); массив 149 объектов, в которых хранятся в сопоставленном виде значения агрегатных функций набора данных и пути к целевым элементам шаблона для представления этих значений;an array of 145 objects that store data and metadata of the data sets, such as: property 146, which stores the path (as a string containing digital representations of the numerical values of the indices of the children elements, left to right and separated by a semicolon) from the root element a template to the root element of a group of template elements for displaying data set elements; an array of 147 paths (in the form of a string containing digital representations of the numerical values of the indices of the child elements, located from left to right and separated by a semicolon) from the root element of the group of template elements used to display the elements of data sets to the target elements of the group; array 148, which stores the rows of the tabular part of the data set (in the form of arrays of values of the elements of the data set); an array of 149 objects in which the values of the aggregate functions of the data set and the path to the target elements of the template for representing these values are stored in a mapped form;

на Фиг. 11 изображены примеры функций на языке JavaScript, предназначенные для представления экземпляра сущности и наборов данных в шаблоне в браузере. На Фиг. 11 обозначены:in FIG. 11 depicts examples of functions in the JavaScript language, designed to represent an entity instance and data sets in a template in a browser. In FIG. 11 are indicated:

вспомогательная функция 150, которая принимает в качестве параметров корневой элемент DOM и путь (от этого корневого элемента) и возвращает элемент DOM, найденный по пути относительно корневого элемента;helper function 150, which takes as parameters the root DOM element and the path (from this root element) and returns the DOM element found along the path relative to the root element;

функция 151, которая помещает значения атрибутов экземпляра сущности в соответствующие элементы шаблона;function 151, which places the values of the attributes of the entity instance in the corresponding elements of the template;

функция 152, которая помещает значения агрегатных функций наборов данных в соответствующие элементы шаблона;function 152, which places the values of the aggregate functions of the data sets in the corresponding elements of the template;

на Фиг. 12 изображен пример функции 153, которая размещает в шаблоне табличные части наборов данных;in FIG. 12 shows an example of a function 153 that places tabular parts of data sets in a template;

на Фиг. 13 изображено визуальное представление браузером примера шаблона с размещенными в составе его элементов значениями атрибутов экземпляра сущности, элементами набора данных и значением агрегатной функции, которые соответствуют изображенному на Фиг. 10 примеру объекта в памяти браузера и соответствуют примерам возможного состава данных и метаданных, изображенных на Фиг. 1, Фиг. 5 и Фиг. 8;in FIG. 13 shows a visual representation by the browser of an example of a template with the values of the attributes of the entity instance, the elements of the data set and the value of the aggregate function, which correspond to those shown in FIG. 10 as an example of an object in the browser memory and correspond to examples of possible composition of data and metadata depicted in FIG. 1, FIG. 5 and FIG. 8;

на Фиг. 14 изображена блок-схема варианта реализации способа подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы.in FIG. 14 is a flowchart of an embodiment of a method for preparing documents in markup languages when implementing a user interface for working with information system information.

ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION

Приведенные в настоящем изобретении примеры наименований и обозначений носят исключительно иллюстративный характер и не предназначены для идентификации ключевых или критических элементов технического решения.The examples of names and designations given in the present invention are for illustrative purposes only and are not intended to identify key or critical elements of a technical solution.

В настоящем описании с целью упрощения понимания сути технического решения в основном приводятся примеры использования языка разметки HTML, однако специалисту в данном уровне техники очевидно, что предлагаемый способ может быть реализован с использованием любого другого языка разметки, который может поддерживаться браузерами и обеспечивает возможность иерархической организации элементов разметки и данных в составе документа на этом языке. К таким языкам относятся, например, некоторые приложения и подмножества метаязыка SGML.In the present description, in order to simplify the understanding of the essence of the technical solution, examples of the use of the HTML markup language are mainly provided, however, it will be obvious to a person skilled in the art that the proposed method can be implemented using any other markup language that can be supported by browsers and enables hierarchical organization of elements markup and data in a document in this language. Such languages include, for example, some applications and subsets of the SGML metalanguage.

Данное техническое решение может быть реализовано на компьютере, а также в виде компьютерной системы или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.This technical solution can be implemented on a computer, as well as in the form of a computer system or computer-readable medium containing instructions for performing the above method.

Данное техническое решение может быть реализовано на распределенной компьютерной системе.This technical solution can be implemented on a distributed computer system.

Ниже будут приведены термины и их определения, используемые в заявке, необходимые для понимания сущности заявляемого технического решения.Below will be given the terms and their definitions used in the application, necessary for understanding the essence of the claimed technical solution.

Данные - интерпретируемое формализованным способом представление информации, подходящее для связи, интерпретации или обработки (ISO/IEC 2382:2015, 2121272 «data»).Data is the presentation of information interpreted in a formalized way, suitable for communication, interpretation or processing (ISO / IEC 2382: 2015, 2121272 “data”).

Элемент данных - единица данных, которая в контексте рассматривается как неделимая («unit of data that is considered in context to be indivisible») (ISO/IEC 2382:2015, 2121599 «data element»).A data element is a unit of data that is considered indivisible in the context (“unit of data that is considered in context to be indivisible”) (ISO / IEC 2382: 2015, 2121599 “data element”).

База данных (БД) - совокупность данных, организованных в соответствии с концептуальной структурой, описывающей характеристики этих данных и взаимоотношения между ними, причем такое собрание данных, которое поддерживает одну или более областей применения (ISO/IEC 2382:2015, 2121423 «database»).Database (DB) - a collection of data organized in accordance with a conceptual structure describing the characteristics of these data and the relationships between them, and such a collection of data that supports one or more applications (ISO / IEC 2382: 2015, 2121423 “database”) .

Метаданные - данные о данных или элементах данных, возможно, включая описание данных, и данные о владении данными, путях доступа, правах доступа и изменчивости данных (ISO/IEC 2382:2015, 2121515 «metadata»).Metadata - data about data or data items, possibly including a description of the data, and data on data ownership, access paths, access rights and data volatility (ISO / IEC 2382: 2015, 2121515 “metadata”).

Сервер - функциональный блок в компьютерной сети, который предоставляет службы для рабочих станций, персональных компьютеров или других функциональных блоков (ISO/IEC 2383:2015, 2120558 «server»); функциональный блок, который обеспечивает общие службы для рабочих станций или других функциональных блоков по сети передачи данных (ISO/IEC 2383:2015, 2124462 «server»).Server - a functional unit in a computer network that provides services for workstations, personal computers or other functional units (ISO / IEC 2383: 2015, 2120558 “server”); a function block that provides common services for workstations or other function blocks over a data network (ISO / IEC 2383: 2015, 2124462 “server”).

Браузер (от англ. Web browser) - прикладное программное обеспечение для просмотра веб-страниц; применительно к данной заявке, если явно не указаное иное, под браузером следует понимать любое программное обеспечение, предоставляющее пользователю интерфейс для работы с документами на языках разметки, а также способное исполнять программный код на языках сценариев (скриптовых языках), включая, но не ограничиваясь, JavaScript или Dart.Browser (from the English. Web browser) - application software for viewing web pages; in relation to this application, unless explicitly stated otherwise, the browser should be understood as any software that provides the user with an interface for working with documents in markup languages, as well as capable of executing program code in scripting languages (scripting languages), including, but not limited to, JavaScript or Dart.

ORM (англ. Object-Relational Mapping) - технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования и позволяет работать с данными как с объектами, используя систему управления БД любого типа, для которой имеется соответствующая библиотека ORM.ORM (Object-Relational Mapping) is a programming technology that connects databases with concepts of object-oriented programming languages and allows you to work with data as objects using a database management system of any type for which there is an appropriate ORM library.

XPath (англ. XML PathLanguage) - язык адресации частей XML документа, предназначенный для использования с XSLT и XPointer (http://www.w3.org/TR/1999/REC-xpath-19991116/).XPath (XML PathLanguage) is an addressing language for parts of an XML document intended for use with XSLT and XPointer (http://www.w3.org/TR/1999/REC-xpath-19991116/).

SGML (англ. Standard Generalized Markup Language) - стандартный обобщенный язык разметки - метаязык, на котором можно определять язык разметки для документов (ISO 8879:1986, «Standard Generalized Markup Language»).SGML (English Standard Generalized Markup Language) - a standard generalized markup language - metalanguage in which you can define a markup language for documents (ISO 8879: 1986, "Standard Generalized Markup Language").

Сущность - любая конкретная или абстрактная вещь, которая существует, существовала или могла бы существовать, включая объединение таких вещей (ISO/IEC 2383:2015, 2121443 «entity»).An entity is any concrete or abstract thing that exists, existed or could exist, including a combination of such things (ISO / IEC 2383: 2015, 2121443 “entity”).

Атрибут - именованное свойство сущности (ISO/IEC 2383:2015, 2121450 «attribute»).Attribute is a named property of an entity (ISO / IEC 2383: 2015, 2121450 “attribute”).

Класс сущности - множество сущностей с общим атрибутным составом (ISO/IEC 2383:2015, 2121448 «entity class»).An entity class is a set of entities with a common attribute composition (ISO / IEC 2383: 2015, 2121448 "entity class").

Экземпляр сущности (экземпляр класса сущности) - конкретный экземпляр класса сущности (ISO/IEC 2383:2015, 2121449 «entity occurrence»).An entity instance (an instance of an entity class) is a specific instance of an entity class (ISO / IEC 2383: 2015, 2121449 “entity occurrence”).

Значение атрибута - конкретное значение атрибута (ISO/IEC 2383:2015, 2121451 «attribute value»).Attribute value - the specific attribute value (ISO / IEC 2383: 2015, 2121451 “attribute value”).

Набор данных - конечное множество элементов данных, организованное в определенную структуру, метаданные которой обеспечивают возможность идентификации, интерпретации и обработки каждого элемента данных из множества; применительно к данной заявке, если явно не указано иное, следует рассматривать набор данных как результат запроса к базе данных, который может содержать значения атрибутов одного или многих экземпляров одной или многих сущностей, значения, производные от значений атрибутов (например, значения агрегатных функций), а также любые дополнительные элементы данных; по крайней мере, часть набора данных может быть представлена в виде таблицы, в которой каждая отдельная строка содержит логически связанные данные, например значения атрибутов одного экземпляра сущности либо значения атрибутов сопоставленных между собой экземпляров разных сущностей, а каждый из столбцов содержит однородные данные, например значения определенного атрибута каждого из экземпляров определенной сущности, представленных в наборе данных.A data set is a finite set of data elements organized into a specific structure, the metadata of which provides the ability to identify, interpret and process each data element from the set; in relation to this application, unless explicitly stated otherwise, you should consider a data set as the result of a database query that may contain attribute values of one or many instances of one or many entities, values derived from attribute values (for example, values of aggregate functions), as well as any additional data items; at least part of the data set can be represented in the form of a table in which each individual row contains logically related data, for example, attribute values of one entity instance or attribute values of associated instances of different entities, and each of the columns contains homogeneous data, for example, a specific attribute of each of the instances of a particular entity represented in the data set.

Поле (набора данных) - метаданные столбца набора данных, используемые для идентификации, интерпретации и обработки данных этого столбца; поле набора данных содержит идентификатор, который используют для получения остальных метаданных поля, необходимых для работы с данными столбца.Field (dataset) - metadata of a dataset column used to identify, interpret and process the data of this column; the data set field contains an identifier that is used to obtain the remaining metadata of the field necessary for working with column data.

Шаблон (представления экземпляра сущности) - документ на языке разметки, в том числе существующий на машинном носителе, который может быть использован при реализации пользовательского интерфейса для работы с одним или многими экземплярами одной или многих сущностей.Template (representations of an entity instance) - a document in a markup language, including an existing one on a machine medium, which can be used to implement a user interface for working with one or many instances of one or many entities.

Элемент шаблона - наименьший неделимый структурный элемент шаблона (например, тег HTML).A template element is the smallest indivisible structural element of a template (for example, an HTML tag).

Тип шаблона - элемент метаданных шаблона, указывающий на его предназначение, например «для печати», «для устройств с сенсорными экранами», «для людей с ограниченными возможностями» и т.д.; шаблоны разных типов могут иметь различия в структуре и внешнем виде; шаблоны, предназначенные для представления сущности на разных языках пользователей, также могут иметь различия в структуре и внешнем виде.Template type - template metadata element indicating its purpose, for example, “for printing”, “for devices with touch screens”, “for people with disabilities”, etc .; templates of different types may have differences in structure and appearance; templates designed to represent the entity in different user languages may also have differences in structure and appearance.

DOM (англ. Document Object Model) - независимый от платформы и языка интерфейс, который позволяет программам и скриптам динамически получать доступ и обновлять содержимое, структуру и стиль документов (http://www.w3.org/DOM/).DOM (Document Object Model) is a platform and language independent interface that allows programs and scripts to dynamically access and update the content, structure and style of documents (http://www.w3.org/DOM/).

AJAX (англ. Asynchronous Javascript and XML) - концепция построения пользовательских интерфейсов web-приложений, заключающаяся в «фоновом» обмене данными браузера с web-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся быстрее и удобнее.AJAX (Eng. Asynchronous Javascript and XML) - the concept of building user interfaces for web applications, consisting in the "background" exchange of browser data with a web server. As a result, when updating data, the web page does not reload completely, and web applications become faster and more convenient.

Drag-and-Drop - способ оперирования элементами интерфейса в интерфейсах пользователя при помощи манипулятора типа «мышь» или иного указателя.Drag-and-Drop - a method of operating interface elements in user interfaces using a mouse-type manipulator or other pointer.

Распределенная компьютерная система - это набор независимых компьютеров (компьютерных устройств), представляющийся их пользователям единой объединенной системой.A distributed computer system is a set of independent computers (computer devices) that is presented to their users as a single integrated system.

Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).By a command processing device is meant an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).

Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройств хранения данных. В роли устройства хранения данных могут выступать, но не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD).The command processing device reads and executes machine instructions (programs) from one or more data storage devices. The storage device may include, but is not limited to, hard disks (HDD), flash memory, ROM (read-only memory), solid state drives (SSD).

Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.A program is a sequence of instructions intended for execution by a control device of a computer or a device for processing commands.

Согласно способу подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы:According to the method of preparing documents in markup languages when implementing a user interface for working with information system information:

- формируют метаданные для, по крайней мере, одного класса сущности, его атрибутов и наборов данных, элементов наборов данных, включающих, по крайней мере, поля наборов данных и агрегатные функции наборов данных.- form metadata for at least one entity class, its attributes and data sets, data set elements, including at least the data set fields and the aggregate functions of the data sets.

Метаданные классов сущностей и их атрибутов должны содержать идентификаторы, позволяющие различать классы между собой и различать атрибуты, по крайней мере, в рамках соответствующих классов, а также могут содержать имена, описания и другие элементы. На Фиг. 1 изображен один из возможных вариантов структуры и содержания метаданных классов сущностей (таблица 100) и их атрибутов (таблица 101).The metadata of entity classes and their attributes must contain identifiers that allow distinguishing between classes and distinguishing attributes, at least within the framework of the corresponding classes, and may also contain names, descriptions, and other elements. In FIG. 1 shows one of the possible options for the structure and content of metadata of entity classes (table 100) and their attributes (table 101).

Метаданные наборов данных, их полей и агрегатных функций должны содержать идентификаторы, позволяющие различать наборы данных между собой и различать поля и агрегатные функции, по крайней мере, в рамках соответствующих наборов данных, а также могут содержать другие элементы, предназначенные для формирования наборов данных. Дополнительно формируют связи наборов данных с классами сущностей, в представление экземпляров которых предполагается включать элементы этих наборов данных. На Фиг. 1 изображен один из вариантов структуры и содержания метаданных наборов данных (таблица 102), их полей (таблица 103) и агрегатных функций (таблица 104), а также структура и содержание связей наборов данных с классами сущностей;The metadata of data sets, their fields and aggregate functions should contain identifiers that allow to distinguish between data sets and distinguish between fields and aggregate functions, at least within the framework of the corresponding data sets, and may also contain other elements intended for the formation of data sets. Additionally, data sets are associated with entity classes, in the presentation of instances of which it is supposed to include elements of these data sets. In FIG. 1 shows one of the options for the structure and content of metadata of data sets (table 102), their fields (table 103) and aggregate functions (table 104), as well as the structure and content of the relationships of data sets with entity classes;

- формируют шаблон представления экземпляров вышеупомянутого класса сущности, состоящий, по крайней мере, из одного документа, сформированного на, по крайней мере, одном языке разметки.- form a template for representing instances of the aforementioned entity class, consisting of at least one document formed in at least one markup language.

В некоторых вариантах осуществления технического решения используют язык разметки включая, но не ограничиваясь, HTML, XML, XHTML, DocBook.In some embodiments of the technical solution, a markup language is used including, but not limited to HTML, XML, XHTML, DocBook.

В некоторых вариантах осуществления технического решения документы на языках разметки формируют при помощи соответствующего языку разметки программного обеспечения, включая, но не ограничиваясь, текстовые редакторы с подсветкой синтаксиса, WYSIWYG-редакторы, в том числе онлайн-редакторы.In some embodiments of the technical solution, documents in markup languages are generated using software appropriate for the markup language, including, but not limited to, text editors with syntax highlighting, WYSIWYG editors, including online editors.

В шаблонах представления экземпляров класса сущности создают элементы, которые будут представлять значения атрибутов экземпляра класса сущности, а также создают вспомогательные элементы, включая, но не ограничиваясь, пояснительные надписи, фоновые изображения, разделительные линии и другие элементы.Entity class instance presentation templates create elements that will represent the attribute values of an entity class instance, and also create auxiliary elements, including, but not limited to, explanatory labels, background images, dividing lines, and other elements.

В некоторых вариантах осуществления технического решения элементам шаблона, предназначенным для представления значений атрибутов экземпляра класса сущности, устанавливают значения, по типу данных и размеру соответствующие атрибутам класса сущности.In some embodiments of the technical solution, the elements of the template intended to represent the attribute values of an instance of an entity class are set to values corresponding to the attributes of the entity class by data type and size.

В некоторых вариантах осуществления технического решения элементам шаблона, предназначенным для представления элементов наборов данных, устанавливают значения, по типу данных и размеру соответствующие элементам наборов данных.In some embodiments of the technical solution, the elements of the template for representing the elements of the data sets are set to values according to the type of data and size corresponding to the elements of the data sets.

В некоторых вариантах осуществления технического решения в шаблоне представления экземпляра класса сущности дополнительно формируют элементы для представления элементов наборов данных, например, содержащих значения атрибутов экземпляров сущностей, связанных с экземпляром представляемой сущности, а также значения агрегатных функций, вычисленных на основе значений этих атрибутов. В общем случае количество строк в табличных частях наборов данных неизвестно в момент формирования шаблона представления экземпляра сущности. Поэтому в шаблоне формируют группу элементов, достаточную для представления нужных элементов одной строки набора данных, а в процессе представления экземпляра сущности создают копии этой группы элементов для представления элементов других строк набора данных. Одним из вариантов копирования групп элементов шаблона, позволяющим упростить реализацию, является тот, в котором используется предоставляемая DOM возможность создавать копии фрагментов иерархической структуры документа. Чтобы использовать эту возможность, в некоторых вариантах осуществления технического решения в шаблоне создают структурный элемент, являющийся корневым элементом фрагмента иерархической структуры документа, в который входят все элементы упомянутой группы. На Фиг. 2 изображен пример процесса копирования фрагмента иерархической структуры документа на языке HTML при помощи программного кода на языке JavaScript. Следует подчеркнуть, что атрибут ID элемента 108 в приведенном на Фиг. 2 фрагменте 105 используется исключительно с целью облегчения понимания примера за счет упрощения программного кода 107. В предлагаемом техническом решении использование атрибута ID необязательно, что станет очевидным из дальнейшего описания. На Фиг. 3 изображен сокращенный фрагмент одного из возможных вариантов шаблона на языке HTML для представления экземпляра сущности «План», в составе которого должны представляться значения атрибутов связанных с ним экземпляров сущности «Задача», а также значение агрегатной функции, вычисленной на основе значений одного из этих атрибутов. Визуальное представление браузером изображенного на Фиг. 3 фрагмента шаблона изображено на Фиг. 4.In some embodiments of the technical solution, in the template for representing an instance of an entity class, elements are additionally formed for representing elements of data sets, for example, containing attribute values of entity instances associated with an instance of the entity being represented, as well as aggregate function values calculated based on the values of these attributes. In the general case, the number of rows in the tabular parts of the data sets is unknown at the time of generating the template for representing the entity instance. Therefore, a group of elements is formed in the template that is sufficient to represent the necessary elements of one row of the data set, and in the process of representing an entity instance, copies of this group of elements are created to represent elements of other rows of the data set. One of the options for copying groups of template elements to simplify implementation is the one that uses the DOM opportunity to create copies of fragments of the hierarchical structure of the document. To use this opportunity, in some embodiments of the technical solution, a structural element is created in the template, which is the root element of a fragment of the hierarchical structure of the document, which includes all the elements of the said group. In FIG. Figure 2 shows an example of the process of copying a fragment of the hierarchical structure of an HTML document using JavaScript code. It should be emphasized that the ID attribute of element 108 in FIG. 2 fragment 105 is used solely to facilitate understanding of the example by simplifying the program code 107. In the proposed technical solution, the use of the ID attribute is optional, which will become apparent from the further description. In FIG. Figure 3 shows an abbreviated fragment of one of the possible variants of the HTML template for representing an instance of the Plan entity, which should include the attribute values of the associated instances of the Task entity, as well as the value of the aggregate function calculated based on the values of one of these attributes . A visual representation by the browser of FIG. 3 fragments of the template are shown in FIG. four.

В некоторых вариантах осуществления технического решения сформированный шаблон сохраняют на сервере в БД;In some embodiments of the technical solution, the generated template is stored on the server in the database;

- формируют и сохраняют связь шаблона и класса сущности.- form and maintain a relationship between the template and the entity class.

В некоторых вариантах осуществления технического решения формирование связи между шаблоном и классом сущности обеспечивается действиями пользователя, который выбирает класс сущности из полученного с сервера набора, выбирает шаблон (файл, WYSIWYG-редактор, но не ограничиваясь) и тем самым формирует связь между классом сущности и шаблоном.In some embodiments of the technical solution, the formation of the relationship between the template and the entity class is provided by the actions of the user who selects the entity class from the set received from the server, selects the template (file, WYSIWYG editor, but not limited to), and thereby forms the relationship between the entity class and the template .

В некоторых вариантах осуществления технического решения информация о сформированной связи сохраняется на сервере в БД. На Фиг. 5 изображен один из возможных вариантов хранения связи шаблона с классом сущности: связь шаблона из таблицы 120 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных шаблона в атрибуте «ID класса» таблицы 120.In some embodiments of the technical solution, information about the generated connection is stored on the server in the database. In FIG. 5 depicts one of the possible options for storing the connection of the template with the entity class: the connection of the template from table 120 with the entity class in table 100 is provided by storing the value of the identifier of the entity class as part of the template metadata in the attribute "class ID" of table 120.

В некоторых вариантах осуществления технического решения в составе информации о сформированной связи шаблона и класса сущности дополнительно сохраняют идентификатор типа шаблона (например, указывающий на его предназначение: «для печати», «для устройств с сенсорными экранами», «для людей с ограниченными возможностями» и др.) и идентификатор языка пользователей, с использованием которого сформированы значения вспомогательных элементов шаблона (например, текстовых поясняющих надписей или содержащих текст изображений);In some embodiments of the technical solution, the identifier of the type of the template (for example, indicating its purpose: “for printing”, “for devices with touch screens”, “for people with disabilities” and etc.) and the identifier of the user language with which the values of auxiliary elements of the template (for example, text explanatory labels or images containing text) are generated;

- отображают шаблон, формируют и сохраняют связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, при этом: выбирают элемент шаблона и отображают информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях; выбирают атрибут класса сущности, или набор данных, или поле набора данных, или агрегатную функцию набора данных; формируют и сохраняют связь, содержащую идентификатор выбранного ранее элемента шаблона и идентификатор выбранного на предыдущем шаге атрибута класса сущности, или набора данных, или поля набора данных, или агрегатной функции набора данных.- display a template, form and save relationships of template elements with attributes of an entity class, data sets, their fields and aggregate functions, at the same time: select a template element and display information about attributes of an entity class available for forming a relationship, data sets, their fields and aggregate functions ; selecting an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set; form and save a link containing the identifier of the previously selected template element and the identifier of the attribute of the entity class selected in the previous step, or the data set, or the data set field, or the aggregate function of the data set.

Действия пользователя могут осуществляться в браузере, что позволяет пользователю работать удаленно, например, используя Internet.User actions can be carried out in a browser, which allows the user to work remotely, for example, using the Internet.

В некоторых вариантах осуществления технического решения для получения шаблона с целью формирования и сохранения связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями пользователь инициирует получение шаблона в браузере, который, в свою очередь, обращается к серверу с запросом на получение шаблона. Сервер извлекает шаблон из БД и внедряет в него элемент, подключающий библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, а также внедряет в шаблон элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, сформированную и сохраненную в БД на предыдущем шаге способа; после чего передает шаблон браузеру для отображения. На Фиг. 6 изображен пример 122 упрощенного шаблона представления экземпляра сущности с внедренным сервером элементом 123, который подключает библиотеку программного кода, находящуюся во внешнем файле с именем «markup_library», и внедренным сервером элементом 124, содержащим идентификатор 127 класса сущности.In some embodiments of the technical solution for obtaining a template for the purpose of forming and maintaining relationships between template elements with attributes of an entity class, data sets, their fields and aggregate functions, the user initiates the receipt of a template in a browser, which, in turn, contacts the server with a request for template. The server extracts the template from the database and injects into it an element that connects the library of program code designed to provide user actions for the formation and preservation of relationships of template elements with entity class attributes, data sets, their fields and aggregate functions, and also implements an element with an identifier in the template entity class, using information about the relationship between the template and entity class, generated and stored in the database at the previous step of the method; then passes the template to the browser for display. In FIG. 6 shows an example 122 of a simplified template for representing an entity instance with an embedded server element 123, which includes the program code library located in an external file named markup_library, and an embedded server element 124 containing the entity class identifier 127.

В некоторых вариантах осуществления технического решения сервер извлекает шаблон из БД и внедряет в него элемент, содержащий программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, и идентификатор класса сущности, используя информацию о связи шаблона и класса сущности, сформированную и сохраненную в БД на предыдущем шаге способа; после чего передает шаблон браузеру для отображения. На Фиг. 6 изображен пример 125 упрощенного шаблона представления экземпляра сущности с внедренным сервером элементом 126, который содержит программный код и идентификатор 127 класса сущности.In some embodiments of the technical solution, the server retrieves the template from the database and embeds an element in it containing program code designed to provide user actions for the formation and preservation of relationships of template elements with entity class attributes, data sets, their fields and aggregate functions, and the class identifier entities, using information about the relationship between the template and the entity class, generated and stored in the database at the previous step of the method; then passes the template to the browser for display. In FIG. 6 illustrates an example 125 of a simplified template for representing an entity instance with an embedded server element 126, which contains program code and entity class identifier 127.

В некоторых вариантах осуществления технического решения программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, реализуют на любом языке программирования, поддерживаемым браузером, включая, но не ограничиваясь, JavaScript или Dart.In some embodiments of the technical solution, the program code intended to provide user actions for the formation and preservation of relationships of template elements with entity class attributes, data sets, their fields and aggregate functions is implemented in any programming language supported by the browser, including, but not limited to, JavaScript or Dart.

В некоторых вариантах осуществления технического решения библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, располагают на удаленном сервере, доступ к которому осуществляют по Internet.In some embodiments of the technical solution, a library of program code designed to provide user actions for the formation and preservation of relationships of template elements with entity class attributes, data sets, their fields and aggregate functions is located on a remote server that is accessed via the Internet.

В некоторых вариантах осуществления технического решения при наведении пользователем курсора (или иного указателя) на элемент шаблона данный элемент графически выделяют для облегчения выбора элемента для формирования связи элемента с атрибутом класса сущности, или набором данных, или полем набора данных, или агрегатной функцией набора данных.In some embodiments of the technical solution, when the user hovers the cursor (or another pointer) over the template element, this element is graphically selected to facilitate the selection of the element for forming the connection of the element with an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set.

В некоторых вариантах осуществления технического решения при выборе пользователем элемента шаблона отображают получаемую с удаленного сервера информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях. На Фиг. 7 изображено визуальное представление браузером изображенного на Фиг. 3 сокращенного фрагмента одного из возможных вариантов шаблона на языке HTML в режиме формирования связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.In some embodiments of the technical solution, when a user selects a template element, information about the attributes of the entity class, data sets, their fields, and aggregate functions available for forming a connection is displayed. In FIG. 7 is a visual representation of the browser of FIG. 3 abbreviated fragment of one of the possible variants of the template in HTML in the mode of forming links of template elements with attributes of the entity class, data sets, their fields and aggregate functions.

В некоторых вариантах осуществления технического решения информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях отображают в виде списков, в которые включают только свободные, еще не привязанные к какому-либо элементу шаблона атрибуты, наборы данных, их поля и агрегатные функции.In some embodiments of the technical solution, information about the attributes of an entity class available for forming a connection, data sets, their fields and aggregate functions are displayed in the form of lists, which include only free attributes, data sets not yet attached to any element of the template, their fields and aggregate functions.

В некоторых вариантах осуществления технического решения информацию о доступных для формирования связи атрибутах класса сущности, наборов данных, их полей и агрегатных функций отображают в отдельном окне браузера или в перемещаемой области внутри окна с шаблоном, при этом формирование связей с элементами шаблона осуществляют с использованием способа Drag-and-Drop.In some embodiments of the technical solution, information about the attributes of the entity class, data sets, their fields and aggregate functions available for forming a relationship is displayed in a separate browser window or in a movable area inside the template window, while the formation of relations with template elements is performed using the Drag method -and-drop.

В некоторых вариантах осуществления технического решения при выборе пользователем элемента шаблона в случаях, когда отображаемая в браузере область подлежащего выбору элемента полностью закрыта отображаемыми областями дочерних элементов и непосредственно выбрать этот элемент невозможно, выбирают любой дочерний элемент и далее последовательно осуществляют выбор родительских элементов до тех пор, пока не будет выбран нужный элемент для формирования его связи с атрибутом класса сущности, или набором данных, или полем набора данных, или агрегатной функцией набора данных. Выбор очередного родительского элемента осуществляют при помощи элемента управления, например кнопки, отображаемой совместно со списками доступных для формирования связи атрибутов класса сущности, наборов данных, их полей и агрегатных функций. На Фиг. 7 изображена кнопка 131, нажатием которой выбирают элемент, являющийся родительским элементом для текущего выбранного элемента.In some embodiments of the technical solution, when a user selects a template element in cases where the area of the element to be selected displayed in the browser is completely closed by the displayed areas of the child elements and it is impossible to directly select this element, any child element is selected and then parent elements are subsequently selected until until the desired element is selected to form its connection with the attribute of the entity class, or the data set, or the data set field, or and aggregate function of a data set. The selection of the next parent element is carried out using a control element, for example, a button displayed in conjunction with the lists of attributes of the entity class, data sets, their fields and aggregate functions available for linking. In FIG. 7, a button 131 is shown, by pressing which an element is selected that is the parent of the currently selected element.

В некоторых вариантах осуществления технического решения производят выбор атрибута класса сущности, или набора данных, или поля набора данных, или агрегатной функции набора данных, тем самым формируя и сохраняя связь с выбранным ранее элементом шаблона.In some embodiments of the technical solution, an entity class attribute, or a data set, or a data set field, or an aggregate function of a data set is selected, thereby forming and maintaining a connection with a previously selected template element.

В некоторых вариантах осуществления технического решения производят выбор атрибута класса сущности, или набора данных, или поля набора данных, или агрегатной функции набора данных и далее инициируют формирование и сохранение связи с ранее выбранным элементом шаблона при помощи элемента управления, например кнопки, отображаемой совместно со списками доступных для формирования связи атрибутов класса сущности, наборов данных, их полей и агрегатных функций. На Фиг. 7 изображена кнопка 130, запускающая процедуру формирования и сохранения связи.In some embodiments, the technical solution selects an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set, and then initiates the formation and maintenance of communication with a previously selected template element using a control, for example, a button displayed in conjunction with lists attributes of an entity class, data sets, their fields, and aggregate functions available for forming a relationship. In FIG. 7 depicts a button 130 that starts the process of forming and maintaining communication.

В некоторых вариантах осуществления технического решения информация о сформированной и сохраненной связи содержит идентификатор атрибута класса сущности, или набора данных, или поля набора данных, или агрегатной функции набора данных и идентификатор элемента шаблона. Под идентификатором элемента шаблона понимается любая информация, позволяющая исполняемому браузером программному коду получить доступ к данному элементу шаблона.In some embodiments of the technical solution, information about the generated and stored communication contains an identifier of an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set, and an identifier of a template element. By the identifier of a template element is meant any information that allows the program code executed by the browser to access this template element.

Для работы с документом на языке разметки браузер строит в памяти внутреннее представление документа и дает исполняемому им программному коду доступ к этому представлению в виде DOM, для чего браузер воспроизводит в памяти иерархию тегов документа. При этом в DOM каждый элемент, кроме корневого, имеет своего единственного прямого «родителя» (элемент верхнего уровня), ссылка на который хранится в составе самого элемента (parentNode для HTML и JavaScript), а все элементы могут иметь несколько «потомков» (элементов нижнего уровня) - в этом случае у каждого такого элемента имеется специальный массив ссылок на дочерние элементы (childNodes для HTML и JavaScript). Каждая ссылка в массиве имеет порядковый номер (индекс). Таким образом, для каждого элемента шаблона можно, итерационно обращаясь к прямым «родителям», определить уникальную последовательность индексов дочерних элементов, ведущую от корневого элемента (либо иного известного элемента) к данному элементу. В рамках настоящей заявки в некоторых случаях с целью сокращения обозначения будем называть эту последовательность «путем» (к элементу).To work with a document in a markup language, the browser builds the internal representation of the document in memory and gives the program code it executes access to this representation in the form of the DOM, for which the browser reproduces the hierarchy of document tags in memory. At the same time, in the DOM, each element, except the root, has its only direct "parent" (top-level element), a link to which is stored as part of the element itself (parentNode for HTML and JavaScript), and all elements can have several "children" (elements lower level) - in this case, each such element has a special array of links to child elements (childNodes for HTML and JavaScript). Each link in the array has a serial number (index). Thus, for each element of the template, iteratively referring to the direct “parents”, it is possible to determine a unique sequence of indices of child elements leading from the root element (or other known element) to this element. In the framework of this application, in some cases, in order to reduce the designation, we will call this sequence the "path" (to the element).

В некоторых вариантах осуществления технического решения, в случае использования шаблонов на языке HTML, в качестве корневого элемента используют элемент BODY.In some embodiments of the technical solution, in the case of using templates in the HTML language, the BODY element is used as the root element.

В некоторых вариантах осуществления технического решения, при формировании и сохранении связи элемента шаблона с атрибутом класса сущности или агрегатной функцией набора данных, в качестве идентификатора элемента шаблона используют путь к элементу шаблона от корневого элемента DOM. При формировании связи набора данных с элементом шаблона, являющимся корневым для группы элементов, предназначенных для отображения элементов набора данных, в качестве идентификатора также используют путь к корневому элементу группы от корневого элемента DOM. А при формировании связи элементов упомянутой группы с полями набора данных, в качестве идентификаторов элементов группы используют пути к этим элементам от корневого элемента группы. Например, путь к изображенному на Фиг. 3 элементу 113 от элемента BODY будет представлять собой следующую последовательность индексов дочерних элементов (слева направо): 3, 1, 3. Специалисту в данном уровне техники известно, что такие значения индексов дочерних элементов обусловлены стандартным способом разбора браузером исходного текста HTML, при котором использованные для форматирования исходного текста вспомогательные символы (например, перевод строки, возврат каретки, пробелы) помещаются браузером в отдельные текстовые узлы, которые также являются элементами DOM и входят в массивы дочерних элементов (childNodes) соответствующих элементов верхнего уровня, а сами индексы начинаются с нуля.In some embodiments of the technical solution, when forming and maintaining the connection of the template element with the attribute of the entity class or the aggregate function of the data set, the path to the template element from the root DOM element is used as the identifier of the template element. When forming the connection of the data set with the template element that is the root for the group of elements intended to display the elements of the data set, the path to the root element of the group from the root DOM element is also used as an identifier. And when forming the connection of the elements of the said group with the fields of the data set, the paths to these elements from the root element of the group are used as identifiers of the elements of the group. For example, the path to FIG. 3 to element 113 from the BODY element will be the following sequence of indices of child elements (from left to right): 3, 1, 3. A person skilled in the art knows that such values of indices of child elements are due to the standard way the browser parses the HTML source text in which for formatting the source text, auxiliary characters (for example, line feed, carriage return, spaces) are placed by the browser in separate text nodes, which are also DOM elements and are included in the mass you are the child elements (childNodes) of the corresponding top-level elements, and the indices themselves start from zero.

В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют значение атрибута ID данного элемента шаблона.In some embodiments of the technical solution, the value of the ID attribute of the given template element is used as the identifier of the template element.

В некоторых вариантах осуществления технического решения уникальные для шаблона значения атрибута ID устанавливают для всех элементов шаблона автоматически после формирования связи шаблона с классом сущности.In some embodiments of the technical solution, unique for the template ID attribute values are set for all elements of the template automatically after the connection of the template with the entity class.

В некоторых вариантах осуществления технического решения уникальное для шаблона значение атрибута ID устанавливают автоматически для элемента шаблона в процессе формирования связи этого элемента с атрибутом класса сущности, или набором данных, или полем набора данных, или агрегатной функцией набора данных.In some embodiments of the technical solution, a unique ID attribute value for the template is automatically set for the template element in the process of linking this element with an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set.

В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют выражение для запроса на языке XPath.In some embodiments of the technical solution, an expression for the XPath query is used as the identifier of the template element.

В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют уникальное значение элемента.In some embodiments of the technical solution, a unique element value is used as the identifier of the template element.

В некоторых вариантах осуществления технического решения для получения идентификаторов элементов шаблона используют язык запросов XPath.In some embodiments of the technical solution, XPath query language is used to obtain the identifiers of the template elements.

В некоторых вариантах осуществления технического решения после формирования связи элемента шаблона с атрибутом класса сущности, или набором данных, или полем набора данных, или агрегатной функцией набора данных этот элемент графически выделяют.In some embodiments of the technical solution, after the connection of the template element with the attribute of the entity class, or with the data set, or with the data set field, or with the aggregate function of the data set, this element is graphically highlighted.

В некоторых вариантах осуществления технического решения сформированные связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями сохраняют на сервере в БД.In some embodiments of the technical solution, the formed relationships of template elements with attributes of the entity class, data sets, their fields and aggregate functions are stored on the server in the database.

В некоторых вариантах осуществления технического решения пути к элементам шаблона сохраняются в виде строк, содержащих цифровые представления числовых значений индексов, расположенных слева направо или справа налево и разделенных специальным символом или группой символов. Так, в таблице 121, изображенной на Фиг. 5, путь к изображенному на Фиг. 3 элементу 113 от элемента BODY сохранен в виде строки «3; 1; 3». В таблице 136, изображенной на Фиг. 8, путь к изображенному на Фиг. 3 элементу 118 от элемента BODY сохранен в виде строки «7; 5; 9». В таблице 134, изображенной на Фиг. 8, путь к изображенному на Фиг. 3 элементу 115 от элемента BODY сохранен в виде строки «7; 3». В таблице 135, изображенной на Фиг. 8, путь к изображенному на Фиг. 3 элементу 116 от элемента 115 сохранен в виде строки «3».In some embodiments of the technical solution, the paths to the elements of the template are saved as strings containing digital representations of the numerical values of the indices, left to right or right to left and separated by a special symbol or group of characters. Thus, in table 121 shown in FIG. 5, the path to FIG. 3 to element 113 from the BODY element is saved as a string “3; one; 3 ". In the table 136 shown in FIG. 8, the path to FIG. 3 to element 118 from the BODY element is saved as a string “7; 5; 9". In the table 134 shown in FIG. 8, the path to FIG. 3 to element 115 from the BODY element is saved as a string “7; 3 ". In the table 135 shown in FIG. 8, the path to FIG. 3 to element 116 from element 115 is stored as a string “3”.

Специалисту в данном уровне техники очевидно, что в качестве БД может использоваться любой тип БД, известный из уровня техники. Например, иерархические, сетевые, реляционные и объектно-ориентированные БД.One skilled in the art will appreciate that any type of database known in the art can be used as a database. For example, hierarchical, network, relational, and object-oriented databases.

Результаты работы способа подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы могут использоваться, но не ограничиваясь, следующим образом:The results of the method of preparing documents in markup languages when implementing a user interface for working with information system information can be used, but not limited to, as follows:

- получают шаблон представления экземпляра класса сущности.- receive a template for representing an instance of an entity class.

Пользователь инициирует в браузере запрос к серверу на редактирование экземпляра класса сущности. В составе запроса браузер передает серверу идентификатор экземпляра класса сущности. Используя идентификатор экземпляра класса сущности, сервер обращается к БД и извлекает из таблицы 132 идентификатор класса сущности, после чего использует его для получения метаданных шаблона представления экземпляра класса сущности из таблицы 120, в том числе имя файла шаблона. Сервер внедряет в шаблон элемент, подключающий библиотеку программного кода, обеспечивающую получение браузером (на следующем шаге способа) необходимых данных и метаданных (значений атрибутов экземпляра класса сущности, наборов данных и значений агрегатных функций, а также метаданные атрибутов класса сущности, метаданные наборов данных, их полей и агрегатных функций, в том числе информацию о связях атрибутов класса сущности, наборов данных, их полей и агрегатных функций с элементами шаблонов) и размещение полученных данных в элементах шаблона, а также обеспечивающую действия пользователя по редактированию значений атрибутов экземпляра класса сущности в браузере и сохранению измененных значений в БД; дополнительно сервер внедряет в шаблон элемент с идентификатором экземпляра класса сущности, после чего передает шаблон браузеру для отображения. На Фиг. 9 изображен пример 137 варианта внедрения элемента для подключения библиотеки и внедрения идентификатора экземпляра класса сущности, в случае если библиотека находится во внешнем файле.The user initiates a request to the server in the browser to edit the entity class instance. As part of the request, the browser passes the identifier of the entity class instance to the server. Using the identifier of the instance of the entity class, the server accesses the database and extracts the identifier of the entity class from table 132, and then uses it to obtain metadata of the template for representing the instance of the entity class from table 120, including the name of the template file. The server implements an element in the template that connects the library of program code, which ensures that the browser (at the next step of the method) receives the necessary data and metadata (values of attributes of an instance of an entity class, data sets and values of aggregate functions, as well as metadata of attributes of an entity class, metadata of data sets, their fields and aggregate functions, including information about the relationships between attributes of an entity class, data sets, their fields and aggregate functions with template elements) and the placement of the received data in elements Ablon, as well as providing the user for editing an instance attribute values entity actions in the browser and conservation of changed values in a database; in addition, the server implements an element with the identifier of the entity class instance in the template, after which it passes the template to the browser for display. In FIG. Figure 9 shows an example 137 of an implementation option for an element for connecting a library and embedding an identifier for an instance of an entity class, if the library is in an external file.

В некоторых вариантах осуществления технического решения сервер внедряет в шаблон непосредственно программный код библиотеки. На Фиг. 9 изображен пример 140 варианта внедрения элемента для подключения библиотеки и внедрения идентификатора экземпляра класса сущности, в случае если в шаблон внедряется непосредственно составляющий библиотеку программный код.In some embodiments of the technical solution, the server embeds the library program code directly into the template. In FIG. Figure 9 shows an example 140 of an implementation option for an element for connecting a library and embedding an identifier for an instance of an entity class, if the program code directly constituting the library is embedded in the template.

Библиотека может быть реализована на любом языке программирования, поддерживаемом браузером, включая, но не ограничиваясь, JavaScript или Dart.The library can be implemented in any programming language supported by the browser, including, but not limited to, JavaScript or Dart.

В некоторых вариантах осуществления технического решения внешняя библиотека может быть расположена на удаленном сервере, доступ к которому осуществляется по Internet;In some embodiments of the technical solution, the external library may be located on a remote server accessed via the Internet;

- получают данные и метаданные экземпляра сущности, наборов данных, их полей и агрегатных функций, в том числе информацию о связях атрибутов класса сущности, наборов данных, их полей и агрегатных функций с элементами шаблонов.- receive data and metadata of an entity instance, data sets, their fields and aggregate functions, including information about the relationships of attributes of an entity class, data sets, their fields and aggregate functions with template elements.

В некоторых вариантах осуществления технического решения получение данных и метаданных экземпляра класса сущности, наборов данных, их полей и агрегатных функций осуществляют с использованием концепции AJAX. Возможная структура БД и примеры возможного состава данных и метаданных изображены на Фиг. 1, Фиг. 5 и Фиг. 8. В некоторых вариантах осуществления технического решения полученные из БД данные и метаданные помещают в памяти браузера в составе объекта, к которому может обращаться программный код подключенной на предыдущем шаге библиотеки. На Фиг. 10 изображен пример объекта (в виде программного кода на языке JavaScript по созданию объекта) для хранения в памяти браузера данных и метаданных экземпляра сущности, наборов данных, их полей и агрегатных функций, включая информацию о связях атрибутов класса сущности, наборов данных, их полей и агрегатных функций с элементами шаблонов. Состав данных и метаданных, содержащихся в изображенном на Фиг. 10 примере объекта, полностью соответствует примерам возможного состава данных и метаданных, изображенных на Фиг. 1, Фиг. 5 и Фиг. 8;In some embodiments of the technical solution, obtaining data and metadata of an instance of an entity class, data sets, their fields and aggregate functions is performed using the AJAX concept. A possible database structure and examples of possible data and metadata composition are shown in FIG. 1, FIG. 5 and FIG. 8. In some embodiments of the technical solution, data and metadata obtained from the database are placed in the browser memory as part of an object that can be accessed by the program code of the library connected in the previous step. In FIG. 10 shows an example of an object (in the form of JavaScript code for creating an object) for storing data and metadata of an entity instance, data sets, their fields and aggregate functions in the browser’s memory, including information about the relationships between attributes of an entity class, data sets, their fields and aggregate functions with template elements. The composition of the data and metadata contained in FIG. 10 as an example of an object, fully corresponds to examples of possible composition of data and metadata depicted in FIG. 1, FIG. 5 and FIG. 8;

- отображают экземпляр сущности.- display an entity instance.

В некоторых вариантах осуществления технического решения программный код подключенной ранее библиотеки использует помещенный на предыдущем шаге в памяти браузера объект с данными и метаданными экземпляра сущности, наборов данных, их полей и агрегатных функций для размещения данных в составе элементов шаблона. Например: изображенная на Фиг. 11 функция 151 в цикле обращается к массиву 144 объектов (в которых хранятся в сопоставленном виде идентификаторы атрибутов сущности, значения атрибутов экземпляра сущности, а также пути к элементам шаблона для представления значений атрибутов экземпляра класса сущности) и, используя вспомогательную функцию 150, находит элементы шаблона, после чего помещает в них значения атрибутов экземпляра класса сущности; изображенная на Фиг. 11 функция 152 в цикле обращается к массиву 145 наборов данных, далее во вложенном цикле обращается к массиву 149 объектов (в которых хранятся в сопоставленном виде значения агрегатных функций набора данных и пути к элементам шаблона для представления этих значений) и, используя вспомогательную функцию 150, находит элементы шаблона, после чего помещает в них значения агрегатных функций набора данных; изображенная на Фиг. 12 функция 153 в цикле обращается к массиву 145 наборов данных и, используя хранящееся в свойстве 146 значение пути к корневому элементу группы элементов шаблона, предназначенных для представления данных строки табличной части набора данных, и вспомогательную функцию 150, находит корневой элемент группы, далее во вложенном цикле обращается к массиву 148 строк табличной части набора данных и, в случае необходимости, создает в структуре шаблона дополнительную копию группы элементов шаблона, предназначенных для представления данных строки табличной части набора данных, а затем в цикле по массиву составляющих строку значений элементов набора данных помещает эти значения в элементы группы, для чего использует значения путей к элементам относительно корневого элемента, которые хранятся в массиве 147. На Фиг. 13 изображено визуальное представление браузером примера шаблона с размещенными в составе его элементов значениями атрибутов экземпляра класса сущности, элементами набора данных и значением агрегатной функции, которые соответствуют изображенному на Фиг. 10 примеру объекта в памяти браузера и соответствуют примерам возможного состава данных и метаданных, изображенных на Фиг. 1, Фиг. 5 и Фиг. 8.In some embodiments of the technical solution, the program code of the previously connected library uses the object placed at the previous step in the browser memory with the data and metadata of the entity instance, data sets, their fields and aggregate functions to place the data as part of the template elements. For example: depicted in FIG. 11, function 151 in a cycle accesses an array of 144 objects (which store identifiers of entity attributes, values of attributes of an entity instance, and also paths to template elements for representing attribute values of an instance of an entity class) and, using auxiliary function 150, finds template elements , after which it places the attribute values of the entity class instance in them; depicted in FIG. 11, the function 152 in a cycle accesses an array of 145 data sets, then in a nested cycle it accesses an array of 149 objects (which store the values of the aggregate functions of the data set and the path to the elements of the template in order to represent these values) and, using the auxiliary function 150, finds the elements of the template, and then puts the values of the aggregate functions of the data set in them; depicted in FIG. 12, the function 153 in a cycle accesses the array of 145 data sets and, using the value of the path to the root element of the group of template elements stored in property 146 to represent the data of the row of the table part of the data set, and the auxiliary function 150 finds the root element of the group, then in the nested the loop accesses an array of 148 rows of the tabular part of the data set and, if necessary, creates an additional copy of the group of template elements in the structure of the template for representing the data of the table row of the second part of the data set, and then in a cycle through the array of the values of the elements of the data set that compose the string, puts these values into the elements of the group, for which it uses the values of the paths to the elements relative to the root element, which are stored in the array 147. FIG. 13 shows a visual representation by the browser of an example of a template with attribute values of an entity class instance, data set elements, and an aggregate function value that correspond to that shown in FIG. 10 as an example of an object in the browser memory and correspond to examples of possible composition of data and metadata depicted in FIG. 1, FIG. 5 and FIG. 8.

В некоторых вариантах осуществления технического решения пути к элементам шаблона используют только для первоначального поиска. Далее этим элементам назначают временные синтетические идентификаторы (используя атрибут ID), чтобы сократить время обращения к элементам за счет использования предоставляемой DOM возможности поиска элементов по значению атрибута ID;In some embodiments of the technical solution, the paths to the elements of the template are used only for the initial search. Further, these elements are assigned temporary synthetic identifiers (using the ID attribute) in order to reduce the time of accessing the elements by using the DOM-provided ability to search for elements by the value of the ID attribute;

- осуществляют редактирование экземпляра класса сущности.- carry out editing an instance of an entity class.

Редактирование экземпляра класса сущности заключается в изменении значений атрибутов экземпляра класса сущности в его представлении в браузере.Editing an instance of an entity class consists in changing the attribute values of an instance of an entity class in its presentation in the browser.

В некоторых вариантах осуществления технического решения в случае использования шаблонов на языке HTML используют возможность изменения значений атрибутов экземпляра класса сущности в режиме WYSIWYG, для чего программный код ранее подключенной библиотеки, после помещения значений атрибутов экземпляра класса сущности в элементы шаблона, дополнительно устанавливает этим элементам значение атрибута CONTENTEDITABLE, равное TRUE.In some embodiments of the technical solution, in the case of using templates in the HTML language, they use the ability to change the attribute values of an instance of an entity class in WYSIWYG mode, for which the program code of a previously connected library, after placing the attribute values of an instance of an entity class in the template elements, additionally sets these elements an attribute value CONTENTEDITABLE equal to TRUE.

В некоторых вариантах осуществления технического решения изменение значений атрибутов экземпляра класса сущности осуществляют с использованием диалогового окна, которое появляется при выборе пользователем соответствующего элемента шаблона.In some embodiments of the technical solution, changing attribute values of an instance of an entity class is performed using the dialog box that appears when the user selects the appropriate template element.

В некоторых вариантах осуществления технического решения с целью облегчения работы пользователя по изменению значений атрибутов экземпляра класса сущности, те элементы шаблона, которые содержат доступные для изменения значения, графически выделяют.In some embodiments of the technical solution, in order to facilitate the user’s work on changing attribute values of an instance of an entity class, those template elements that contain values available for changing are graphically highlighted.

В некоторых вариантах осуществления технического решения с целью облегчения работы пользователя по изменению значений атрибутов экземпляра сущности те элементы шаблона, которые содержат уже измененные пользователем значения, графически выделяют;In some embodiments of the technical solution, in order to facilitate the user’s work on changing the values of the attributes of the entity instance, those elements of the template that contain values that have already been changed by the user are graphically highlighted;

- сохраняют измененный экземпляр класса сущности.- save the modified instance of the entity class.

Пользователь инициирует в браузере выполнение процедуры сохранения экземпляра класса сущности, которая входит в состав подключенной ранее библиотеки программного кода. Эта процедура, используя хранящиеся в памяти браузера данные и метаданные экземпляра сущности и его атрибутов (например, в составе объекта, пример которого изображен на Фиг. 10), находит элементы шаблона, в которых находятся значения атрибутов экземпляра класса сущности, считывает эти значения и осуществляет запрос к серверу с целью сохранения этих значений.The user initiates in the browser the procedure for saving an instance of the entity class, which is part of the previously connected library of program code. This procedure, using the data and metadata of the entity instance and its attributes stored in the browser’s memory (for example, as part of an object, an example of which is shown in Fig. 10), finds the template elements that contain the attribute values of the entity class instance, reads these values and implements A request to the server to store these values.

В некоторых вариантах осуществления технического решения запрос к серверу осуществляют с использованием концепции AJAX.In some embodiments, a server request is made using the AJAX concept.

В некоторых вариантах осуществления технического решения в запрос к серверу включают только измененные значения атрибутов экземпляра класса сущности, для чего формирующая запрос процедура осуществляет сравнение значений атрибутов экземпляра класса сущности, которые находятся в элементах шаблона, со значениями атрибутов экземпляра класса сущности, которые ранее были получены от сервера и хранятся в памяти браузера (например, в составе объекта, пример которого изображен на Фиг. 10).In some embodiments of the technical solution, only the changed values of the attributes of the entity class instance are included in the server request, for which the request-generating procedure compares the values of the attributes of the entity class instance that are in the template elements with the values of the attributes of the entity class instance that were previously received from server and stored in the browser memory (for example, as part of an object, an example of which is shown in Fig. 10).

Сервер обрабатывает запрос и сохраняет значения атрибутов экземпляра сущности в БД.The server processes the request and stores the attribute values of the entity instance in the database.

В некоторых вариантах осуществления технического решения сохранение значений атрибутов экземпляра сущности в БД осуществляют с помощью ORM.In some embodiments of the technical solution, the storage of the values of the attributes of the entity instance in the database is performed using ORM.

На чертежах показан один из вариантов воплощения настоящего технического решения.The drawings show one embodiment of the present technical solution.

Настоящее подробное описание составлено с приведением различных, не имеющих ограничительного и исчерпывающего характера вариантов осуществления. В то же время специалистам, имеющим средний уровень компетентности в рассматриваемой области техники, очевидно, что различные замены, модификации или сочетания любых раскрытых здесь вариантов осуществления (в том числе частично) могут быть воспроизведены в пределах объема настоящего технического решения. Таким образом, подразумевается и понимается, что настоящее описание включает дополнительные варианты осуществления, суть которых не изложена здесь в явно выраженной форме. Такие варианты осуществления могут быть получены путем, например, сочетания, модификации или преобразования каких-либо действий, компонентов, элементов, свойств, аспектов, характеристик, ограничений и пр., относящихся к приведенным здесь и не имеющим ограничительного характера вариантам осуществления.The present detailed description is made with the provision of various, not having a restrictive and exhaustive nature of the embodiments. At the same time, for specialists having an average level of competence in the considered field of technology, it is obvious that various substitutions, modifications or combinations of any of the embodiments disclosed herein (including partially) can be reproduced within the scope of this technical solution. Thus, it is understood and understood that the present description includes additional embodiments, the essence of which is not set forth here in an explicit form. Such embodiments may be obtained, for example, by combining, modifying, or transforming any actions, components, elements, properties, aspects, characteristics, limitations, etc., related to the embodiments presented herein and not being restrictive.

Claims (26)

1. Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы, включающий:1. A method of preparing documents in markup languages when implementing a user interface for working with data from an information system, including: - формируют метаданные для, по крайней мере, одного класса сущности, его атрибутов и наборов данных, элементов наборов данных, включающих, по крайней мере, поля наборов данных и агрегатные функции наборов данных;- form metadata for at least one entity class, its attributes and data sets, data set elements, including at least data set fields and aggregate functions of data sets; - формируют шаблон представления экземпляров вышеупомянутого класса сущности, состоящий, по крайней мере, из одного документа, сформированного на, по крайней мере, одном языке разметки;- form a template for representing instances of the aforementioned entity class, consisting of at least one document generated in at least one markup language; - формируют и сохраняют связь шаблона и класса сущности;- form and maintain a relationship between the template and the entity class; - отображают шаблон, формируют и сохраняют связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, при этом- display the template, form and save the relationship of the template elements with the attributes of the entity class, data sets, their fields and aggregate functions, while - выбирают элемент шаблона и отображают информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях;- choose a template element and display information about the attributes of the entity class available for forming the connection, data sets, their fields and aggregate functions; - выбирают атрибут класса сущности, или набор данных, или поле набора данных, или агрегатную функцию набора данных;- choose an attribute of an entity class, or a data set, or a data set field, or an aggregate function of a data set; - формируют и сохраняют связь, содержащую идентификатор выбранного ранее элемента шаблона и идентификатор выбранного на предыдущем шаге атрибута класса сущности, или набора данных, или поля набора данных, или агрегатной функции набора данных.- form and save a link containing the identifier of the previously selected template element and the identifier of the attribute of the entity class or data set selected in the previous step, or the data set field, or the aggregate function of the data set. 2. Способ по п. 1, в котором наборы данных содержат значения атрибутов и значения агрегатных функций, вычисленные на основе значений этих атрибутов, причем атрибуты принадлежат экземплярам сущностей, связанным с представляемым экземпляром сущности.2. The method according to claim 1, in which the data sets contain attribute values and aggregate function values calculated based on the values of these attributes, the attributes belonging to entity instances associated with the entity instance being represented. 3. Способ по п. 1, в котором языком разметки является HTML, или XML, или XHTML, или DocBook.3. The method of claim 1, wherein the markup language is HTML, or XML, or XHTML, or DocBook. 4. Способ по п. 1, в котором шаблон формируют при помощи текстовых редакторов с подсветкой синтаксиса, или WYSIWYG-редакторов, или онлайн-редакторов.4. The method according to p. 1, in which the template is formed using text editors with syntax highlighting, or WYSIWYG editors, or online editors. 5. Способ по п. 1, в котором элементам шаблона, предназначенным для представления значений атрибутов экземпляра класса сущности, устанавливают значения, по типу данных и размеру соответствующие атрибутам класса сущности.5. The method according to claim 1, in which the elements of the template intended to represent the values of the attributes of an instance of an entity class are set to values corresponding to the attributes of the entity class by data type and size. 6. Способ по п. 1, в котором элементам шаблона, предназначенным для представления элементов наборов данных, устанавливают значения, по типу данных и размеру соответствующие элементам наборов данных.6. The method according to claim 1, in which the elements of the template intended to represent the elements of the data sets are set to values of the data type and size corresponding to the elements of the data sets. 7. Способ по п. 1, в котором в шаблоне представления экземпляров класса сущности дополнительно формируют группы элементов для представления элементов наборов данных и создают структурные элементы, являющиеся корневыми элементами фрагментов иерархической структуры документа, в которые входят все элементы соответствующих упомянутых групп элементов.7. The method according to claim 1, in which in the template for representing instances of an entity class, groups of elements are additionally formed for representing elements of data sets and structural elements are created that are root elements of fragments of the hierarchical structure of the document, which include all elements of the corresponding mentioned element groups. 8. Способ по п. 1, в котором сформированный шаблон сохраняют на сервере в БД.8. The method according to claim 1, in which the generated template is stored on the server in the database. 9. Способ по п. 1, в котором информацию о сформированной связи шаблона и класса сущности сохраняют на сервере в БД.9. The method according to claim 1, in which information about the formed relationship between the template and the entity class is stored on the server in the database. 10. Способ по п. 1, в котором в составе информации о сформированной связи шаблона и класса сущности дополнительно сохраняют идентификатор типа шаблона и идентификатор языка пользователей, с использованием которого сформированы значения вспомогательных элементов шаблона.10. The method according to p. 1, in which, as part of the information about the formed connection between the template and the entity class, the identifier of the type of the template and the identifier of the user language are additionally stored using which the values of the auxiliary elements of the template are generated. 11. Способ по п. 1, в котором перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, подключающий библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.11. The method according to claim 1, in which, before displaying the template, the server retrieves the template from the database and injects an element with the identifier of the entity class into it using information about the relationship between the template and the entity class, and an element that connects the library of program code designed to provide user actions on the formation and preservation of relationships of template elements with attributes of the entity class, data sets, their fields and aggregate functions. 12. Способ по п. 1, в котором перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, содержащий программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.12. The method according to claim 1, in which, before displaying the template, the server retrieves the template from the database and injects an element with the identifier of the entity class into it using information about the relationship between the template and the entity class, and an element containing program code designed to provide user actions for the formation and preservation of relationships of template elements with attributes of the entity class, data sets, their fields and aggregate functions. 13. Способ по п. 1, в котором для выбора элемента шаблона при наведении пользователем указателя на элемент шаблона данный элемент графически выделяют.13. The method according to p. 1, in which to select a template element when the user hovers a pointer over a template element, this element is graphically isolated. 14. Способ по п. 1, в котором информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях отображают в виде списков, в которые включают только свободные, еще не привязанные к какому-либо элементу шаблона атрибуты, наборы данных, их поля и агрегатные функции.14. The method according to p. 1, in which information about the attributes of an entity class available for forming a connection, data sets, their fields and aggregate functions are displayed in the form of lists, which include only free attributes that are not yet attached to any element of the template, data sets, their fields and aggregate functions. 15. Способ по п. 1, в котором информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях отображают в отдельном окне браузера или в перемещаемой области внутри окна с шаблоном, при этом формирование связей с элементами шаблона осуществляют с использованием способа Drag-and-Drop.15. The method according to p. 1, in which information about the attributes of the entity class available for forming a connection, data sets, their fields and aggregate functions is displayed in a separate browser window or in a movable area inside the template window, while forming links with template elements using the drag-and-drop method. 16. Способ по п. 1, в котором после формирования связи элемента шаблона с атрибутом класса сущности, или набором данных, или полем набора данных, или агрегатной функцией набора данных этот элемент графически выделяют.16. The method according to p. 1, in which after forming the connection of the template element with the attribute of the entity class, or the data set, or the data set field, or the aggregate function of the data set, this element is graphically isolated. 17. Способ по п. 1, в котором в качестве идентификатора элемента шаблона используют последовательность индексов дочерних элементов, ведущую к элементу от известного элемента шаблона, или значение атрибута ID, или выражение для запроса на языке XPath, или уникальное значение элемента.17. The method of claim 1, wherein the sequence of indices of the child elements leading to the element from a known template element, or the value of an ID attribute, or an XPath query expression, or a unique element value is used as the identifier of a template element. 18. Способ по п. 1, в котором для получения идентификаторов элементов шаблона используют язык запросов XPath.18. The method of claim 1, wherein the XPath query language is used to obtain the identifiers of the template elements. 19. Способ по п. 1, в котором сформированные связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями сохраняют на сервере в БД.19. The method according to claim 1, in which the formed relations of the template elements with attributes of the entity class, data sets, their fields and aggregate functions are stored on the server in the database.
RU2015141532A 2015-09-30 2015-09-30 Method of preparing documents in markup languages while implementing user interface for working with information system data RU2613026C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2015141532A RU2613026C1 (en) 2015-09-30 2015-09-30 Method of preparing documents in markup languages while implementing user interface for working with information system data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015141532A RU2613026C1 (en) 2015-09-30 2015-09-30 Method of preparing documents in markup languages while implementing user interface for working with information system data

Publications (1)

Publication Number Publication Date
RU2613026C1 true RU2613026C1 (en) 2017-03-14

Family

ID=58458432

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015141532A RU2613026C1 (en) 2015-09-30 2015-09-30 Method of preparing documents in markup languages while implementing user interface for working with information system data

Country Status (1)

Country Link
RU (1) RU2613026C1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2650032C1 (en) * 2017-03-20 2018-04-06 Алексей Петрович Семенов Electronic database and method of its formation
RU2686032C1 (en) * 2018-05-29 2019-04-23 Общество с ограниченной ответственностью "Солит Клаудз" Method of forming document openehr

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060004845A1 (en) * 2004-06-03 2006-01-05 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility
WO2007030683A2 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Real-time synchronization of xml data between applications
JP2009508228A (en) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション Programmability for XML data store for documents
WO2009045918A2 (en) * 2007-09-28 2009-04-09 Microsoft Corporation Intelligent editing of relational models
RU2368943C2 (en) * 2004-04-30 2009-09-27 Майкрософт Корпорейшн Modular document format
EA012691B1 (en) * 2003-07-08 2009-12-30 Юэс Линкс Элэлси An automated publishing system that facilitates collaborative editing and accountability through virtual document architecture
RU2382403C2 (en) * 2004-09-15 2010-02-20 Майкрософт Корпорейшн Creation and control of content-related objects
RU2386997C2 (en) * 2004-05-14 2010-04-20 Майкрософт Корпорейшн Method and system for coordinating web database schemes

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EA012691B1 (en) * 2003-07-08 2009-12-30 Юэс Линкс Элэлси An automated publishing system that facilitates collaborative editing and accountability through virtual document architecture
RU2368943C2 (en) * 2004-04-30 2009-09-27 Майкрософт Корпорейшн Modular document format
RU2386997C2 (en) * 2004-05-14 2010-04-20 Майкрософт Корпорейшн Method and system for coordinating web database schemes
US20060004845A1 (en) * 2004-06-03 2006-01-05 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility
RU2382403C2 (en) * 2004-09-15 2010-02-20 Майкрософт Корпорейшн Creation and control of content-related objects
WO2007030683A2 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Real-time synchronization of xml data between applications
JP2009508228A (en) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション Programmability for XML data store for documents
WO2009045918A2 (en) * 2007-09-28 2009-04-09 Microsoft Corporation Intelligent editing of relational models

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2650032C1 (en) * 2017-03-20 2018-04-06 Алексей Петрович Семенов Electronic database and method of its formation
RU2686032C1 (en) * 2018-05-29 2019-04-23 Общество с ограниченной ответственностью "Солит Клаудз" Method of forming document openehr

Similar Documents

Publication Publication Date Title
WO2017058047A1 (en) Method of preparing documents in markup languages
US10606573B2 (en) System and method for computer language migration using a re-architecture tool for decomposing a legacy system and recomposing a modernized system
US9052908B2 (en) Web application development framework
US6748569B1 (en) XML server pages language
US9430583B1 (en) Extracting a portion of a document, such as a web page
US7720885B2 (en) Generating a word-processing document from database content
US20020143774A1 (en) Dynamic, hierarchical data exchange system
US9967370B2 (en) OData enabled mobile software applications
JP2004240954A (en) Method for presenting hierarchical data
US9817811B2 (en) Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method
US20050223023A1 (en) Generating pages suitable for viewing over the internet
Jarmul et al. Python web scraping
CN113177168A (en) Positioning method based on Web element attribute characteristics
Thao et al. Using versioned tree data structure, change detection and node identity for three-way xml merging
RU2613026C1 (en) Method of preparing documents in markup languages while implementing user interface for working with information system data
JP2003281149A (en) Method of setting access right and system of structured document management
Fong et al. An interpreter approach for exporting relational data into XML documents with structured export markup language
WO2010147453A1 (en) System and method for designing a gui for an application program
Collins Pro HTML5 with Visual Studio 2015
US11210454B2 (en) Method for preparing documents written in markup languages while implementing a user interface for dealing with data of an information system
RU2651161C1 (en) Method of preparing documents in markup languages in implementation of the user interface for working with informational system data
Ehrensberger Datamockups: design tool for content-powered mockups
Faulstich Building Hyper View web sites
Karayiannis et al. The MySQL Database Server
Zhong Design of personalized recommendation algorithm for mobile intelligent book management system based on cloud computing technology