СПОСОБ ПОДГОТОВКИ ДОКУМЕНТОВ НА ЯЗЫКАХ РАЗМЕТКИ ПРИ РЕАЛИЗАЦИИ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ДЛЯ РАБОТЫ С ДАННЫМИ ИНФОРМАЦИОННОЙ СИСТЕМЫ Российский патент 2017 года по МПК G06F3/48 

Описание патента на изобретение RU2613026C1

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

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

Данные в компьютерных информационных системах обычно обрабатывают как экземпляры сущностей, имеющих некоторый постоянный или переменный набор атрибутов. В настоящее время широко распространено использование в компьютерных информационных системах языков разметки, включая, но не ограничиваясь, HTML и XML, для хранения, передачи, публикации и других задач работы с данными, в том числе и для реализации пользовательского интерфейса. При этом, возможно, наибольшую популярность приобрели способы, когда значения атрибутов экземпляров сущностей информационной системы включают в документы на языках разметки и предоставляют пользователю для обработки в браузере. Пользователь может просматривать и редактировать значения атрибутов экземпляров сущностей в браузере, а также инициировать сохранение измененных значений в информационной системе. Следует подчеркнуть, что в документах на языках разметки, кроме собственно данных, присутствуют вспомогательные элементы, которые определяют стили и/или местоположение отображения данных в браузере, а также определяют смысловое значение данных. Дополнительно, в таких документах могут присутствовать элементы оформления (например, фоновые изображения), вспомогательные текстовые фрагменты (например, поясняющие надписи) и другие элементы, не относящиеся к данным.

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

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

Данное техническое решение направлено на устранение недостатков, присущих известным решениям из уровня техники.

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

Указанный технический результат достигается благодаря способу подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы, в котором формируют метаданные для, по крайней мере, одного класса сущности, его атрибутов и наборов данных, элементов наборов данных, включающих, по крайней мере, поля наборов данных и агрегатные функции наборов данных 154 (Фиг. 14); формируют шаблон представления экземпляров вышеупомянутого класса сущности, состоящий, по крайней мере, из одного документа, сформированного на, по крайней мере, одном языке разметки 155 (Фиг. 14); формируют и сохраняют связь шаблона и класса сущности 156 (Фиг. 14); отображают шаблон, формируют и сохраняют связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями 157 (Фиг. 14), при этом: выбирают элемент шаблона и отображают информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях; выбирают атрибут класса сущности, или набор данных, или поле набора данных, или агрегатную функцию набора данных; формируют и сохраняют связь, содержащую идентификатор выбранного ранее элемента шаблона и идентификатор выбранного на предыдущем шаге атрибута класса сущности, или набора данных, или поля набора данных, или агрегатной функции набора данных.

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

В некоторых вариантах осуществления технического решения языком разметки является HTML, или XML, или XHTML, или DocBook.

В некоторых вариантах осуществления технического решения шаблон формируют при помощи текстовых редакторов с подсветкой синтаксиса, или WYSIWYG-редакторов, или онлайн-редакторов.

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

В некоторых вариантах осуществления технического решения элементам шаблона, предназначенным для представления элементов наборов данных, устанавливают значения, по типу данных и размеру соответствующие элементам наборов данных.

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

В некоторых вариантах осуществления технического решения сформированный шаблон сохраняют на сервере в БД.

В некоторых вариантах осуществления технического решения информацию о сформированной связи шаблона и класса сущности сохраняют на сервере в БД.

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

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

В некоторых вариантах осуществления технического решения библиотеку программного кода реализуют на языке программирования, поддерживаемом браузером.

В некоторых вариантах осуществления технического решения языком программирования, поддерживаемым браузером, является JavaScript или Dart.

В некоторых вариантах осуществления технического решения библиотеку программного кода располагают на удаленном сервере, доступ к которому осуществляют по Internet.

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

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

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

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

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

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

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

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

В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют значение атрибута ID.

В некоторых вариантах осуществления технического решения уникальные для шаблона значения атрибута ID устанавливают для всех элементов шаблона автоматически после формирования связи шаблона с классом сущности.

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

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

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

В некоторых вариантах осуществления технического решения для получения идентификаторов элементов шаблона используют язык запросов XPath.

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

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

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

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

Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:

на Фиг. 1 изображен фрагмент возможной структуры БД с указанием атрибутного состава таблиц, примерного содержания таблиц и связей между таблицами (в виде стрелок), на котором обозначены:

таблица 100 классов сущностей, в которой хранятся метаданные классов сущностей;

таблица 101 атрибутов сущностей, в которой хранятся метаданные атрибутов сущностей; связь атрибута сущности из таблицы 101 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных атрибута сущности (в атрибуте «ID класса» таблицы 101);

таблица 102 наборов данных, в которой хранятся метаданные наборов данных; связь набора данных из таблицы 102 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных набора данных (в атрибуте «ID класса» таблицы 102);

таблица 103 полей наборов данных, в которой хранятся метаданные полей наборов данных; связь поля набора данных из таблицы 103 с набором данных в таблице 102 обеспечивается хранением значения идентификатора набора данных в составе метаданных поля набора данных (в атрибуте «ID набора» таблицы 103); связь поля набора данных из таблицы 103 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных поля набора данных (в атрибуте «ID класса» таблицы 103); связь поля набора данных из таблицы 103 с атрибутом сущности в таблице 101 обеспечивается хранением значения идентификатора атрибута сущности в составе метаданных поля набора данных (в атрибуте «ID атрибута» таблицы 103);

таблица 104 агрегатных функций, в которой хранятся метаданные агрегатных функций наборов данных; связь агрегатной функции из таблицы 104 с набором данных в таблице 102 обеспечивается хранением значения идентификатора набора данных в составе метаданных агрегатной функции (в атрибуте «ID набора» таблицы 104); связь агрегатной функции из таблицы 104 с полем набора данных в таблице 103 обеспечивается хранением значения идентификатора поля набора данных в составе метаданных агрегатной функции (в атрибуте «ID поля» таблицы 104);

на Фиг. 2 изображен пример процесса копирования фрагмента иерархической структуры документа на языке HTML при помощи программного кода на языке JavaScript, на котором обозначены:

фрагмент 105 иерархической структуры документа на языке HTML и отображение 106 этого фрагмента в браузере;

программный код 107 на языке JavaScript, который копирует элемент 108 вместе с вложенными элементами и вставляет копию после оригинала;

фрагмент 109 иерархической структуры документа на языке HTML, внутреннее представление которого в браузере аналогично внутреннему представлению результата работы программного кода 107, а его отображение 110 в браузере идентично отображению результата работы программного кода 107;

на Фиг. 3 изображен сокращенный фрагмент одного из возможных вариантов шаблона на языке HTML, на котором обозначены:

вспомогательный элемент 111 типа «горизонтальная линия»;

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

элемент 113 шаблона (для представления значения атрибута «Подразделение» экземпляра сущности «План») и шаблонное значение 114 этого элемента;

корневой элемент 115 (для группы элементов, предназначенных для представления значений атрибутов экземпляров сущности «Задача»);

элемент 116 упомянутой группы (предназначенный для представления значения атрибута «Формулировка») и шаблонное значение 117 этого элемента;

элемент 118 (для представления результата агрегатной функции) и шаблонное значение 119 этого элемента;

на Фиг. 4 изображено визуальное представление браузером изображенного на Фиг. 3 сокращенного фрагмента одного из возможных вариантов шаблона на языке HTML, на котором обозначены:

вспомогательный элемент 111 типа «горизонтальная линия»;

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

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

на Фиг. 5 изображен фрагмент возможной структуры БД с указанием атрибутного состава таблиц, примерного содержания таблиц и связей между таблицами (в виде стрелок), на котором обозначены:

таблица 100 классов сущностей, в которой хранятся метаданные классов сущностей;

таблица 101 атрибутов сущностей, в которой хранятся метаданные атрибутов сущностей; связь атрибута сущности из таблицы 101 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных атрибута сущности (в атрибуте «ID класса» таблицы 101);

таблица 120 шаблонов представления экземпляров сущностей, в которой хранятся метаданные шаблонов; связь шаблона из таблицы 120 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных шаблона (в атрибуте «ID класса» таблицы 120);

таблица 121 путей к элементам шаблонов, в которой хранятся пути к целевым элементам от корневых элементов шаблонов (в виде строк, содержащих цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой); связь пути из таблицы 121 с атрибутом сущности в таблице 101 обеспечивается хранением значения идентификатора атрибута сущности в составе записи таблицы 121 (в атрибуте «ID атрибута»); связь пути из таблицы 121 с шаблоном в таблице 120 обеспечивается хранением значения идентификатора шаблона в составе записи таблицы 121 (в атрибуте «ID шаблона»);

на Фиг. 6 изображены примеры возможных вариантов внедрения в шаблон элемента для подключения библиотеки программного кода, обеспечивающего действия пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, и элемента с идентификатором связанной сущности (в случае если шаблон сформирован на языке HTML, а программный код библиотеки сформирован на языке JavaScript). На Фиг. 6 обозначены:

пример 122 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 123, который подключает библиотеку программного кода, находящуюся во внешнем файле с именем «markup_library»;

внедренный сервером в шаблон элемент 124, который, после завершения загрузки шаблона браузером, обеспечивает вызов процедуры «prepare_for_markup» для подготовки шаблона к формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями;

пример 125 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 126, который содержит непосредственно программный код библиотеки и, после завершения загрузки шаблона браузером, обеспечивает вызов процедуры «prepare_for_markup» для подготовки шаблона к формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями;

идентификатор 127 класса сущности, для представления экземпляров которого будет осуществляться формирование и сохранение связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями;

на Фиг. 7 изображено визуальное представление браузером изображенного на Фиг. 3 сокращенного фрагмента одного из возможных вариантов шаблона на языке HTML в режиме формирования и сохранения связей элементов с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, на котором обозначены:

выбранный пользователем элемент 113, который графически выделен (рамкой из сплошных линий);

диалоговое окно 128, которое содержит список 129 доступных для привязки атрибутов класса сущности; кнопку 130, предназначенную для запуска процедуры формирования и сохранения связи; кнопку 131, нажатием которой выбирают элемент, являющийся родительским элементом для текущего выбранного элемента;

на Фиг. 8 изображен фрагмент возможной структуры БД с указанием атрибутного состава таблиц, примерного содержания таблиц и связей между изображенными таблицами (в виде стрелок), на котором обозначены:

таблица 132 экземпляров сущностей; связь экземпляра сущности из таблицы 132 с классом сущности в изображенной на Фиг. 1 таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе данных экземпляра сущности (в атрибуте «ID класса» таблицы 132);

таблица 133 значений атрибутов экземпляров сущностей; связь значения атрибута из таблицы 133 с экземпляром сущности в таблице 132 обеспечивается хранением значения идентификатора экземпляра сущности в составе данных значения атрибута сущности (в атрибуте «ID экземпляра» таблицы 133); связь значения атрибута из таблицы 133 с атрибутом сущности в изображенной на Фиг. 1 таблице 101 обеспечивается хранением значения идентификатора атрибута сущности в составе данных значения атрибута сущности (атрибуте «ID атрибута» таблицы 133);

таблица 134 путей наборов данных, в которой хранятся пути (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента шаблона к корневому элементу группы элементов шаблона, предназначенных для отображения элементов наборов данных; связь пути набора данных из таблицы 134 с набором данных в изображенной на Фиг. 1 таблице 102 обеспечивается хранением значения идентификатора набора данных в составе данных пути набора данных (в атрибуте «ID набора» таблицы 134); связь пути набора данных из таблицы 134 с шаблоном представления сущности в изображенной на Фиг. 5 таблице 120 обеспечивается хранением значения идентификатора шаблона представления экземпляра сущности в составе данных пути набора данных (в атрибуте «ID шаблона» таблицы 134);

таблица 135 путей полей наборов данных, в которой хранятся пути (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента группы элементов шаблона, предназначенных для отображения элементов наборов данных, к целевым элементам группы; связь пути поля набора данных из таблицы 135 с полем набора данных в изображенной на Фиг. 1 таблице 103 обеспечивается хранением значения идентификатора поля набора данных в составе данных пути поля набора данных (в атрибуте «ID поля» таблицы 135); связь пути поля набора данных из таблицы 135 с шаблоном представления экземпляра сущности в изображенной на Фиг. 5 таблице 120 обеспечивается хранением значения идентификатора шаблона представления экземпляра сущности в составе данных пути поля набора данных (в атрибуте «ID шаблона» таблицы 135);

таблица 136 путей агрегатных функций наборов данных, в которой хранятся пути (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента шаблона к элементу шаблона, предназначенному для представления значения агрегатной функции набора данных; связь пути агрегатной функции набора данных из таблицы 136 с агрегатной функцией набора данных в изображенной на Фиг. 1 таблице 104 обеспечивается хранением значения идентификатора агрегатной функции набора данных в составе данных пути агрегатной функции набора данных (в атрибуте «ID агрегатной функции» таблицы 136); связь пути агрегатной функции набора данных из таблицы 136 с шаблоном представления сущности в изображенной на Фиг. 5 таблице 120 обеспечивается хранением значения идентификатора шаблона представления сущности в составе данных пути агрегатной функции набора данных (в атрибуте «ID шаблона» таблицы 136);

на Фиг. 9 изображены примеры возможных вариантов внедрения в шаблон элемента для подключения библиотеки программного кода, который осуществляет представление экземпляра сущности и наборов данных в шаблоне, а также обеспечивает действия пользователя по редактированию значений атрибутов сущности и сохранению измененных значений в БД (в случае если шаблон сформирован на языке HTML, а программный код библиотеки сформирован на языке JavaScript). На Фиг. 9 обозначены:

пример 137 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 138, который подключает библиотеку программного кода, находящуюся во внешнем файле с именем «edit_library»;

внедренный сервером в шаблон элемент 139, который обеспечивает вызов процедуры представления экземпляра сущности и подготовки значений атрибутов экземпляра к редактированию с именем «prepare_for_edit» после завершения загрузки шаблона браузером;

пример 140 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 141, который содержит непосредственно программный код библиотеки и обеспечивает вызов процедуры представления экземпляра сущности и подготовки значений атрибутов экземпляра к редактированию с именем «prepare_for_edit» после завершения загрузки шаблона браузером;

идентификатор 142 экземпляра сущности, который будет представлен в браузере для просмотра и редактирования пользователем;

на Фиг. 10 изображен пример объекта (в виде программного кода на языке JavaScript по созданию объекта) для хранения в памяти браузера данных и метаданных экземпляра сущности и наборов данных, в составе которого обозначены:

свойство 143, в котором хранится значение идентификатора экземпляра сущности;

массив 144 объектов, в которых хранятся в сопоставленном виде идентификаторы атрибутов сущности, значения атрибутов экземпляра сущности, а также пути к целевым элементам шаблона для представления значений атрибутов экземпляра сущности;

массив 145 объектов, в которых хранятся данные и метаданные наборов данных, такие как: свойство 146, в котором хранится путь (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента шаблона к корневому элементу группы элементов шаблона, предназначенных для отображения элементов набора данных; массив 147 путей (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева направо и разделенных символом точки с запятой) от корневого элемента группы элементов шаблона, предназначенных для отображения элементов наборов данных, к целевым элементам группы; массив 148, в котором хранятся строки табличной части набора данных (в виде массивов значений элементов набора данных); массив 149 объектов, в которых хранятся в сопоставленном виде значения агрегатных функций набора данных и пути к целевым элементам шаблона для представления этих значений;

на Фиг. 11 изображены примеры функций на языке JavaScript, предназначенные для представления экземпляра сущности и наборов данных в шаблоне в браузере. На Фиг. 11 обозначены:

вспомогательная функция 150, которая принимает в качестве параметров корневой элемент DOM и путь (от этого корневого элемента) и возвращает элемент DOM, найденный по пути относительно корневого элемента;

функция 151, которая помещает значения атрибутов экземпляра сущности в соответствующие элементы шаблона;

функция 152, которая помещает значения агрегатных функций наборов данных в соответствующие элементы шаблона;

на Фиг. 12 изображен пример функции 153, которая размещает в шаблоне табличные части наборов данных;

на Фиг. 13 изображено визуальное представление браузером примера шаблона с размещенными в составе его элементов значениями атрибутов экземпляра сущности, элементами набора данных и значением агрегатной функции, которые соответствуют изображенному на Фиг. 10 примеру объекта в памяти браузера и соответствуют примерам возможного состава данных и метаданных, изображенных на Фиг. 1, Фиг. 5 и Фиг. 8;

на Фиг. 14 изображена блок-схема варианта реализации способа подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы.

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

Приведенные в настоящем изобретении примеры наименований и обозначений носят исключительно иллюстративный характер и не предназначены для идентификации ключевых или критических элементов технического решения.

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

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

Данное техническое решение может быть реализовано на распределенной компьютерной системе.

Ниже будут приведены термины и их определения, используемые в заявке, необходимые для понимания сущности заявляемого технического решения.

Данные - интерпретируемое формализованным способом представление информации, подходящее для связи, интерпретации или обработки (ISO/IEC 2382:2015, 2121272 «data»).

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

База данных (БД) - совокупность данных, организованных в соответствии с концептуальной структурой, описывающей характеристики этих данных и взаимоотношения между ними, причем такое собрание данных, которое поддерживает одну или более областей применения (ISO/IEC 2382:2015, 2121423 «database»).

Метаданные - данные о данных или элементах данных, возможно, включая описание данных, и данные о владении данными, путях доступа, правах доступа и изменчивости данных (ISO/IEC 2382:2015, 2121515 «metadata»).

Сервер - функциональный блок в компьютерной сети, который предоставляет службы для рабочих станций, персональных компьютеров или других функциональных блоков (ISO/IEC 2383:2015, 2120558 «server»); функциональный блок, который обеспечивает общие службы для рабочих станций или других функциональных блоков по сети передачи данных (ISO/IEC 2383:2015, 2124462 «server»).

Браузер (от англ. Web browser) - прикладное программное обеспечение для просмотра веб-страниц; применительно к данной заявке, если явно не указаное иное, под браузером следует понимать любое программное обеспечение, предоставляющее пользователю интерфейс для работы с документами на языках разметки, а также способное исполнять программный код на языках сценариев (скриптовых языках), включая, но не ограничиваясь, JavaScript или Dart.

ORM (англ. Object-Relational Mapping) - технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования и позволяет работать с данными как с объектами, используя систему управления БД любого типа, для которой имеется соответствующая библиотека ORM.

XPath (англ. XML PathLanguage) - язык адресации частей XML документа, предназначенный для использования с XSLT и XPointer (http://www.w3.org/TR/1999/REC-xpath-19991116/).

SGML (англ. Standard Generalized Markup Language) - стандартный обобщенный язык разметки - метаязык, на котором можно определять язык разметки для документов (ISO 8879:1986, «Standard Generalized Markup Language»).

Сущность - любая конкретная или абстрактная вещь, которая существует, существовала или могла бы существовать, включая объединение таких вещей (ISO/IEC 2383:2015, 2121443 «entity»).

Атрибут - именованное свойство сущности (ISO/IEC 2383:2015, 2121450 «attribute»).

Класс сущности - множество сущностей с общим атрибутным составом (ISO/IEC 2383:2015, 2121448 «entity class»).

Экземпляр сущности (экземпляр класса сущности) - конкретный экземпляр класса сущности (ISO/IEC 2383:2015, 2121449 «entity occurrence»).

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

Набор данных - конечное множество элементов данных, организованное в определенную структуру, метаданные которой обеспечивают возможность идентификации, интерпретации и обработки каждого элемента данных из множества; применительно к данной заявке, если явно не указано иное, следует рассматривать набор данных как результат запроса к базе данных, который может содержать значения атрибутов одного или многих экземпляров одной или многих сущностей, значения, производные от значений атрибутов (например, значения агрегатных функций), а также любые дополнительные элементы данных; по крайней мере, часть набора данных может быть представлена в виде таблицы, в которой каждая отдельная строка содержит логически связанные данные, например значения атрибутов одного экземпляра сущности либо значения атрибутов сопоставленных между собой экземпляров разных сущностей, а каждый из столбцов содержит однородные данные, например значения определенного атрибута каждого из экземпляров определенной сущности, представленных в наборе данных.

Поле (набора данных) - метаданные столбца набора данных, используемые для идентификации, интерпретации и обработки данных этого столбца; поле набора данных содержит идентификатор, который используют для получения остальных метаданных поля, необходимых для работы с данными столбца.

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

Элемент шаблона - наименьший неделимый структурный элемент шаблона (например, тег HTML).

Тип шаблона - элемент метаданных шаблона, указывающий на его предназначение, например «для печати», «для устройств с сенсорными экранами», «для людей с ограниченными возможностями» и т.д.; шаблоны разных типов могут иметь различия в структуре и внешнем виде; шаблоны, предназначенные для представления сущности на разных языках пользователей, также могут иметь различия в структуре и внешнем виде.

DOM (англ. Document Object Model) - независимый от платформы и языка интерфейс, который позволяет программам и скриптам динамически получать доступ и обновлять содержимое, структуру и стиль документов (http://www.w3.org/DOM/).

AJAX (англ. Asynchronous Javascript and XML) - концепция построения пользовательских интерфейсов web-приложений, заключающаяся в «фоновом» обмене данными браузера с web-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся быстрее и удобнее.

Drag-and-Drop - способ оперирования элементами интерфейса в интерфейсах пользователя при помощи манипулятора типа «мышь» или иного указателя.

Распределенная компьютерная система - это набор независимых компьютеров (компьютерных устройств), представляющийся их пользователям единой объединенной системой.

Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).

Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройств хранения данных. В роли устройства хранения данных могут выступать, но не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD).

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

Согласно способу подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы:

- формируют метаданные для, по крайней мере, одного класса сущности, его атрибутов и наборов данных, элементов наборов данных, включающих, по крайней мере, поля наборов данных и агрегатные функции наборов данных.

Метаданные классов сущностей и их атрибутов должны содержать идентификаторы, позволяющие различать классы между собой и различать атрибуты, по крайней мере, в рамках соответствующих классов, а также могут содержать имена, описания и другие элементы. На Фиг. 1 изображен один из возможных вариантов структуры и содержания метаданных классов сущностей (таблица 100) и их атрибутов (таблица 101).

Метаданные наборов данных, их полей и агрегатных функций должны содержать идентификаторы, позволяющие различать наборы данных между собой и различать поля и агрегатные функции, по крайней мере, в рамках соответствующих наборов данных, а также могут содержать другие элементы, предназначенные для формирования наборов данных. Дополнительно формируют связи наборов данных с классами сущностей, в представление экземпляров которых предполагается включать элементы этих наборов данных. На Фиг. 1 изображен один из вариантов структуры и содержания метаданных наборов данных (таблица 102), их полей (таблица 103) и агрегатных функций (таблица 104), а также структура и содержание связей наборов данных с классами сущностей;

- формируют шаблон представления экземпляров вышеупомянутого класса сущности, состоящий, по крайней мере, из одного документа, сформированного на, по крайней мере, одном языке разметки.

В некоторых вариантах осуществления технического решения используют язык разметки включая, но не ограничиваясь, HTML, XML, XHTML, DocBook.

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

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

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

В некоторых вариантах осуществления технического решения элементам шаблона, предназначенным для представления элементов наборов данных, устанавливают значения, по типу данных и размеру соответствующие элементам наборов данных.

В некоторых вариантах осуществления технического решения в шаблоне представления экземпляра класса сущности дополнительно формируют элементы для представления элементов наборов данных, например, содержащих значения атрибутов экземпляров сущностей, связанных с экземпляром представляемой сущности, а также значения агрегатных функций, вычисленных на основе значений этих атрибутов. В общем случае количество строк в табличных частях наборов данных неизвестно в момент формирования шаблона представления экземпляра сущности. Поэтому в шаблоне формируют группу элементов, достаточную для представления нужных элементов одной строки набора данных, а в процессе представления экземпляра сущности создают копии этой группы элементов для представления элементов других строк набора данных. Одним из вариантов копирования групп элементов шаблона, позволяющим упростить реализацию, является тот, в котором используется предоставляемая DOM возможность создавать копии фрагментов иерархической структуры документа. Чтобы использовать эту возможность, в некоторых вариантах осуществления технического решения в шаблоне создают структурный элемент, являющийся корневым элементом фрагмента иерархической структуры документа, в который входят все элементы упомянутой группы. На Фиг. 2 изображен пример процесса копирования фрагмента иерархической структуры документа на языке HTML при помощи программного кода на языке JavaScript. Следует подчеркнуть, что атрибут ID элемента 108 в приведенном на Фиг. 2 фрагменте 105 используется исключительно с целью облегчения понимания примера за счет упрощения программного кода 107. В предлагаемом техническом решении использование атрибута ID необязательно, что станет очевидным из дальнейшего описания. На Фиг. 3 изображен сокращенный фрагмент одного из возможных вариантов шаблона на языке HTML для представления экземпляра сущности «План», в составе которого должны представляться значения атрибутов связанных с ним экземпляров сущности «Задача», а также значение агрегатной функции, вычисленной на основе значений одного из этих атрибутов. Визуальное представление браузером изображенного на Фиг. 3 фрагмента шаблона изображено на Фиг. 4.

В некоторых вариантах осуществления технического решения сформированный шаблон сохраняют на сервере в БД;

- формируют и сохраняют связь шаблона и класса сущности.

В некоторых вариантах осуществления технического решения формирование связи между шаблоном и классом сущности обеспечивается действиями пользователя, который выбирает класс сущности из полученного с сервера набора, выбирает шаблон (файл, WYSIWYG-редактор, но не ограничиваясь) и тем самым формирует связь между классом сущности и шаблоном.

В некоторых вариантах осуществления технического решения информация о сформированной связи сохраняется на сервере в БД. На Фиг. 5 изображен один из возможных вариантов хранения связи шаблона с классом сущности: связь шаблона из таблицы 120 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных шаблона в атрибуте «ID класса» таблицы 120.

В некоторых вариантах осуществления технического решения в составе информации о сформированной связи шаблона и класса сущности дополнительно сохраняют идентификатор типа шаблона (например, указывающий на его предназначение: «для печати», «для устройств с сенсорными экранами», «для людей с ограниченными возможностями» и др.) и идентификатор языка пользователей, с использованием которого сформированы значения вспомогательных элементов шаблона (например, текстовых поясняющих надписей или содержащих текст изображений);

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

Действия пользователя могут осуществляться в браузере, что позволяет пользователю работать удаленно, например, используя Internet.

В некоторых вариантах осуществления технического решения для получения шаблона с целью формирования и сохранения связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями пользователь инициирует получение шаблона в браузере, который, в свою очередь, обращается к серверу с запросом на получение шаблона. Сервер извлекает шаблон из БД и внедряет в него элемент, подключающий библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, а также внедряет в шаблон элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, сформированную и сохраненную в БД на предыдущем шаге способа; после чего передает шаблон браузеру для отображения. На Фиг. 6 изображен пример 122 упрощенного шаблона представления экземпляра сущности с внедренным сервером элементом 123, который подключает библиотеку программного кода, находящуюся во внешнем файле с именем «markup_library», и внедренным сервером элементом 124, содержащим идентификатор 127 класса сущности.

В некоторых вариантах осуществления технического решения сервер извлекает шаблон из БД и внедряет в него элемент, содержащий программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, и идентификатор класса сущности, используя информацию о связи шаблона и класса сущности, сформированную и сохраненную в БД на предыдущем шаге способа; после чего передает шаблон браузеру для отображения. На Фиг. 6 изображен пример 125 упрощенного шаблона представления экземпляра сущности с внедренным сервером элементом 126, который содержит программный код и идентификатор 127 класса сущности.

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

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

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

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

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

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

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

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

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

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

Для работы с документом на языке разметки браузер строит в памяти внутреннее представление документа и дает исполняемому им программному коду доступ к этому представлению в виде DOM, для чего браузер воспроизводит в памяти иерархию тегов документа. При этом в DOM каждый элемент, кроме корневого, имеет своего единственного прямого «родителя» (элемент верхнего уровня), ссылка на который хранится в составе самого элемента (parentNode для HTML и JavaScript), а все элементы могут иметь несколько «потомков» (элементов нижнего уровня) - в этом случае у каждого такого элемента имеется специальный массив ссылок на дочерние элементы (childNodes для HTML и JavaScript). Каждая ссылка в массиве имеет порядковый номер (индекс). Таким образом, для каждого элемента шаблона можно, итерационно обращаясь к прямым «родителям», определить уникальную последовательность индексов дочерних элементов, ведущую от корневого элемента (либо иного известного элемента) к данному элементу. В рамках настоящей заявки в некоторых случаях с целью сокращения обозначения будем называть эту последовательность «путем» (к элементу).

В некоторых вариантах осуществления технического решения, в случае использования шаблонов на языке HTML, в качестве корневого элемента используют элемент BODY.

В некоторых вариантах осуществления технического решения, при формировании и сохранении связи элемента шаблона с атрибутом класса сущности или агрегатной функцией набора данных, в качестве идентификатора элемента шаблона используют путь к элементу шаблона от корневого элемента DOM. При формировании связи набора данных с элементом шаблона, являющимся корневым для группы элементов, предназначенных для отображения элементов набора данных, в качестве идентификатора также используют путь к корневому элементу группы от корневого элемента DOM. А при формировании связи элементов упомянутой группы с полями набора данных, в качестве идентификаторов элементов группы используют пути к этим элементам от корневого элемента группы. Например, путь к изображенному на Фиг. 3 элементу 113 от элемента BODY будет представлять собой следующую последовательность индексов дочерних элементов (слева направо): 3, 1, 3. Специалисту в данном уровне техники известно, что такие значения индексов дочерних элементов обусловлены стандартным способом разбора браузером исходного текста HTML, при котором использованные для форматирования исходного текста вспомогательные символы (например, перевод строки, возврат каретки, пробелы) помещаются браузером в отдельные текстовые узлы, которые также являются элементами DOM и входят в массивы дочерних элементов (childNodes) соответствующих элементов верхнего уровня, а сами индексы начинаются с нуля.

В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют значение атрибута ID данного элемента шаблона.

В некоторых вариантах осуществления технического решения уникальные для шаблона значения атрибута ID устанавливают для всех элементов шаблона автоматически после формирования связи шаблона с классом сущности.

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

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

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

В некоторых вариантах осуществления технического решения для получения идентификаторов элементов шаблона используют язык запросов XPath.

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

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

В некоторых вариантах осуществления технического решения пути к элементам шаблона сохраняются в виде строк, содержащих цифровые представления числовых значений индексов, расположенных слева направо или справа налево и разделенных специальным символом или группой символов. Так, в таблице 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».

Специалисту в данном уровне техники очевидно, что в качестве БД может использоваться любой тип БД, известный из уровня техники. Например, иерархические, сетевые, реляционные и объектно-ориентированные БД.

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

- получают шаблон представления экземпляра класса сущности.

Пользователь инициирует в браузере запрос к серверу на редактирование экземпляра класса сущности. В составе запроса браузер передает серверу идентификатор экземпляра класса сущности. Используя идентификатор экземпляра класса сущности, сервер обращается к БД и извлекает из таблицы 132 идентификатор класса сущности, после чего использует его для получения метаданных шаблона представления экземпляра класса сущности из таблицы 120, в том числе имя файла шаблона. Сервер внедряет в шаблон элемент, подключающий библиотеку программного кода, обеспечивающую получение браузером (на следующем шаге способа) необходимых данных и метаданных (значений атрибутов экземпляра класса сущности, наборов данных и значений агрегатных функций, а также метаданные атрибутов класса сущности, метаданные наборов данных, их полей и агрегатных функций, в том числе информацию о связях атрибутов класса сущности, наборов данных, их полей и агрегатных функций с элементами шаблонов) и размещение полученных данных в элементах шаблона, а также обеспечивающую действия пользователя по редактированию значений атрибутов экземпляра класса сущности в браузере и сохранению измененных значений в БД; дополнительно сервер внедряет в шаблон элемент с идентификатором экземпляра класса сущности, после чего передает шаблон браузеру для отображения. На Фиг. 9 изображен пример 137 варианта внедрения элемента для подключения библиотеки и внедрения идентификатора экземпляра класса сущности, в случае если библиотека находится во внешнем файле.

В некоторых вариантах осуществления технического решения сервер внедряет в шаблон непосредственно программный код библиотеки. На Фиг. 9 изображен пример 140 варианта внедрения элемента для подключения библиотеки и внедрения идентификатора экземпляра класса сущности, в случае если в шаблон внедряется непосредственно составляющий библиотеку программный код.

Библиотека может быть реализована на любом языке программирования, поддерживаемом браузером, включая, но не ограничиваясь, JavaScript или Dart.

В некоторых вариантах осуществления технического решения внешняя библиотека может быть расположена на удаленном сервере, доступ к которому осуществляется по Internet;

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

В некоторых вариантах осуществления технического решения получение данных и метаданных экземпляра класса сущности, наборов данных, их полей и агрегатных функций осуществляют с использованием концепции AJAX. Возможная структура БД и примеры возможного состава данных и метаданных изображены на Фиг. 1, Фиг. 5 и Фиг. 8. В некоторых вариантах осуществления технического решения полученные из БД данные и метаданные помещают в памяти браузера в составе объекта, к которому может обращаться программный код подключенной на предыдущем шаге библиотеки. На Фиг. 10 изображен пример объекта (в виде программного кода на языке JavaScript по созданию объекта) для хранения в памяти браузера данных и метаданных экземпляра сущности, наборов данных, их полей и агрегатных функций, включая информацию о связях атрибутов класса сущности, наборов данных, их полей и агрегатных функций с элементами шаблонов. Состав данных и метаданных, содержащихся в изображенном на Фиг. 10 примере объекта, полностью соответствует примерам возможного состава данных и метаданных, изображенных на Фиг. 1, Фиг. 5 и Фиг. 8;

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

В некоторых вариантах осуществления технического решения программный код подключенной ранее библиотеки использует помещенный на предыдущем шаге в памяти браузера объект с данными и метаданными экземпляра сущности, наборов данных, их полей и агрегатных функций для размещения данных в составе элементов шаблона. Например: изображенная на Фиг. 11 функция 151 в цикле обращается к массиву 144 объектов (в которых хранятся в сопоставленном виде идентификаторы атрибутов сущности, значения атрибутов экземпляра сущности, а также пути к элементам шаблона для представления значений атрибутов экземпляра класса сущности) и, используя вспомогательную функцию 150, находит элементы шаблона, после чего помещает в них значения атрибутов экземпляра класса сущности; изображенная на Фиг. 11 функция 152 в цикле обращается к массиву 145 наборов данных, далее во вложенном цикле обращается к массиву 149 объектов (в которых хранятся в сопоставленном виде значения агрегатных функций набора данных и пути к элементам шаблона для представления этих значений) и, используя вспомогательную функцию 150, находит элементы шаблона, после чего помещает в них значения агрегатных функций набора данных; изображенная на Фиг. 12 функция 153 в цикле обращается к массиву 145 наборов данных и, используя хранящееся в свойстве 146 значение пути к корневому элементу группы элементов шаблона, предназначенных для представления данных строки табличной части набора данных, и вспомогательную функцию 150, находит корневой элемент группы, далее во вложенном цикле обращается к массиву 148 строк табличной части набора данных и, в случае необходимости, создает в структуре шаблона дополнительную копию группы элементов шаблона, предназначенных для представления данных строки табличной части набора данных, а затем в цикле по массиву составляющих строку значений элементов набора данных помещает эти значения в элементы группы, для чего использует значения путей к элементам относительно корневого элемента, которые хранятся в массиве 147. На Фиг. 13 изображено визуальное представление браузером примера шаблона с размещенными в составе его элементов значениями атрибутов экземпляра класса сущности, элементами набора данных и значением агрегатной функции, которые соответствуют изображенному на Фиг. 10 примеру объекта в памяти браузера и соответствуют примерам возможного состава данных и метаданных, изображенных на Фиг. 1, Фиг. 5 и Фиг. 8.

В некоторых вариантах осуществления технического решения пути к элементам шаблона используют только для первоначального поиска. Далее этим элементам назначают временные синтетические идентификаторы (используя атрибут ID), чтобы сократить время обращения к элементам за счет использования предоставляемой DOM возможности поиска элементов по значению атрибута ID;

- осуществляют редактирование экземпляра класса сущности.

Редактирование экземпляра класса сущности заключается в изменении значений атрибутов экземпляра класса сущности в его представлении в браузере.

В некоторых вариантах осуществления технического решения в случае использования шаблонов на языке HTML используют возможность изменения значений атрибутов экземпляра класса сущности в режиме WYSIWYG, для чего программный код ранее подключенной библиотеки, после помещения значений атрибутов экземпляра класса сущности в элементы шаблона, дополнительно устанавливает этим элементам значение атрибута CONTENTEDITABLE, равное TRUE.

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

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

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

- сохраняют измененный экземпляр класса сущности.

Пользователь инициирует в браузере выполнение процедуры сохранения экземпляра класса сущности, которая входит в состав подключенной ранее библиотеки программного кода. Эта процедура, используя хранящиеся в памяти браузера данные и метаданные экземпляра сущности и его атрибутов (например, в составе объекта, пример которого изображен на Фиг. 10), находит элементы шаблона, в которых находятся значения атрибутов экземпляра класса сущности, считывает эти значения и осуществляет запрос к серверу с целью сохранения этих значений.

В некоторых вариантах осуществления технического решения запрос к серверу осуществляют с использованием концепции AJAX.

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

Сервер обрабатывает запрос и сохраняет значения атрибутов экземпляра сущности в БД.

В некоторых вариантах осуществления технического решения сохранение значений атрибутов экземпляра сущности в БД осуществляют с помощью ORM.

На чертежах показан один из вариантов воплощения настоящего технического решения.

Настоящее подробное описание составлено с приведением различных, не имеющих ограничительного и исчерпывающего характера вариантов осуществления. В то же время специалистам, имеющим средний уровень компетентности в рассматриваемой области техники, очевидно, что различные замены, модификации или сочетания любых раскрытых здесь вариантов осуществления (в том числе частично) могут быть воспроизведены в пределах объема настоящего технического решения. Таким образом, подразумевается и понимается, что настоящее описание включает дополнительные варианты осуществления, суть которых не изложена здесь в явно выраженной форме. Такие варианты осуществления могут быть получены путем, например, сочетания, модификации или преобразования каких-либо действий, компонентов, элементов, свойств, аспектов, характеристик, ограничений и пр., относящихся к приведенным здесь и не имеющим ограничительного характера вариантам осуществления.

Похожие патенты RU2613026C1

название год авторы номер документа
СПОСОБ ПОДГОТОВКИ ДОКУМЕНТОВ НА ЯЗЫКАХ РАЗМЕТКИ ПРИ РЕАЛИЗАЦИИ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ДЛЯ РАБОТЫ С ДАННЫМИ ИНФОРМАЦИОННОЙ СИСТЕМЫ 2017
  • Лысанов Павел Юрьевич
  • Костюченков Сергей Прокопьевич
RU2651161C1
СИСТЕМА И СПОСОБ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ (СУБД) 2018
  • Лосев Виктор Яковлевич
  • Симоров Сергей Николаевич
RU2704873C1
СПОСОБ И СИСТЕМА ДЛЯ СОЗДАНИЯ ИТ-ОРИЕНТИРОВАННЫХ СЕРВЕРНЫХ СЕТЕВЫХ ПРИЛОЖЕНИЙ 2008
  • Пелед Гай
RU2466450C2
СПОСОБ ВИЗУАЛИЗАЦИИ WEB-СТРАНИЦЫ С ИСПОЛЬЗОВАНИЕМ ВНЕШНИХ ПРОГРАММНЫХ ТЕМ 2004
  • Нийоги Шанку С.
  • Йанг Тинг-Хао
  • Эббо Дэвид Серж
  • Гатри Скотт Дэвид
  • Говард Роберт М.
  • Кроуни Джозеф К.
RU2390832C2
АВТОМАТИЗИРОВАННОЕ ПРЕОБРАЗОВАНИЕ ОБЪЕКТА ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ И ГЕНЕРАЦИЯ КОДА 2012
  • Пател Руши
  • Ларсон Курт
  • Мареска Луиз
  • Рони Брайан
  • Ниссен Эрик
  • Нанненга Джон
RU2604431C2
СИСТЕМА И СПОСОБ ДЕКЛАРАТИВНОГО ОПРЕДЕЛЕНИЯ И ИСПОЛЬЗОВАНИЯ ПОДКЛАССОВ ВНУТРИ РАЗМЕТКИ 2003
  • Рамани Сандарам
  • Релая Роберт А.
  • Богдан Джеффри Л.
RU2347269C2
СПОСОБ ИЗВЛЕЧЕНИЯ ФАКТОВ ИЗ ТЕКСТОВ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ 2016
  • Старостин Анатолий Сергеевич
  • Смуров Иван Михайлович
  • Джумаев Станислав Сергеевич
RU2637992C1
ИНТЕРФЕЙС ПРОГРАММИРОВАНИЯ ДЛЯ КОМПЬЮТЕРНОЙ ПЛАТФОРМЫ 2004
  • Богдан Джеффри Л.
  • Релая Роберт А.
RU2371758C2
КОНТЕЙНЕР ДАННЫХ ДЛЯ ДАННЫХ КОНТЕНТА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА 2005
  • Танмер Майкл Люк
  • Дикенз Мартин
RU2363039C2
СПОСОБ И УСТРОЙСТВО ДЛЯ ИНТЕГРАЦИИ ДАННЫХ О ПУНКТЕ, ПРЕДОСТАВЛЕННЫХ ГРУППОЙ ПОСТАВЩИКОВ 2010
  • Шмидт Андреас
  • Гроссе Александр
RU2486586C1

Иллюстрации к изобретению RU 2 613 026 C1

Реферат патента 2017 года СПОСОБ ПОДГОТОВКИ ДОКУМЕНТОВ НА ЯЗЫКАХ РАЗМЕТКИ ПРИ РЕАЛИЗАЦИИ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ДЛЯ РАБОТЫ С ДАННЫМИ ИНФОРМАЦИОННОЙ СИСТЕМЫ

Изобретение относится к области пользовательских интерфейсов. Технический результат заключается в уменьшении временных затрат при подготовке документов. Указанный результат достигается за счет осуществления этапов способа подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы, при этом на этапах способа: формируют метаданные для, по крайней мере, одного класса сущности, его атрибутов и наборов данных, элементов наборов данных, включающих, по крайней мере, поля наборов данных и агрегатные функции наборов данных; формируют шаблон представления экземпляров вышеупомянутого класса сущности, состоящий, по крайней мере, из одного документа, сформированного на, по крайней мере, одном языке разметки; формируют и сохраняют связь шаблона и класса сущности; отображают шаблон, формируют и сохраняют связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями. При этом формируют и сохраняют связь, содержащую идентификатор выбранного ранее элемента шаблона и идентификатор выбранного на предыдущем шаге атрибута класса сущности, или набора данных, или поля набора данных, или агрегатной функции набора данных. 18 з.п. ф-лы, 14 ил.

Формула изобретения RU 2 613 026 C1

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

- формируют метаданные для, по крайней мере, одного класса сущности, его атрибутов и наборов данных, элементов наборов данных, включающих, по крайней мере, поля наборов данных и агрегатные функции наборов данных;

- формируют шаблон представления экземпляров вышеупомянутого класса сущности, состоящий, по крайней мере, из одного документа, сформированного на, по крайней мере, одном языке разметки;

- формируют и сохраняют связь шаблона и класса сущности;

- отображают шаблон, формируют и сохраняют связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, при этом

- выбирают элемент шаблона и отображают информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях;

- выбирают атрибут класса сущности, или набор данных, или поле набора данных, или агрегатную функцию набора данных;

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

2. Способ по п. 1, в котором наборы данных содержат значения атрибутов и значения агрегатных функций, вычисленные на основе значений этих атрибутов, причем атрибуты принадлежат экземплярам сущностей, связанным с представляемым экземпляром сущности.

3. Способ по п. 1, в котором языком разметки является HTML, или XML, или XHTML, или DocBook.

4. Способ по п. 1, в котором шаблон формируют при помощи текстовых редакторов с подсветкой синтаксиса, или WYSIWYG-редакторов, или онлайн-редакторов.

5. Способ по п. 1, в котором элементам шаблона, предназначенным для представления значений атрибутов экземпляра класса сущности, устанавливают значения, по типу данных и размеру соответствующие атрибутам класса сущности.

6. Способ по п. 1, в котором элементам шаблона, предназначенным для представления элементов наборов данных, устанавливают значения, по типу данных и размеру соответствующие элементам наборов данных.

7. Способ по п. 1, в котором в шаблоне представления экземпляров класса сущности дополнительно формируют группы элементов для представления элементов наборов данных и создают структурные элементы, являющиеся корневыми элементами фрагментов иерархической структуры документа, в которые входят все элементы соответствующих упомянутых групп элементов.

8. Способ по п. 1, в котором сформированный шаблон сохраняют на сервере в БД.

9. Способ по п. 1, в котором информацию о сформированной связи шаблона и класса сущности сохраняют на сервере в БД.

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

11. Способ по п. 1, в котором перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, подключающий библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.

12. Способ по п. 1, в котором перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, содержащий программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.

13. Способ по п. 1, в котором для выбора элемента шаблона при наведении пользователем указателя на элемент шаблона данный элемент графически выделяют.

14. Способ по п. 1, в котором информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях отображают в виде списков, в которые включают только свободные, еще не привязанные к какому-либо элементу шаблона атрибуты, наборы данных, их поля и агрегатные функции.

15. Способ по п. 1, в котором информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях отображают в отдельном окне браузера или в перемещаемой области внутри окна с шаблоном, при этом формирование связей с элементами шаблона осуществляют с использованием способа Drag-and-Drop.

16. Способ по п. 1, в котором после формирования связи элемента шаблона с атрибутом класса сущности, или набором данных, или полем набора данных, или агрегатной функцией набора данных этот элемент графически выделяют.

17. Способ по п. 1, в котором в качестве идентификатора элемента шаблона используют последовательность индексов дочерних элементов, ведущую к элементу от известного элемента шаблона, или значение атрибута ID, или выражение для запроса на языке XPath, или уникальное значение элемента.

18. Способ по п. 1, в котором для получения идентификаторов элементов шаблона используют язык запросов XPath.

19. Способ по п. 1, в котором сформированные связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями сохраняют на сервере в БД.

Документы, цитированные в отчете о поиске Патент 2017 года RU2613026C1

МОДУЛЬНЫЙ ФОРМАТ ДОКУМЕНТОВ 2004
  • Шур Эндрю
  • Дунитц Джерри
  • Фер Оливер
  • Эмерсон Дэниэл
  • Хиллберг Майк
  • Ким Янг Гах
  • Поллокк Джош
  • Шит Сарджана
  • Орнстайн Дэвид
  • Паоли Джин
  • Джонс Брайан
RU2368943C2
Севозапашник 1927
  • Ф. А. Эф
SU12691A1
СОЗДАНИЕ И УПРАВЛЕНИЕ СВЯЗАННЫМИ С КОНТЕНТОМ ОБЪЕКТАМИ 2005
  • Коган Дэниел Э.
  • Миллер Патрик К.
RU2382403C2
СПОСОБ И СИСТЕМА СОГЛАСОВАНИЯ СХЕМ БАЗ ДАННЫХ WEB 2005
  • Вэнь Цзи-Жун
  • Ма Вэй-Ин
RU2386997C2
Пломбировальные щипцы 1923
  • Громов И.С.
SU2006A1
JP 2009508228 A, 26.02.2009
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек 1923
  • Григорьев П.Н.
SU2007A1
Колосоуборка 1923
  • Беляков И.Д.
SU2009A1

RU 2 613 026 C1

Авторы

Лысанов Павел Юрьевич

Даты

2017-03-14Публикация

2015-09-30Подача