WO2017058047A1 - Способ подготовки документов на языках разметки - Google Patents

Способ подготовки документов на языках разметки Download PDF

Info

Publication number
WO2017058047A1
WO2017058047A1 PCT/RU2015/000633 RU2015000633W WO2017058047A1 WO 2017058047 A1 WO2017058047 A1 WO 2017058047A1 RU 2015000633 W RU2015000633 W RU 2015000633W WO 2017058047 A1 WO2017058047 A1 WO 2017058047A1
Authority
WO
WIPO (PCT)
Prior art keywords
template
elements
entity class
data
data set
Prior art date
Application number
PCT/RU2015/000633
Other languages
English (en)
French (fr)
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 US15/534,465 priority Critical patent/US10657323B2/en
Priority to CN201580084390.8A priority patent/CN108351768B/zh
Priority to PCT/RU2015/000633 priority patent/WO2017058047A1/ru
Priority to EP15905519.3A priority patent/EP3358470B1/en
Publication of WO2017058047A1 publication Critical patent/WO2017058047A1/ru

Links

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor
    • 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]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • 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
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • 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/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation

Definitions

  • This technical solution relates to the field of user interfaces, more specifically to user interfaces for working with data in computer information systems.
  • Data in computer information systems is usually treated as instances of entities that have some constant or variable set of attributes.
  • markup languages in computer information systems 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • templates also called templates
  • so-called template processors for example, ApacheVelocity
  • This method requires additional specialized knowledge, at least 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.
  • 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.
  • 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, 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 1 56 (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.
  • 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.
  • the markup language is HTM L or XML or XHTML or DocBook.
  • the template is formed using text editors with syntax highlighting or WYSIWYG editors or online editors.
  • the elements of the template designed to represent the attribute values of an instance of an entity class are set to the data type and size corresponding to the attributes of the entity class.
  • the elements of the template for representing the elements of the data sets are set to the data type and size corresponding to the elements of the data sets.
  • 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.
  • the generated template is stored on the server in the database.
  • information about the formed relationship between the template and the entity class is stored on the server in the database.
  • 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.
  • the server before displaying the template, 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.
  • the library of program code is implemented in a programming language supported by the browser.
  • the programming language supported by the browser is JavaScript or Dart.
  • the library of program code is located on a remote server accessed via the Internet.
  • the server before displaying the template, 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.
  • a template element when a user hovers a pointer over a template element, this element is graphically highlighted.
  • 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, not yet attached to any template element, attributes, data sets , their fields and aggregate functions.
  • 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.
  • any child element when the displayed area of the element to be selected is completely covered by the displayed areas of the child elements and it is impossible to select this element, any child element is selected and, further, the parent elements are selected sequentially until the necessary element is selected to form its relationship with the attribute of the entity class or data set or data set field or aggregate function of the data set.
  • 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.
  • the implementation of the technical solution after forming the connection of the template element with the attribute of the entity class or data set or field data set or aggregate function of a data set this element is graphically highlighted.
  • 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.
  • the value of the attribute ID is used as the identifier of the template element.
  • 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.
  • the ID attribute's unique value for the template is automatically set for the template element in the process of linking this element with the attribute of the entity class or data set or data set field or aggregate function of the data set.
  • an expression for the XPath query is used as the identifier of the template element.
  • a unique template value of the element is used as the identifier of the template element.
  • XPath query language is used to obtain the identifiers of the template elements.
  • 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 aggregate function of a data set with a selected template element using a control displayed in conjunction with lists of entity class attributes, data sets available for linking, their fields and aggregate functions.
  • 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.
  • FIG. I 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:
  • 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 identifier of the entity class as part of the metadata of the entity attribute (in the "GO class" attribute of table 101);
  • 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 entity class as part of the metadata of the data set (in the attribute "class 1D" of table 102);
  • 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 relationship of the aggregate function from table 104 with the data set field in table 103 is provided by storing the value of the identifier of the data set field as part of the aggregate function metadata (in the "GO field” attribute of table 104);
  • Figure 2 shows an example of the process of copying a fragment of the hierarchical structure of a document in HTML using program code in JavaScript, which indicates:
  • JavaScript program code 107 that copies an element 108 along with nested elements and pastes a copy after the original
  • fragment 109 of the hierarchical structure of an HTML document whose internal representation in the browser is similar to the internal representation of result b the operation of the program code 107, and its display 1 1 0 in the browser is identical to the display of the result of the operation of the program code 107;
  • FIG.3 shows a shortened fragment of one of the possible options for the template in HTML, which are indicated:
  • element 1 13 of the template (to represent the value of the attribute "Unit” of the entity instance "Plan") and the template value 1 14 of this element;
  • root element 1 15 (for a group of elements designed to represent the attribute values of instances of the "Task” entity);
  • element 1 1 6 of the said group intended to represent the value of the “Formulation” attribute
  • template value 1 17 of this element
  • element 1 18 (to represent the result of an aggregate function) and the template value 1 1 9 of this element;
  • Figure 4 shows a visual representation of the browser depicted in
  • Fig.Z abbreviated fragment of one of the possible options for the template in HTML, which indicates:
  • Figure 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:
  • an entity attribute table 101 that stores metadata of entity attributes; the connection of the entity attribute from table 10 with the entity class in table 100 is provided by storing the value of the identifier of the entity class as part of the metadata of the entity attribute (in the class attribute "W" of table 101);
  • a table 120 of templates for representing entity instances in which template metadata is stored the relationship 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 "GO class" attribute of table 120);
  • 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 W represent the numerical values of the indices of 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 "1D attribute");
  • the relationship 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 Y");
  • 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 relationships 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 (in if the template is generated in HTML, and the program code of the library is generated in JavaScript).
  • 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;
  • 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 has finished 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;
  • 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;
  • Fig. 3 of an abbreviated fragment of one of the possible variants of the HTML template in the mode of forming and storing relations of elements with attributes of the entity class, data sets, their fields and aggregate functions, on which are indicated:
  • 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;
  • On Fig 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 displayed tables (in the form of arrows), which are indicated on: table 132 entity instances; the relationship of the entity instance from table 132 with the entity class in the table 100 shown in FIG.
  • 1 is provided by storing the value of the entity class identifier as part of the entity instance data (in the “GO class” attribute of table 132); 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 data of the value of the attribute of the entity (in the attribute "1D instance" of the table 133); the connection of the attribute value from table 133 with the entity attribute in the table 101 shown in FIG.
  • the value of the attribute of the entity attribute as part of the data of the value of the attribute of the attribute (attribute "attribute ID" of the table 133); a table of 134 data set 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 elements data sets; the connection of the data set path from table 1 34 with the data set in the table 102 shown in FIG.
  • the connection of the data set path from table 134 with the entity representation template in the table 120 shown in FIG. 5 is provided by storing the value of the presentation template identifier of the entity instance in the data set path data (in the “GO template” attribute of table 134); a table 135 of the paths of the fields of the datasets 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 designed to display the elements of the data sets, to the target elements of the group; the connection of the path of the data set field from table 135 with the data set field in table 103 shown in FIG.
  • 1 is provided by storing the value of the data set field identifier as part of the data path of the data set field (in the “GO field” attribute 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 the table 120 shown in FIG.
  • table 5 is provided by storing the value of the identifier for the presentation template of the entity instance as part of the data path of the data set field (in the "1D template” attribute of table 135); 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, located from left to right and separated by a dot symbol with comma) from the root element of the template to the element of the template designed to represent the value of the aggregate function of the 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.
  • I of 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 "W aggregate functions" of table 136); the relationship of the path of the aggregate function of the data set from table 136 with the entity representation template in the table 120 shown in FIG. 5 is provided by storing the value of the identifier of the entity representation template as part of the data of the path of the aggregate function of the data set (in the “GO template” attribute of the table 136);
  • 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 the template, and also provides user actions for editing entity attribute values and storing changed values in the database (if the template is generated in HTML, and the library program code is generated in JavaScript).
  • Figure 9 shows: Example 137 of a simplified template for representing an entity in HTML with an embedded server element 138, which connects a library of program code located in an external file with the name “edit_library”; 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;
  • 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; identifier 142 of the entity instance that will be presented in the browser for viewing and editing by the user;
  • Figure 10 shows an example of an object (in the form of JavaScript code for creating an object) for storing data in the browser memory and metadata of an entity instance and data sets, which include: property 143, which stores the value of the identity of the entity instance; 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; 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 a template element to the root element of a group of template elements intended to display 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, left-to-right and separated by a semicolon) from the root element
  • Figure 1 1 shows examples of functions in the JavaScript language, designed to represent an entity instance and data sets in a template in a browser.
  • auxiliary 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;
  • function 151 which places the values of the attributes of the entity instance in the corresponding elements of the template;
  • function 152 which places the values of the aggregate functions of the data sets in the corresponding elements of the template;
  • 12 shows an example of a function 153 that places tabular parts of data sets in a template.
  • 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 that shown in FIG. 10 are an example of an object in browser memory and correspond to examples of a possible composition of data and metadata depicted in FIG. 1, FIG. 5 and FIG. 8.
  • On Fig shows a block diagram of an embodiment of a method for preparing documents in markup languages when implementing a user interface for working with information system information.
  • HTML markup language mainly examples of using the HTML markup language are given, however, it is 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 allows hierarchical organization of markup elements and data as part of 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.
  • Data element - 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 ”);
  • Database 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”) ;
  • 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”);
  • 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 (1SO / IEC 2383: 2015, 2124462 “server”);
  • 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
  • XPath (Eng. XML PathLanguage) - language for addressing parts of an XML document, intended for use with XSLT and XPointer (http://www.w3.org/TR/1999/REC- xpath-19991 1 16 /);
  • An entity is any concrete or abstract thing that exists, existed or could exist, including a combination of such things (ISO / IEC 2383: 201 5, 2121443 "entity");
  • Attribute - a named property of an entity (1SO / IEC 2383: 2015, 21 21450 “attribute”);
  • An entity class is a set of entities with a common attribute composition (ISO / IEC 2383: 2015, 2121448 "entity class");
  • An entity instance (an instance of an entity class) is a specific instance of an entity class (ISO / IEC 2383: 2015, 2 121449 “entity occurence)));
  • Attribute value the specific attribute value (ISO / IEC 2383: 201 5, 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, a data set should be considered 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 instance of an entity, or attribute values of associated instances of different entities, and each of the columns contains homogeneous data, for example , the values of the specific attribute of each of the instances of a specific 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 one existing 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;
  • Template element 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 can also have differences in structure and appearance;
  • DOM Document Object Model
  • 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 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;
  • a command processing device an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).
  • the command processing device reads and executes machine instructions (programs) from one or more data storage devices.
  • Storage devices may include, but are not limited to, hard disks (HDDs), flash memory, ROM (read only memory), solid state drives (SSDs).
  • a program is a sequence of instructions intended for execution by a control device of a computer or a device for processing commands.
  • the metadata of entity classes and their attributes must contain identifiers that allow distinguishing classes from each other, and distinguish attributes, at least within the framework of the corresponding classes, and may also contain names, descriptions, and other elements.
  • Figure 1 shows one of the possible options for the structure and content of metadata of entity classes (table 100) and their attributes (table 101).
  • the metadata of datasets, their fields and aggregate functions must contain identifiers that allow to distinguish between datasets and distinguish between fields and aggregate functions, at least within the framework of the corresponding datasets, and may also contain other elements intended for the formation of datasets .
  • data sets are associated with entity classes, in the presentation of instances of which it is supposed to include elements of these data sets.
  • Figure 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.
  • a markup language including, but not limited to, HTML, XML, XHTML, DocBook.
  • documents in markup languages are generated using the appropriate markup language software, including, but not limited to, text editors with syntax highlighting, WYSlWYG 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.
  • the template elements intended to represent the attribute values of an instance of an entity class are set to the data type and size corresponding to the attributes of the entity class.
  • the elements of the template designed to represent the elements of the data sets are set to the type of data and the size corresponding to the elements of the data sets.
  • elements for representing elements of data sets are additionally formed in the template for representing an instance of an entity class Entity instances associated with the instance of the entity being represented, as well as aggregate function values calculated based on the values of these attributes.
  • the number of rows in the tabular parts of the data sets is unknown at the time of formation of 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.
  • FIG. 2 shows an example of the process of copying a fragment of the hierarchical structure of a document in HTML using program code in JavaScript. It should be emphasized that the ID attribute of the element 108 in the fragment 105 shown in FIG. 2 is used solely to facilitate understanding of the example by simplifying the program code 107.
  • Figure 3 shows an abbreviated fragment of one of the possible HTML template options 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 of the browser shown in Fig.Z fragment of the template is shown in Fig.4.
  • the generated template is stored on the server in the database.
  • 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 .
  • information about the generated connection is stored on the server in the database.
  • Figure 5 shows one of the possible options for storing the relationship of the template with the entity class: the relationship 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 the table 120.
  • the template type identifier (for example, indicating its purpose: “For printing”, “for devices with touch screens”, “for people with disabilities”, etc.) and the identifier of the user language, using which the values of auxiliary elements of the template (for example, text explanatory labels or images containing text) are generated.
  • 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; select 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 aggregate function of the data set
  • User actions can be carried out in a browser, which allows the user to work remotely, for example, using the Internet.
  • the user initiates the receipt of a template in a browser, which, in turn, contacts the server with a request receiving a 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.
  • 6 shows an example 122 of a simplified template for representing an entity instance with an embedded server element 123, which includes a program code library located in an external file named “markup_library”, and an embedded server element 124 containing the entity class identifier 127.
  • 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.
  • 6 shows an example 125 of a simplified template for representing an entity instance with an embedded server element 1 26, which contains program code and entity class identifier 127.
  • 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.
  • 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.
  • this element when the user hovers the cursor (or other pointer) over the template element, this element is graphically highlighted to facilitate the selection of the element to form the element with the attribute of the entity class or data set or data set field or aggregate data set function.
  • 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.
  • Fig. 7 shows a visual representation of the abbreviated fragment of one of the possible HTML template in Fig. 3 by the browser in the mode of forming links of template elements with attributes of the entity class, data sets, their fields and aggregate functions.
  • information about the attributes of an entity class available for forming a relationship, data sets, their fields and aggregate functions are displayed in the form of lists, which include only free, not yet attached to any template element, attributes, sets data, their fields and aggregate functions.
  • information about the attributes of the entity class, data sets, their fields and aggregate functions available for linking is displayed in a separate browser window or in a movable area inside the template window, while forming links with template elements is performed using Drag-and-Drop methods.
  • any child element is selected and, further, the parent elements are selected sequentially until the desired element is selected to form its connection with the attribute of the entity class or data set or field of the data set and and the aggregate function of the data set.
  • Select the next parent carried out using a control element, for example, a button displayed in conjunction with lists of attributes of the entity class, data sets, their fields and aggregate functions available for forming a connection. 7 shows a button 131, by pressing which an element is selected, which is the parent element for the currently selected element.
  • an attribute of an entity class 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.
  • the technical solution selects an attribute of an entity class or data set or a data set field or aggregate function of a data set, and then initiate the formation and maintenance of communication with a previously selected template element using a control, for example, a button displayed in conjunction with lists of attributes of the entity class, data sets, their fields, and aggregate functions available for forming a relationship.
  • a control for example, a button displayed in conjunction with lists of attributes of the entity class, data sets, their fields, and aggregate functions available for forming a relationship.
  • 7 shows a button 130 that starts the procedure for forming and maintaining communication.
  • information about the generated and stored communication contains an identifier of an attribute of an entity class or data set or a data set field or aggregate function of a data set and an identifier of a template element.
  • identifier of a template element is meant any information that allows the program code executed by the browser to access this template element.
  • each element except the root one, has its own 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 “descendants” ( lower level elements) - 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).
  • the BODY element is used as the root element.
  • the path to the template element from the root DOM element is used as the identifier of the template element.
  • the path to the root element of the group from the root DOM element is also used as an identifier.
  • 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 the element 1 13 shown in FIG.
  • 3 from the BODY element will be the following sequence of indices of child elements (from left to right): 3, 1, 3.
  • auxiliary characters used for formatting the source text for example, line feed, carriage return, spaces
  • auxiliary characters used for formatting the source text for example, line feed, carriage return, spaces
  • the value of the ID attribute of the given template element is used as the identifier of the template element.
  • 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.
  • the ID attribute's unique value for the template is automatically set for the template element in the process of linking this element with the attribute of the entity class or data set or data set field or aggregate function of the data set.
  • an expression for the XPath query is used as the identifier of the template element.
  • a unique element value is used as the identifier of the template element.
  • XPath query language is used to obtain the identifiers of the template elements.
  • this element is graphically highlighted.
  • the formed relationships of the template elements with the attributes of the entity class, data sets, their fields and aggregate functions are stored on the server in the database.
  • the paths to the template elements 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. So, in the table 121 shown in FIG. 5, the path to the element 13 shown in FIG. 3 from the BODY element is saved as a string “3; 13". In the table 136 shown in FIG. 8, the path to the element 1 1 8 shown in FIG. 3 from the BODY element is stored as a string “7; 5; 9”. In the table 134 shown in FIG.
  • database any type of database known in the art can be used as a database.
  • a database For example, hierarchical, network, relational, and object-oriented databases.
  • 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:
  • the user initiates a request to the server in the browser to edit the entity class instance.
  • the browser passes the identifier of the entity class instance to the server.
  • 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 in the template an element that connects the library of program code that ensures that the browser (at the next step of the method) receives the necessary data and metadata (attribute values 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 datasets and their fields and aggregate functions, including information on relationships of attributes of an entity class, data sets of their fields and aggregate functions with template elements) and placement of the received data in elements a template, as well as providing user actions for editing the attribute values of an instance of an entity class in the browser and saving the changed values to the 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.
  • 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.
  • the server embeds the library program code directly into the template.
  • 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.
  • the library can be implemented in any programming language supported by the browser, including, but not limited to, JavaScript or Dart.
  • the external library may be located on a remote server accessed via the Internet.
  • 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 a possible composition of data and metadata are shown in FIG. 1, FIG. 5 and FIG. 8.
  • 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.
  • 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 browser memory, including information about relationships between attributes of an entity class, data sets of 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.
  • 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.
  • the function 151 depicted in FIG. 1 1 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 to represent attribute values of an instance of an entity class) and, using auxiliary function 150, finds the elements of the template, and then puts the values of the attributes of the instance of the entity class into them; function 1 52 shown in FIG.
  • 1 1 in a cycle refers to an array of 145 data sets, then in a nested cycle it refers to an array of 149 objects (in which the values of the aggregate functions of the data set and the path to the template elements for representing these values are stored) .
  • the auxiliary function 150 finds the elements of the template, after which it places the values of the aggregate functions of the data set in them; depicted in FIG.
  • 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 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 row of the tabular part of the data set, and then 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.
  • 1 3 shows a visual representation by the browser of an example of a template with the values of the attributes of an instance of the entity class, the elements of the data set and the value of the aggregate function, which correspond to the example of the object shown in Fig. 10 in the browser memory and correspond to examples of the possible composition of the data and metadata shown in Fig.1, Fig.5 and Fig.8.
  • the paths to the elements of the template are used only for the initial search.
  • 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.
  • 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.
  • 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.
  • 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 data and metadata stored in browser memory an entity instance and its attributes (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 makes a request to the server in order to save these values.
  • a server request is made using the AJAX concept.
  • 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.
  • the storage of the values of the attributes of the entity instance in the database is performed using ORM.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

СПОСОБ ПОДГОТОВКИ ДОКУМЕНТОВ НА ЯЗЫКАХ РАЗМЕТКИ
Данное техническое решение относится к области пользовательских интерфейсов, точнее к пользовательским интерфейсам для работы с данными в компьютерных информационных системах.
УРОВЕНЬ ТЕХНИКИ
Данные в компьютерных информационных системах обычно обрабатывают, как экземпляры сущностей, имеющих некоторый постоянный или переменный набор атрибутов. В настоящее время широко распространено использование в компьютерных информационных системах языков разметки, включая, но не ограничиваясь, HTML и XML, для хранения, передачи, публикации и других задач работы с данными, в том числе и для реализации пользовательского интерфейса. При этом, возможно, наибольшую популярность приобрели способы, когда значения атрибутов экземпляров сущностей информационной системы включают в документы на языках разметки и предоставляют пользователю для обработки в браузере. Пользователь может просматривать и редактировать значения атрибутов экземпляров сущностей в браузере, а также инициировать сохранение измененных значений в информационной системе. Следует подчеркнуть, что в документах на языках разметки, кроме собственно данных, присутствуют вспомогательные элементы, которые определяют стили и/или местоположение отображения данных в браузере, а также определяют смысловое значение данных. Дополнительно, в таких документах могут присутствовать элементы оформления (например, фоновые изображения), вспомогательные текстовые фрагменты (например, поясняющие надписи) и другие элементы, не относящиеся к данным.
Для того чтобы предоставить пользователю экземпляр сущности информационной системы для обработки в браузере, требуется разместить значения атрибутов экземпляра сущности (данные) в документе на языке разметки.
Из уровня техники известен способ, при котором в документы на языках разметки внедряют блоки программного кода, которые обрабатывают препроцессором и при этом блоки кода заменяют на результат работы этого кода. Данный способ требует дополнительных специальных знаний, по крайней мере, синтаксиса языка программирования, на котором формируют блоки программного кода, внедряемые в документы на языках разметки. Также данный способ требует дополнительных затрат времени на внедрение в документы на языках разметки блоков программного кода, подлежащего обработке препроцессором.
Также известен способ, при котором в документы на языках разметки, в места, предназначенные для помещения данных, вставляют специальные символы и связанные с ними переменные, которые заменяют данными в процессе подготовки к передаче в браузер. Для обработки таких документов, также называемых шаблонами, используются так называемые процессоры шаблонов, например, ApacheVelocity. Данный способ требует дополнительных специальных знаний, по крайней мере, синтаксиса процессора шаблонов. Также данный способ требует дополнительных затрат времени на внедрение в документы на языках разметки дополнительных символов и переменных и их периодическую актуализацию в случае изменения или развития синтаксиса процессора шаблонов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Далее представлено упрощенное описание сущности технического решения для обеспечения основного понимания некоторых аспектов. Эта сущность не является обширным обзором. Она не предназначена для идентификации ключевых или критических элементов технического решения. Единственная цель состоит в том, чтобы представить некоторые концепции в упрощенной форме как вводную часть к более подробному описанию, которое представлено позднее.
Данное техническое решение направлено на устранение недостатков, присущих известным решениям из уровня техники.
Техническим результатом является оптимизация процесса подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы, уменьшение временных затрат при подготовке документов и упрощение их последующей поддержки. Технический результат обусловлен исключением необходимости внедрения в документы на языках разметки дополнительной информации, предназначенной для управления отображением данных информационной системы в составе документов. Дополнительными эффектами являются: повышение удобства подготовки документов на языках разметки к использованию при реализации пользовательского интерфейса для работы с данными информационной системы и снижение требований к специальным знаниям пользователей, формирующих эти документы.
Указанный технический результат достигается благодаря способу подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы, в котором формируют метаданные для, по крайней мере, одного класса сущности, его атрибутов и наборов данных, элементов наборов данных, включающих, по крайней мере, поля наборов данных и агрегатные функции наборов данных 154 (Фиг.14); формируют шаблон представления экземпляров вышеупомянутого класса сущности, состоящий, по крайней мере, из одного документа, сформированного на, по крайней мере, одном языке разметки 155 (Фиг. 14); формируют и сохраняют связь шаблона и класса сущности 1 56 (Фиг. 14); отображают шаблон, формируют и сохраняют связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями 157 (Фиг. 14), при этом: выбирают элемент шаблона и отображают информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях; выбирают атрибут класса сущности или набор данных или поле набора данных или агрегатную функцию набора данных; формируют и сохраняют связь, содержащую идентификатор выбранного ранее элемента шаблона и идентификатор выбранного на предыдущем шаге атрибута класса сущности или набора данных или поля набора данных или агрегатной функции набора данных. В некоторых вариантах осуществления технического решения наборы данных содержат значения атрибутов и значения агрегатных функций, вычисленные на основе значений этих атрибутов, причем атрибуты принадлежат экземплярам сущностей, связанным с представляемым экземпляром сущности.
В некоторых вариантах осуществления технического решения языком разметки является HTM L или XML или XHTML или DocBook.
В некоторых вариантах осуществления технического решения шаблон формируют при помощи текстовых редакторов с подсветкой синтаксиса или WYSIWYG-редакторов или онлайн-редакторов.
В некоторых вариантах осуществления технического решения элементам шаблона, предназначенным для представления значений атрибутов экземпляра класса сущности, устанавливают значения по типу данных и размеру соответствующие атрибутам класса сущности.
В некоторых вариантах осуществления технического решения элементам шаблона, предназначенным для представления элементов наборов данных, устанавливают значения по типу данных и размеру соответствующие элементам наборов данных.
В некоторых вариантах осуществления технического решения в шаблоне представления экземпляров класса сущности дополнительно формируют группы элементов для представления элементов наборов данных и создают структурные элементы, являющиеся корневыми элементами фрагментов иерархической структуры документа, в которые входят все элементы соответствующих упомянутых групп элементов.
В некоторых вариантах осуществления технического решения сформированный шаблон сохраняют на сервере в БД.
В некоторых вариантах осуществления технического решения информацию о сформированной связи шаблона и класса сущности сохраняют на сервере в БД.
В некоторых вариантах осуществления технического решения в составе информации о сформированной связи шаблона и класса сущности дополнительно сохраняют идентификатор типа шаблона и идентификатор языка пользователей, с использованием которого сформированы значения вспомогательных элементов шаблона.
В некоторых вариантах осуществления технического решения перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, подключающий библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями . В некоторых вариантах осуществления технического решения библиотеку программного кода реализуют на языке программирования, поддерживаемом браузером.
В некоторых вариантах осуществления технического решения языком программирования, поддерживаемым браузером, является JavaScript или Dart.
В некоторых вариантах осуществления технического решения библиотеку программного кода располагают на удаленном сервере, доступ к которому осуществляют по Internet.
В некоторых вариантах осуществления технического решения перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, содержащий программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.
В некоторых вариантах осуществления технического решения, для выбора элемента шаблона, при наведении пользователем указателя на элемент шаблона, данный элемент графически выделяют.
В некоторых вариантах осуществления технического решения информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях, отображают в виде списков, в которые включают только свободные, еще не привязанные к какому-либо элементу шаблона, атрибуты, наборы данных, их поля и агрегатные функции.
В некоторых вариантах осуществления технического решения информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях отображают в отдельном окне браузера или в перемещаемой области внутри окна с шаблоном, при этом формирование связей с элементами шаблона осуществляют с использованием способа Drag-and-Drop.
В некоторых вариантах осуществления технического решения, при выборе элемента шаблона, когда отображаемая область подлежащего выбору элемента полностью закрыта отображаемыми областями дочерних элементов и выбрать этот элемент невозможно, выбирают любой дочерний элемент и, далее, последовательно осуществляют выбор родительских элементов до тех пор, пока не будет выбран нужный элемент для формирования его связи с атрибутом класса сущности или набором данных или полем набора данных или агрегатной функцией набора данных.
В некоторых вариантах осуществления технического решения выбор очередного родительского элемента осуществляют при помощи элемента управления, отображаемого совместно со списками доступных для формирования связи атрибутов класса сущности, наборов данных, их полей и агрегатных функций.
В некоторых вариантах осуществления технического решения после формирования связи элемента шаблона с атрибутом класса сущности или набором данных или полем набора данных или агрегатной функцией набора данных, этот элемент графически выделяют.
В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют последовательность индексов дочерних элементов, ведущую к элементу от известного элемента шаблона.
В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют значение атрибута ID.
В некоторых вариантах осуществления технического решения уникальные для шаблона значения атрибута ID устанавливают для всех элементов шаблона автоматически после формирования связи шаблона с классом сущности.
В некоторых вариантах осуществления технического решения уникальное для шаблона значение атрибута ID устанавливают автоматически для элемента шаблона в процессе формирования связи этого элемента с атрибутом класса сущности или набором данных или полем набора данных или агрегатной функцией набора данных.
В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют выражение для запроса на языке XPath.
В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют уникальное шаблонное значение элемента.
В некоторых вариантах осуществления технического решения для получения идентификаторов элементов шаблона используют язык запросов XPath.
В некоторых вариантах осуществления технического решения инициируют формирование и сохранение связи атрибута класса сущности или набора данных или поля набора данных или агрегатной функции набора данных с выбранным элементом шаблона при помощи элемента управления, отображаемого совместно со списками доступных для формирования связи атрибутов класса сущности, наборов данных, их полей и агрегатных функций.
В некоторых вариантах осуществления технического решения сформированные связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, сохраняют на сервере в БД.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Последующее описание и прилагаемые чертежи подробно формулируют конкретные иллюстративные аспекты технического решения. Однако эти аспекты показывают только некоторые из различных способов, в которых могут использоваться принципы данного технического решения.
Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых: На Фиг. I изображен фрагмент возможной структуры БД с указанием атрибутного состава таблиц, примерного содержания таблиц и связей между таблицами (в виде стрелок), на котором обозначены:
таблица 100 классов сущностей, в которой хранятся метаданные классов сущностей;
таблица 101 атрибутов сущностей, в которой хранятся метаданные атрибутов сущностей; связь атрибута сущности из таблицы 101 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных атрибута сущности (в атрибуте «ГО класса» таблицы 101 );
таблица 102 наборов данных, в которой хранятся метаданные наборов данных; связь набора данных из таблицы 102 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных набора данных (в атрибуте «1D класса» таблицы 102);
таблица 103 полей наборов данных, в которой хранятся метаданные полей наборов данных; связь поля набора данных из таблицы 103 с набором данных в таблице 102 обеспечивается хранением значения идентификатора набора данных в составе метаданных поля набора данных (в атрибуте «ID набора» таблицы 103); связь поля набора данных из таблицы 103 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных поля набора данных (в атрибуте «ГО класса» таблицы 103); связь поля набора данных из таблицы 103 с атрибутом сущности в таблице 101 обеспечивается хранением значения идентификатора атрибута сущности в составе метаданных поля набора данных (в атрибуте «ГО атрибута» таблицы ЮЗ);
таблица 104 агрегатных функций, в которой хранятся метаданные агрегатных функций наборов данных; связь агрегатной функции из таблицы 104 с набором данных в таблице 102 обеспечивается хранением значения идентификатора набора данных в составе метаданных агрегатной функции (в атрибуте «ID набора» таблицы 104); связь агрегатной функции из таблицы 104 с полем набора данных в таблице 103 обеспечивается хранением значения идентификатора поля набора данных в составе метаданных агрегатной функции (в атрибуте «ГО поля» таблицы 104);
На Фиг.2 изображен пример процесса копирования фрагмента иерархической структуры документа на языке HTML при помощи программного кода на языке JavaScript, на котором обозначены:
фрагмент 105 иерархической структуры документа на языке HTML и отображение 106 этого фрагмента в браузере;
программный код 107 на языке JavaScript, который копирует элемент 108 вместе с вложенными элементами и вставляет копию после оригинала;
фрагмент 109 иерархической структуры документа на языке HTML, внутреннее представление которого в браузере аналогично внутреннему представлению результата б работы программного кода 107, а его отображение 1 1 0 в браузере идентично отображению результата работы программного кода 107;
На Фиг.З изображен сокращенный фрагмент одного из возможных вариантов шаблона на языке HTML, на котором обозначены:
вспомогательный элемент 1 1 1 типа «горизонтальная линия»;
вспомогательная надпись 1 12;
элемент 1 13 шаблона (для представления значения атрибута «Подразделение» экземпляра сущности «План») и шаблонное значение 1 14 этого элемента;
корневой элемент 1 15 (для группы элементов, предназначенных для представления значений атрибутов экземпляров сущности «Задача»);
элемент 1 1 6 упомянутой группы (предназначенный для представления значения атрибута «Формулировка») и шаблонное значение 1 17 этого элемента;
элемент 1 18 (для представления результата агрегатной функции) и шаблонное значение 1 1 9 этого элемента;
На Фиг.4 изображено визуальное представление браузером изображенного на
Фиг.З сокращенного фрагмента одного из возможных вариантов шаблона на языке HTML, на котором обозначены:
вспомогательный элемент 1 1 1 типа «горизонтальная линия»;
вспомогательная надпись 1 12;
шаблонные значения 1 14, 1 1 7 и 1 19;
На Фиг.5 изображен фрагмент возможной структуры БД с указанием атрибутного состава таблиц, примерного содержания таблиц и связей между таблицами (в виде стрелок), на котором обозначены:
таблица 100 классов сущностей, в которой хранятся метаданные классов сущностей;
таблица 101 атрибутов сущностей, в которой хранятся метаданные атрибутов сущностей; связь атрибута сущности из таблицы 10 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных атрибута сущности (в атрибуте «Ш класса» таблицы 101 );
таблица 120 шаблонов представления экземпляров сущностей, в которой хранятся метаданные шаблонов; связь шаблона из таблицы 120 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных шаблона (в атрибуте «ГО класса» таблицы 120);
таблица 121 путей к элементам шаблонов, в которой хранятся пути к целевым элементам от корневых элементов шаблонов (в виде строк, содержащих цифровые W представления числовых значений индексов дочерних элементов, расположенных слева- направо и разделенных символом точки с запятой); связь пути из таблицы 121 с атрибутом сущности в таблице 101 обеспечивается хранением значения идентификатора атрибута сущности в составе записи таблицы 121 (в атрибуте «1D атрибута»); связь пути из таблицы 121 с шаблоном в таблице 120 обеспечивается хранением значения идентификатора шаблона в составе записи таблицы 121 (в атрибуте «Ю шаблона»);
На Фиг.6 изображены примеры возможных вариантов внедрения в шаблон элемента для подключения библиотеки программного кода, обеспечивающего действия пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, и элемента с идентификатором связанной сущности (в случае, если шаблон сформирован на языке HTML, а программный код библиотеки сформирован на языке JavaScript). На Фиг.6 обозначены:
пример 122 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 123, который подключает библиотеку программного кода, находящуюся во внешнем файле с именем «markup_Iibrary»;
внедренный сервером в шаблон элемент 124, который, после завершения загрузки шаблона браузером, обеспечивает вызов процедуры «prepare_for_markup» для подготовки шаблона к формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями;
пример 125 упрощенного шаблона представления сущности на языке HTML с внедренным сервером элементом 126, который содержит непосредственно программный код библиотеки, и, после завершения загрузки шаблона браузером, обеспечивает вызов процедуры «prepare_for_markup» для подготовки шаблона к формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полям и и агрегатными функциями;
идентификатор 127 класса сущности, для представления экземпляров которого будет осуществляться формирование и сохранение связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями;
На Фиг.7 изображено визуальное представление браузером изображенного на
Фиг.З сокращенного фрагмента одного из возможных вариантов шаблона на языке HTML в режиме формирования и сохранения связей элементов с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, на котором обозначены:
выбранный пользователем элемент 1 13, который графически выделен (рамкой из сплошных линий);
диалоговое окно 128, которое содержит список 129 доступных для привязки атрибутов класса сущности; кнопку 130, предназначенную для запуска процедуры формирования и сохранения связи; кнопку 131 , нажатием которой выбирают элемент, являющийся родительским элементом для текущего выбранного элемента; На Фиг.8 изображен фрагмент возможной структуры БД с указанием атрибутного состава таблиц, примерного содержания таблиц и связей между изображенными таблицами (в виде стрелок), на котором обозначены: таблица 132 экземпляров сущностей; связь экземпляра сущности из таблицы 132 с классом сущности в изображенной на Фиг.1 таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе данных экземпляра сущности (в атрибуте «ГО класса» таблицы 132); таблица 133 значений атрибутов экземпляров сущностей; связь значения атрибута из таблицы 133 с экземпляром сущности в таблице 132 обеспечивается хранением значения идентификатора экземпляра сущности в составе данных значения атрибута сущности (в атрибуте «1D экземпляра» таблицы 133); связь значения атрибута из таблицы 133 с атрибутом сущности в изображенной на Фиг.1 таблице 101 обеспечивается хранением значения идентификатора атрибута сущности в составе данных значения атрибута сущности (атрибуте «ID атрибута» таблицы 133); таблица 134 путей наборов данных, в которой хранятся пути (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева-направо и разделенных символом точки с запятой) от корневого элемента шаблона к корневому элементу группы элементов шаблона, предназначенных для отображения элементов наборов данных; связь пути набора данных из таблицы 1 34 с набором данных в изображенной на Фиг.1 таблице 102 обеспечивается хранением значения идентификатора набора данных в составе данных пути набора данных (в атрибуте «ID набора» таблицы 134); связь пути набора данных из таблицы 134 с шаблоном представления сущности в изображенной на Фиг.5 таблице 120 обеспечивается хранением значения идентификатора шаблона представления экземпляра сущности в составе данных пути набора данных (в атрибуте «ГО шаблона» таблицы 134); таблица 135 путей полей наборов данных, в которой хранятся пути (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева-направо и разделенных символом точки с запятой) от корневого элемента группы элементов шаблона, предназначенных для отображения элементов наборов данных, к целевым элементам группы; связь пути поля набора данных из таблицы 135 с полем набора данных в изображенной на Фиг.1 таблице 103 обеспечивается хранением значения идентификатора поля набора данных в составе данных пути поля набора данных (в атрибуте «ГО поля» таблицы 135); связь пути поля набора данных из таблицы 135 с шаблоном представления экземпляра сущности в изображенной на Фиг.5 таблице 120 обеспечивается хранением значения идентификатора шаблона представления экземпляра сущности в составе данных пути поля набора данных (в атрибуте «1D шаблона» таблицы 135); таблица 136 путей агрегатных функций наборов данных, в которой хранятся пути (в виде строки, содержащей цифровые представления числовых значений индексов дочерних элементов, расположенных слева-направо и разделенных символом точки с запятой) от корневого элемента шаблона к элементу шаблона, предназначенному для представления значения агрегатной функции набора данных; связь пути агрегатной функции набора данных из таблицы 136 с агрегатной функцией набора данных в изображенной на Фиг. I таблице 104 обеспечивается хранением значения идентификатора агрегатной функции набора данных в составе данных пути агрегатной функции набора данных (в атрибуте «Ш агрегатной функции» таблицы 136); связь пути агрегатной функции набора данных из таблицы 136 с шаблоном представления сущности в изображенной на Фиг.5 таблице 120 обеспечивается хранением значения идентификатора шаблона представления сущности в составе данных пути агрегатной функции набора данных (в атрибуте «ГО шаблона» таблицы 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 объектов, в которых хранятся в сопоставленном виде значения агрегатных функций набора данных и пути к целевым элементам шаблона для представления этих значений;
На Фиг.1 1 изображены примеры функций на языке JavaScript, предназначенные для представления экземпляра сущности и наборов данных в шаблоне в браузере. На Фиг. 1 1 обозначены: вспомогательная функция 150, которая принимает в качестве параметров корневой элемент DOM и путь (от этого корневого элемента), и возвращает элемент DOM, найденный по пути относительно корневого элемента; функция 151 , которая помещает значения атрибутов экземпляра сущности в соответствующие элементы шаблона; функция 152, которая помещает значения агрегатных функций наборов данных в соответствующие элементы шаблона; На Фиг.12 изображен пример функции 153, которая размещает в шаблоне табличные части наборов данных.
На Фиг.13 изображено визуальное представление браузером примера шаблона с размещенными в составе его элементов значениями атрибутов экземпляра сущности, элементами набора данных и значением агрегатной функции, которые соответствуют изображенному на Фиг. 10 примеру объекта в памяти браузера и соответствуют примерам возможного состава данных и метаданных, изображенных на Фиг.1 , Фиг.5 и Фиг.8.
На Фиг.14 изображена блок-схема варианта реализации способа подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы.
ПОДРОБНОЕ ОПИСАНИЕ Приведенные в настоящей заявке примеры наименований и обозначений носят исключительно иллюстративный характер и не предназначены для идентификации ключевых или критических элементов технического решения.
В настоящем описании, с целью упрощения понимания сути технического решения, в основном приводятся примеры использования языка разметки HTML, однако специалисту в данном уровне техники очевидно, что предлагаемый способ может быть реализован с использованием любого другого языка разметки, который может поддерживаться браузерами и обеспечивает возможность иерархической организации элементов разметки и данных в составе документа на этом языке. К таким языкам относятся, например, некоторые приложения и подмножества метаязыка SGML.
Данное техническое решение может быть реализовано на компьютере, а так же в виде компьютерной системы или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.
Данное техническое решение может быть реализовано на распределенной компьютерной системе.
Ниже будут приведены термины и их определения, используемые в заявке, необходимые для понимания сущности заявляемого технического решения.
Данные - интерпретируемое формализованным способом представление информации, подходящее для связи, интерпретации или обработки (ISO/IEC 2382:201 5, 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»); функциональный блок, который обеспечивает общие службы для рабочих станций или других функциональных блоков по сети передачи данных (1SO/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-19991 1 16/);
SGML (англ. Standard Generalized Markup Language) - стандартный обобщенный язык разметки - метаязык, на котором можно определять язык разметки для документов (ISO 8879: 1986, «Standard Generalized Markup Language»);
Сущность - любая конкретная или абстрактная вещь, которая существует, существовала или могла бы существовать, включая объединение таких вещей (ISO/IEC 2383 :201 5, 2121443 «entity»);
Атрибут - именованное свойство сущности (1SO/IEC 2383 :2015, 21 21450 «attribute»);
Класс сущности - множество сущностей с общим атрибутным составом (ISO/IEC 2383:2015, 2121448 «entity class»);
Экземпляр сущности (экземпляр класса сущности) - конкретный экземпляр класса сущности (ISO/IEC 2383 :2015, 2 121449 «entity occurence)));
Значение атрибута - конкретное значение атрибута (ISO/IEC 2383:201 5, 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.
В некоторых вариантах осуществления технического решения документы на языках разметки формируют при помощи соответствующего языку разметки программного обеспечения, включая, но не ограничиваясь, текстовые редакторы с подсветкой синтаксиса, WYSlWYG-редакторы, в том числе онлайн-редакторы.
В шаблонах представления экземпляров класса сущности создают элементы, которые будут представлять значения атрибутов экземпляра класса сущности, а также создают вспомогательные элементы, включая, но не ограничиваясь, пояснительные надписи, фоновые изображения, разделительные линии и другие элементы.
В некоторых вариантах осуществления технического решения, элементам шаблона, предназначенным для представления значений атрибутов экземпляра класса сущности, устанавливают значения по типу данных и размеру соответствующие атрибутам класса сущности.
В некоторых вариантах осуществления технического решения, элементам шаблона, предназначенным для представления элементов наборов данных, устанавливают значения по типу данных и размеру соответствующие элементам наборов данных.
В некоторых вариантах осуществления технического решения, в шаблоне представления экземпляра класса сущности дополнительно формируют элементы для представления элементов наборов данных, например, содержащих значения атрибутов экземпляров сущностей, связанных с экземпляром представляемой сущности, а также значения агрегатных функций, вычисленных на основе значений этих атрибутов. В общем случае количество строк в табличных частях наборов данных неизвестно в момент формирования шаблона представления экземпляра сущности. Поэтому в шаблоне формируют группу элементов, достаточную для представления нужных элементов одной строки набора данных, а в процессе представления экземпляра сущности создают копии этой группы элементов для представления элементов других строк набора данных. Одним из вариантов копирования групп элементов шаблона, позволяющим упростить реализацию, является тот, в котором используется предоставляемая DOM возможность создавать копии фрагментов иерархической структуры документа. Чтобы использовать эту возможность, в некоторых вариантах осуществления технического решения, в шаблоне создают структурный элемент, являющийся корневым элементом фрагмента иерархической структуры документа, в который входят все элементы упомянутой группы. На Фиг.2 изображен пример процесса копирования фрагмента иерархической структуры документа на языке HTML при помощи программного кода на языке JavaScript. Следует подчеркнуть, что атрибут ID элемента 108 в приведенном на Фиг.2 фрагменте 105 используется исключительно с целью облегчения понимания примера за счет упрощения программного кода 107. В предлагаемом техническом решении использование атрибута ID необязательно, что станет очевидным из дальнейшего описания. На Фиг.З изображен сокращенный фрагмент одного из возможных вариантов шаблона на языке HTML для представления экземпляра сущности «План», в составе которого должны представляться значения атрибутов связанных с ним экземпляров сущности «Задача», а также значение агрегатной функции, вычисленной на основе значений одного из этих атрибутов. Визуальное представление браузером изображенного на Фиг.З фрагмента шаблона изображено на Фиг.4.
В некоторых вариантах осуществления технического решения сформированный шаблон сохраняют на сервере в БД.
формируют и сохраняют связь шаблона и класса сущности;
В некоторых вариантах осуществления технического решения формирование связи между шаблоном и классом сущности обеспечивается действиями пользователя, который выбирает класс сущности из полученного с сервера набора, выбирает шаблон (файл, WYSIWYG-редактор, но не ограничиваясь) и тем самым формирует связь между классом сущности и шаблоном.
В некоторых вариантах осуществления технического решения информация о сформированной связи сохраняется на сервере в БД. На Фиг.5 изображен один из возможных вариантов хранения связи шаблона с классом сущности : связь шаблона из таблицы 120 с классом сущности в таблице 100 обеспечивается хранением значения идентификатора класса сущности в составе метаданных шаблона в атрибуте «ID класса» таблицы 120.
В некоторых вариантах осуществления технического решения в составе информации о сформированной связи шаблона и класса сущности дополнительно сохраняют идентификатор типа шаблона (например, указывающий на его предназначение: «для печати», «для устройств с сенсорными экранами», «для людей с ограниченными возможностями» и др.) и идентификатор языка пользователей, с использованием которого сформированы значения вспомогательных элементов шаблона (например, текстовых поясняющих надписей или содержащих текст изображений).
отображают шаблон, формируют и сохраняют связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, при этом: выбирают элемент шаблона и отображают информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях; выбирают атрибут класса сущности или набор данных или поле набора данных или агрегатную функцию набора данных; формируют и сохраняют связь, содержащую идентификатор выбранного ранее элемента шаблона и идентификатор выбранного на предыдущем шаге атрибута класса сущности или набора данных или поля набора данных или агрегатной функции набора данных
Действия пользователя могут осуществляться в браузере, что позволяет пользователю работать удаленно, например, используя Internet.
В некоторых вариантах осуществления технического решения для получения шаблона с целью формирования и сохранения связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, пользователь инициирует получение шаблона в браузере, который, в свою очередь, обращается к серверу с запросом на получение шаблона. Сервер извлекает шаблон из БД и внедряет в него элемент, подключающий библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, а также внедряет в шаблон элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, сформированную и сохраненную в БД на предыдущем шаге способа; после чего передает шаблон браузеру для отображения. На Фиг.6 изображен пример 122 упрощенного шаблона представления экземпляра сущности с внедренным сервером элементом 123, который подключает библиотеку программного кода, находящуюся во внешнем файле с именем «markup_library», и внедренным сервером элементом 124, содержащим идентификатор 127 класса сущности.
В некоторых вариантах осуществления технического решения сервер извлекает шаблон из БД и внедряет в него элемент, содержащий программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, и идентификатор класса сущности, используя информацию о связи шаблона и класса сущности, сформированную и сохраненную в БД на предыдущем шаге способа; после чего передает шаблон браузеру для отображения. На Фиг.6 изображен пример 125 упрощенного шаблона представления экземпляра сущности с внедренным сервером элементом 1 26, который содержит программный код и идентификатор 127 класса сущности. В некоторых вариантах осуществления технического решения программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, реализуют на любом языке программирования, поддерживаемым браузером, включая, но не ограничиваясь, JavaScript или Dart.
В некоторых вариантах осуществления технического решения библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, располагают на удаленном сервере, доступ к которому осуществляют по Internet.
В некоторых вариантах осуществления технического решения, при наведении пользователем курсора (или иного указателя) на элемент шаблона, данный элемент графически выделяют для облегчения выбора элемента для формирования связи элемента с атрибутом класса сущности или набором данных или полем набора данных или агрегатной функцией набора данных.
В некоторых вариантах осуществления технического решения, при выборе пользователем элемента шаблона, отображают получаемую с удаленного сервера информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях. На Фиг.7 изображено визуальное представление браузером изображенного на Фиг.З сокращенного фрагмента одного из возможных вариантов шаблона на языке HTML в режиме формирования связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.
В некоторых вариантах осуществления технического решения, информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях, отображают в виде списков, в которые включают только свободные, еще не привязанные к какому-либо элементу шаблона, атрибуты, наборы данных, их поля и агрегатные функции.
В некоторых вариантах осуществления технического решения, информацию о доступных для формирования связи атрибутах класса сущности, наборов данных, их полей и агрегатных функций, отображают в отдельном окне браузера или в перемещаемой области внутри окна с шаблоном, при этом формирование связей с элементами шаблона осуществляют с использованием способа Drag-and-Drop.
В некоторых вариантах осуществления технического решения, при выборе пользователем элемента шаблона, в случаях, когда отображаемая в браузере область подлежащего выбору элемента полностью закрыта отображаемыми областями дочерних элементов и непосредственно выбрать этот элемент невозможно, выбирают любой дочерний элемент и, далее, последовательно осуществляют выбор родительских элементов до тех пор, пока не будет выбран нужный элемент для формирования его связи с атрибутом класса сущности или набором данных или полем набора данных или агрегатной функцией набора данных. Выбор очередного родительского элемента осуществляют при помощи элемента управления, например, кнопки, отображаемой совместно со списками доступных для формирования связи атрибутов класса сущности, наборов данных, их полей и агрегатных функций. На Фиг.7 изображена кнопка 131 , нажатием которой выбирают элемент, являющийся родительским элементом для текущего выбранного элемента.
В некоторых вариантах осуществления технического решения производят выбор атрибута класса сущности или набора данных или поля набора данных или агрегатной функции набора данных, тем самым формируя и сохраняя связь с выбранным ранее элементом шаблона.
В некоторых вариантах осуществления технического решения производят выбор атрибута класса сущности или набора данных или поля набора данных или агрегатной функции набора данных, и, далее, инициируют формирование и сохранение связи с ранее выбранным элементом шаблона при помощи элемента управления, например, кнопки, отображаемой совместно со списками доступных для формирования связи атрибутов класса сущности, наборов данных, их полей и агрегатных функций. На Фиг.7 изображена кнопка 130, запускающая процедуру формирования и сохранения связи.
В некоторых вариантах осуществления технического решения информация о сформированной и сохраненной связи содержит идентификатор атрибута класса сущности или набора данных или поля набора данных или агрегатной функции набора данных и идентификатор элемента шаблона. Под идентификатором элемента шаблона понимается любая информация, позволяющая исполняемому браузером программному коду получить доступ к данному элементу шаблона.
Для работы с документом на языке разметки, браузер строит в памяти внутреннее представление документа и дает исполняемому им программному коду доступ к этому представлению в виде DOM, для чего браузер воспроизводит в памяти иерархию тегов документа. При этом в DOM, каждый элемент, кроме корневого, имеет своего единственного прямого «родителя» (элемент верхнего уровня), ссылка на который хранится в составе самого элемента (parentNode для HTML и JavaScript), а все элементы могут иметь несколько «потомков» (элементов нижнего уровня) - в этом случае у каждого такого элемента имеется специальный массив ссылок на дочерние элементы (childNodes для HTML и JavaScript). Каждая ссылка в массиве имеет порядковый номер (индекс). Таким образом, для каждого элемента шаблона можно, итерационно обращаясь к прямым «родителям», определить уникальную последовательность индексов дочерних элементов, ведущую от корневого элемента (либо иного известного элемента) к данному элементу. В рамках настоящей заявки, в некоторых случаях, с целью сокращения обозначения, будем называть эту последовательность «путем» (к элементу).
В некоторых вариантах осуществления технического решения, в случае использования шаблонов на языке HTML, в качестве корневого элемента используют элемент BODY.
В некоторых вариантах осуществления технического решения, при формировании и сохранении связи элемента шаблона с атрибутом класса сущности или агрегатной функцией набора данных, в качестве идентификатора элемента шаблона используют путь к элементу шаблона от корневого элемента DOM. При формировании связи набора данных с элементом шаблона, являющимся корневым для группы элементов, предназначенных для отображения элементов набора данных, в качестве идентификатора также используют путь к корневому элементу группы от корневого элемента DOM. А при формировании связи элементов упомянутой группы с полями набора данных, в качестве идентификаторов элементов группы используют пути к этим элементам от корневого элемента группы. Например, путь к изображенному на Фиг.З элементу 1 13 от элемента BODY будет представлять собой следующую последовательность индексов дочерних элементов (слева-направо): 3, 1 , 3. Специалисту в данном уровне техники известно, что такие значения индексов дочерних элементов обусловлены стандартным способом разбора браузером исходного текста HTML, при котором использованные для форматирования исходного текста вспомогательные символы (например, перевод строки, возврат каретки, пробелы) помещаются браузером в отдельные текстовые узлы, которые также являются элементами DOM и входят в массивы дочерних элементов (childNodes) соответствующих элементов верхнего уровня, а сами индексы начинаются с нуля.
В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют значение атрибута ID данного элемента шаблона.
В некоторых вариантах осуществления технического решения уникальные для шаблона значения атрибута ID устанавливают для всех элементов шаблона автоматически после формирования связи шаблона с классом сущности.
В некоторых вариантах осуществления технического решения уникальное для шаблона значение атрибута ID устанавливают автоматически для элемента шаблона в процессе формирования связи этого элемента с атрибутом класса сущности или набором данных или полем набора данных или агрегатной функцией набора данных.
В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют выражение для запроса на языке XPath.
В некоторых вариантах осуществления технического решения в качестве идентификатора элемента шаблона используют уникальное значение элемента.
В некоторых вариантах осуществления технического решения для получения идентификаторов элементов шаблона используют язык запросов XPath.
В некоторых вариантах осуществления технического решения после формирования связи элемента шаблона с атрибутом класса сущности или набором данных или полем набора данных или агрегатной функцией набора данных, этот элемент графически выделяют.
В некоторых вариантах осуществления технического решения, сформированные связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, сохраняют на сервере в БД. В некоторых вариантах осуществления технического решения пути к элементам шаблона сохраняются в виде строк, содержащих цифровые представления числовых значений индексов, расположенных слева-направо или справа-налево, и разделенных специальным символом или группой символов. Так, в таблице 121 , изображенной на Фиг.5, путь к изображенному на Фиг.З элементу 1 13 от элемента BODY сохранен в виде строки «3; 1 ;3». В таблице 136, изображенной на Фиг.8, путь к изображенному на Фиг.З элементу 1 1 8 от элемента BODY сохранен в виде строки «7;5;9». В таблице 134, изображенной на Фиг.8, путь к изображенному на Фиг.З элементу 1 1 5 от элемента BODY сохранен в виде строки «7;3». В таблице 135, изображенной на Фиг.8, путь к изображенному на Фиг.З элементу 1 16 от элемента 1 15 сохранен в виде строки «3».
Специалисту в данном уровне техники, очевидно, что в качестве БД может использоваться любой тип БД, известный из уровня техники. Например, иерархические, сетевые, реляционные и объектно-ориентированные БД.
Результаты работы способа подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы могут использоваться, но не ограничиваясь, следующим образом:
получают шаблон представления экземпляра класса сущности;
Пользователь инициирует в браузере запрос к серверу на редактирование экземпляра класса сущности. В составе запроса браузер передает серверу идентификатор экземпляра класса сущности. Используя идентификатор экземпляра класса сущности, сервер обращается к БД и извлекает из таблицы 132 идентификатор класса сущности, после чего использует его для получения метаданных шаблона представления экземпляра класса сущности из таблицы 120, в том числе имя файла шаблона. Сервер внедряет в шаблон элемент, подключающий библиотеку программного кода, обеспечивающую получение браузером (на следующем шаге способа) необходимых данных и метаданных (значений атрибутов экземпляра класса сущности, наборов данных и значений агрегатных функций, а также метаданные атрибутов класса сущности, метаданные наборов данных и их полей и агрегатных функций, в том числе информацию о связях атрибутов класса сущности, наборов данных их полей и агрегатных функций с элементами шаблонов) и размещение полученных данных в элементах шаблона, а также обеспечивающую действия пользователя по редактированию значений атрибутов экземпляра класса сущности в браузере и сохранению измененных значений в БД; дополнительно сервер внедряет в шаблон элемент с идентификатором экземпляра класса сущности, после чего передает шаблон браузеру для отображения. На Фиг.9 изображен пример 137 варианта внедрения элемента для подключения библиотеки и внедрения идентификатора экземпляра класса сущности, в случае, если библиотека находится во внешнем файле.
В некоторых вариантах осуществления технического решения сервер внедряет в шаблон непосредственно программный код библиотеки. На Фиг.9 изображен пример 140 варианта внедрения элемента для подключения библиотеки и внедрения идентификатора экземпляра класса сущности, в случае, если в шаблон внедряется непосредственно составляющий библиотеку программный код. Библиотека может быть реализована на любом языке программирования, поддерживаемым браузером, включая, но не ограничиваясь, JavaScript или Dart.
В некоторых вариантах осуществления технического решения, внешняя библиотека может быть расположена на удаленном сервере, доступ к которому осуществляется по Internet.
получают данные и метаданные экземпляра сущности, наборов данных, их полей и агрегатных функций, в том числе информацию о связях атрибутов класса сущности, наборов данных их полей и агрегатных функций с элементами шаблонов;
В некоторых вариантах осуществления технического решения получение данных и метаданных экземпляра класса сущности, наборов данных, их полей и агрегатных функций осуществляют с использованием концепции AJAX. Возможная структура БД и примеры возможного состава данных и метаданных изображены на Фиг.1 , Фиг.5 и Фиг.8. В некоторых вариантах осуществления технического решения, полученные из БД данные и метаданные помещают в памяти браузера в составе объекта, к которому может обращаться программный код подключенной на предыдущем шаге библиотеки. На Фиг. 10 изображен пример объекта (в виде программного кода на языке JavaScript по созданию объекта) для хранения в памяти браузера данных и метаданных экземпляра сущности, наборов данных, их полей и агрегатных функций, включая информацию о связях атрибутов класса сущности, наборов данных их полей и агрегатных функций с элементами шаблонов. Состав данных и метаданных, содержащихся в изображенном на Фиг. 10 примере объекта, полностью соответствует примерам возможного состава данных и метаданных, изображенных на Фиг. 1 , Фиг.5 и Фиг.8.
отображают экземпляр сущности;
В некоторых вариантах осуществления технического решения программный код подключенной ранее библиотеки использует помещенный на предыдущем шаге в памяти браузера объект с данными и метаданными экземпляра сущности, наборов данных, их полей и агрегатных функций для размещения данных в составе элементов шаблона. Например: изображенная на Фиг.1 1 функция 151 в цикле обращается к массиву 144 объектов (в которых хранятся в сопоставленном виде идентификаторы атрибутов сущности, значения атрибутов экземпляра сущности, а также пути к элементам шаблона для представления значений атрибутов экземпляра класса сущности) и, используя вспомогательную функцию 150, находит элементы шаблона, после чего помещает в них значения атрибутов экземпляра класса сущности; изображенная на Фиг.1 1 функция 1 52 в цикле обращается к массиву 145 наборов данных, далее во вложенном цикле обращается к массиву 149 объектов (в которых хранятся в сопоставленном виде значения агрегатных функций набора данных и пути к элементам шаблона для представления этих значений) и. используя вспомогательную функцию 150, находит элементы шаблона, после чего помещает в них значения агрегатных функций набора данных; изображенная на Фиг. 12 функция 153 в цикле обращается к массиву 145 наборов данных, и, используя хранящееся в свойстве 146 значение пути к корневому элементу группы элементов шаблона, предназначенных для представления данных строки табличной части набора данных, и вспомогательную функцию 150, находит корневой элемент группы, далее во вложенном цикле обращается к массиву 148 строк табличной части набора данных и, в случае необходимости, создает в структуре шаблона дополнительную копию группы элементов шаблона, предназначенных для представления данных строки табличной части набора данных, а затем в цикле по массиву составляющих строку значений элементов набора данных помещает эти значения в элементы группы, для чего использует значения путей к элементам относительно корневого элемента, которые хранятся в массиве 147. На Фиг. 1 3 изображено визуальное представление браузером примера шаблона с размещенными в составе его элементов значениями атрибутов экземпляра класса сущности, элементами набора данных и значением агрегатной функции, которые соответствуют изображенному на Фиг.10 примеру объекта в памяти браузера и соответствуют примерам возможного состава данных и метаданных, изображенных на Фиг.1 , Фиг.5 и Фиг.8.
В некоторых вариантах осуществления технического решения пути к элементам шаблона используют только для первоначального поиска. Далее этим элементам назначают временные синтетические идентификаторы (используя атрибут ID), чтобы сократить время обращения к элементам за счет использования предоставляемой DOM возможности поиска элементов по значению атрибута ID.
осуществляют редактирование экземпляра класса сущности;
Редактирование экземпляра класса сущности заключается в изменении значений атрибутов экземпляра класса сущности в его представлении в браузере.
В некоторых вариантах осуществления технического решения, в случае использования шаблонов на языке HTML, используют возможность изменения значений атрибутов экземпляра класса сущности в режиме WYSIWYG, для чего программный код ранее подключенной библиотеки, после помещения значений атрибутов экземпляра класса сущности в элементы шаблона, дополнительно устанавливает этим элементам значение атрибута CONTENTEDITABLE равное TRUE.
В некоторых вариантах осуществления технического решения изменение значений атрибутов экземпляра класса сущности осуществляют с использованием диалогового окна, которое появляется при выборе пользователем соответствующего элемента шаблона.
В некоторых вариантах осуществления технического решения с целью облегчения работы пользователя по изменению значений атрибутов экземпляра класса сущности, те элементы шаблона, которые содержат доступные для изменения значения, графически выделяют.
В некоторых вариантах осуществления технического решения с целью облегчения работы пользователя по изменению значений атрибутов экземпляра сущности, те элементы шаблона, которые содержат уже измененные пользователем значения, графически выделяют.
сохраняют измененный экземпляр класса сущности.
Пользователь инициирует в браузере выполнение процедуры сохранения экземпляра класса сущности, которая входит в состав подключенной ранее библиотеки программного кода. Эта процедура, используя хранящиеся в памяти браузера данные и метаданные экземпляра сущности и его атрибутов (например, в составе объекта, пример которого изображен на Фиг.10), находит элементы шаблона, в которых находятся значения атрибутов экземпляра класса сущности, считывает эти значения и осуществляет запрос к серверу с целью сохранения этих значений.
В некоторых вариантах осуществления технического решения запрос к серверу осуществляют с использованием концепции AJAX.
В некоторых вариантах осуществления технического решения в запрос к серверу включают только измененные значения атрибутов экземпляра класса сущности, для чего формирующая запрос процедура осуществляет сравнение значений атрибутов экземпляра класса сущности, которые находятся в элементах шаблона, со значениями атрибутов экземпляра класса сущности, которые ранее были получены от сервера и хранятся в памяти браузера (например, в составе объекта, пример которого изображен на Фиг.10).
Сервер обрабатывает запрос и сохраняет значения атрибутов экземпляра сущности в БД.
В некоторых вариантах осуществления технического решения сохранение значений атрибутов экземпляра сущности в БД осуществляют с помощью ORM.
На чертежах показан один из вариантов воплощения настоящего технического решения.
Настоящее подробное описание составлено с приведением различных, не имеющих ограничительного и исчерпывающего характера вариантов осуществления. В то же время, специалистам, имеющим средний уровень компетентности в рассматриваемой области техники, очевидно, что различные замены, модификации или сочетания любых раскрытых здесь вариантов осуществления (в том числе частично) могут быть воспроизведены в пределах объема настоящего технического решения. Таким образом, подразумевается и понимается, что настоящее описание включает дополнительные варианты осуществления, суть которых не изложена здесь в явно выраженной форме. Такие варианты осуществления могут быть получены путем, например, сочетания, модификации или преобразования каких-либо действий, компонентов, элементов, свойств, аспектов, характеристик, ограничений и пр., относящихся к приведенным здесь и не имеющим ограничительного характера вариантам осуществления.

Claims

ФОРМУЛА
1 . Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы, включающий:
• формируют метаданные для, по крайней мере, одного класса сущности, его атрибутов и наборов данных, элементов наборов данных, включающих, по крайней мере, поля наборов данных и агрегатные функции наборов данных;
• формируют шаблон представления экземпляров вышеупомянутого класса сущности, состоящий, по крайней мере, из одного документа, сформированного на, по крайней мере, одном языке разметки;
• формируют и сохраняют связь шаблона и класса сущности;
• отображают шаблон, формируют и сохраняют связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, при этом
о выбирают элемент шаблона и отображают информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях;
о выбирают атрибут класса сущности или набор данных или поле набора данных или агрегатную функцию набора данных;
о формируют и сохраняют связь, содержащую идентификатор выбранного ранее элемента шаблона и идентификатор выбранного на предыдущем шаге атрибута класса сущности или набора данных или поля набора данных или агрегатной функции набора данных.
2. Способ по п.1 , в котором наборы данных содержат значения атрибутов и значения агрегатных функций, вычисленные на основе значений этих атрибутов, причем атрибуты принадлежат экземплярам сущностей, связанным с представляемым экземпляром сущности.
3. Способ по п.1 , в котором языком разметки является HTML или XML или XHTML или DocBook.
4. Способ по п.1 , в котором шаблон формируют при помощи текстовых редакторов с подсветкой синтаксиса или WYSIWYG-редакторов или онлайн-редакторов.
5. Способ по п.1 , в котором элементам шаблона, предназначенным для представления значений атрибутов экземпляра класса сущности, устанавливают значения по типу данных и размеру соответствующие атрибутам класса сущности.
6. Способ по п.1 , в котором элементам шаблона, предназначенным для представления элементов наборов данных, устанавливают значения по типу данных и размеру соответствующие элементам наборов данных.
7. Способ по п.1 , в котором в шаблоне представления экземпляров класса сущности дополнительно формируют группы элементов для представления элементов наборов данных и создают структурные элементы, являющиеся корневыми элементами фрагментов иерархической структуры документа, в которые входят все элементы соответствующих упомянутых групп элементов.
8. Способ по п.1 , в котором сформированный шаблон сохраняют на сервере в БД.
9. Способ по п.1 , в котором информацию о сформированной связи шаблона и класса сущности сохраняют на сервере в БД.
10. Способ по п.1 , в котором в составе информации о сформированной связи шаблона и класса сущности дополнительно сохраняют идентификатор типа шаблона и идентификатор языка пользователей, с использованием которого сформированы значения вспомогательных элементов шаблона.
1 1 . Способ по п. 1 , в котором перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, подключающий библиотеку программного кода, предназначенного для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.
12. Способ по п.1 , в котором перед отображением шаблона сервер извлекает шаблон из БД и внедряет в него элемент с идентификатором класса сущности, используя информацию о связи шаблона и класса сущности, и элемент, содержащий программный код, предназначенный для обеспечения действий пользователя по формированию и сохранению связей элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями.
13. Способ по п.1 , в котором для выбора элемента шаблона, при наведении пользователем указателя на элемент шаблона, данный элемент графически выделяют.
14. Способ по п.1 , в котором информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях, отображают в виде списков, в которые включают только свободные, еще не привязанные к какому-либо элементу шаблона, атрибуты, наборы данных, их поля и агрегатные функции.
15. Способ по п.1 , в котором информацию о доступных для формирования связи атрибутах класса сущности, наборах данных, их полях и агрегатных функциях отображают в отдельном окне браузера или в перемещаемой области внутри окна с шаблоном, при этом формирование связей с элементами шаблона осуществляют с использованием способа Drag-and-Drop.
16. Способ по п.1 , в котором после формирования связи элемента шаблона с атрибутом класса сущности или набором данных или полем набора данных или агрегатной функцией набора данных, этот элемент графически выделяют.
1 7. Способ по п. 1 , в котором в качестве идентификатора элемента шаблона используют последовательность индексов дочерних элементов, ведущую к элементу от известного элемента шаблона или значение атрибута ID или выражение для запроса на языке XPath или уникальное значение элемента.
18. Способ по п.1 , в котором для получения идентификаторов элементов шаблона используют язык запросов XPath.
19. Способ по п. 1 , в котором сформированные связи элементов шаблона с атрибутами класса сущности, наборами данных, их полями и агрегатными функциями, сохраняют на сервере в БД.
PCT/RU2015/000633 2015-09-30 2015-09-30 Способ подготовки документов на языках разметки WO2017058047A1 (ru)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/534,465 US10657323B2 (en) 2015-09-30 2015-09-30 Method of preparing documents in markup languages
CN201580084390.8A CN108351768B (zh) 2015-09-30 2015-09-30 用标记语言编写文档的同时实现处理信息系统的数据的用户界面的方法
PCT/RU2015/000633 WO2017058047A1 (ru) 2015-09-30 2015-09-30 Способ подготовки документов на языках разметки
EP15905519.3A EP3358470B1 (en) 2015-09-30 2015-09-30 Method of preparing documents in markup languages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2015/000633 WO2017058047A1 (ru) 2015-09-30 2015-09-30 Способ подготовки документов на языках разметки

Publications (1)

Publication Number Publication Date
WO2017058047A1 true WO2017058047A1 (ru) 2017-04-06

Family

ID=58424027

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2015/000633 WO2017058047A1 (ru) 2015-09-30 2015-09-30 Способ подготовки документов на языках разметки

Country Status (4)

Country Link
US (1) US10657323B2 (ru)
EP (1) EP3358470B1 (ru)
CN (1) CN108351768B (ru)
WO (1) WO2017058047A1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729571A (zh) * 2017-11-23 2018-02-23 北京天广汇通科技有限公司 关系发现方法和装置
CN110058856A (zh) * 2019-04-28 2019-07-26 恒生电子股份有限公司 页面配置方法及装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170010869A1 (en) * 2014-01-22 2017-01-12 AirSpring Software, LLC Multistage customizing of web-based application in a browser independent of platform and operating system
US10275430B2 (en) * 2015-06-29 2019-04-30 Microsoft Technology Licensing, Llc Multimodal sharing of content between documents
CA3035277C (en) 2016-09-02 2024-05-14 FutureVault Inc. Real-time document filtering systems and methods
US10248641B2 (en) * 2017-03-31 2019-04-02 Mckesson Corporation Method, apparatus, and computer program product for managing retrieval of content for display by a browser
CN108710660A (zh) * 2018-05-11 2018-10-26 上海核工程研究设计院有限公司 一种数据库的物项属性参数建模和存储方法
CN109189810B (zh) * 2018-08-28 2021-07-02 拉扎斯网络科技(上海)有限公司 查询方法、装置、电子设备及计算机可读存储介质
CN112394910A (zh) * 2019-08-12 2021-02-23 拜椰特(上海)软件技术有限公司 计算机编程语言类型开新实例方法
US11797638B2 (en) 2021-02-24 2023-10-24 Salesforce.Com, Inc. Aggregate component for parallel browser-initiated actions
US11321422B1 (en) * 2021-03-09 2022-05-03 Salesforce.Com, Inc. User-configurable aggregate web components
CN113536041B (zh) * 2021-06-08 2022-07-12 中国铁路设计集团有限公司 一种铁路工程地理信息元数据批量快速采集方法
WO2024092553A1 (en) * 2022-11-02 2024-05-10 Huawei Cloud Computing Technologies Co., Ltd. Methods and systems for model generation and instantiation of optimization models from markup documents

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418448B1 (en) * 1999-12-06 2002-07-09 Shyam Sundar Sarkar Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web
US7707545B2 (en) * 2002-06-28 2010-04-27 Microsoft Corporation Managing code when communicating using heirarchically-structured data
US7921137B2 (en) * 2005-07-18 2011-04-05 Sap Ag Methods and systems for providing semantic primitives
US20150220649A1 (en) * 2014-02-04 2015-08-06 Shoobx, Inc. Computer-guided Corporate Governance with Document Generation and Execution

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6262729B1 (en) * 1997-04-14 2001-07-17 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US6230161B1 (en) * 1998-07-31 2001-05-08 International Business Machines Corporation Dynamic expression editor
US8082322B1 (en) * 1998-10-27 2011-12-20 Parametric Technology Corporation Federation of information from multiple data sources into a common, role-based distribution model
US8719703B2 (en) * 2000-12-08 2014-05-06 Xerox Corporation Systems and methods for editing a web page
US6964014B1 (en) * 2001-02-15 2005-11-08 Networks Associates Technology, Inc. Method and system for localizing Web pages
US6889226B2 (en) * 2001-11-30 2005-05-03 Microsoft Corporation System and method for relational representation of hierarchical data
US7000184B2 (en) * 2003-01-24 2006-02-14 The Cobalt Group, Inc. Remote web site editing in a standard web browser without external software
US7178101B2 (en) * 2003-06-24 2007-02-13 Microsoft Corporation Content template system
AU2004258622A1 (en) 2003-07-08 2005-01-27 Us Lynx Llc An automated publishing system that facilitates collaborative editing and accountability through virtual document architecture
KR100568234B1 (ko) * 2003-12-13 2006-04-07 삼성전자주식회사 마크업 랭귀지 기반의 데이터 관리 방법과 그 장치 및기록매체
US7512878B2 (en) 2004-04-30 2009-03-31 Microsoft Corporation Modular document format
US7249135B2 (en) 2004-05-14 2007-07-24 Microsoft Corporation Method and system for schema matching of web databases
US7424485B2 (en) 2004-06-03 2008-09-09 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility
US7698631B1 (en) * 2004-07-29 2010-04-13 Cisco Technology, Inc. Stateless online web page editing system and method
US20090217151A1 (en) * 2004-08-02 2009-08-27 Clairvoyance Corporation Document processing and management approach for editing a markup language document
US7631257B2 (en) 2004-09-15 2009-12-08 Microsoft Corporation Creation and management of content-related objects
JP4686177B2 (ja) * 2004-12-02 2011-05-18 インターナショナル・ビジネス・マシーンズ・コーポレーション Webページ・オーサリング装置、Webページ・オーサリング方法及びプログラム
US7412649B2 (en) * 2005-01-24 2008-08-12 International Business Machines Corporation Viewing and editing markup language files with complex semantics
BRPI0615761A2 (pt) 2005-09-09 2011-05-24 Microsoft Corp programabilidade para armazenador de dados xml para documentos
US7953696B2 (en) 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US20090089739A1 (en) 2007-09-28 2009-04-02 Microsoft Corporation Intelligent editing of relational models
US8078979B2 (en) * 2007-11-27 2011-12-13 Microsoft Corporation Web page editor with element selection mechanism
US8387006B1 (en) * 2007-12-05 2013-02-26 Adobe Systems Incorporated System and method for authoring a web page to be run-time editable
US9081463B2 (en) * 2007-12-05 2015-07-14 Adobe Systems Incorporated Systems and methods for run-time editing of a web page
US8776023B2 (en) * 2009-07-06 2014-07-08 Brian J. LeSuer Software testing
US8522134B1 (en) * 2012-08-13 2013-08-27 Volusion, Inc. Methods and apparatus for in-line editing of web page content with reduced disruption of logical and presentational structure of content
GB2508875A (en) * 2012-12-13 2014-06-18 Thunderhead Ltd Defining elements of web pages for variation
US9201852B2 (en) * 2013-05-24 2015-12-01 David Wei Ge Method for in-browser visual HTML editing via bi-directional navigation and virtual properties

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418448B1 (en) * 1999-12-06 2002-07-09 Shyam Sundar Sarkar Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web
US7707545B2 (en) * 2002-06-28 2010-04-27 Microsoft Corporation Managing code when communicating using heirarchically-structured data
US7921137B2 (en) * 2005-07-18 2011-04-05 Sap Ag Methods and systems for providing semantic primitives
US20150220649A1 (en) * 2014-02-04 2015-08-06 Shoobx, Inc. Computer-guided Corporate Governance with Document Generation and Execution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3358470A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729571A (zh) * 2017-11-23 2018-02-23 北京天广汇通科技有限公司 关系发现方法和装置
CN110058856A (zh) * 2019-04-28 2019-07-26 恒生电子股份有限公司 页面配置方法及装置
CN110058856B (zh) * 2019-04-28 2023-08-01 恒生电子股份有限公司 页面配置方法及装置

Also Published As

Publication number Publication date
EP3358470A4 (en) 2019-03-27
EP3358470B1 (en) 2020-11-04
CN108351768B (zh) 2021-04-20
US20170351656A1 (en) 2017-12-07
CN108351768A (zh) 2018-07-31
US10657323B2 (en) 2020-05-19
EP3358470A1 (en) 2018-08-08

Similar Documents

Publication Publication Date Title
WO2017058047A1 (ru) Способ подготовки документов на языках разметки
US7143344B2 (en) Transformation stylesheet editor
US7720885B2 (en) Generating a word-processing document from database content
US9430583B1 (en) Extracting a portion of a document, such as a web page
US20080250394A1 (en) Synchronizing external documentation with code development
US8397157B2 (en) Context-free grammar
JP2004240954A (ja) 階層データを提示する方法
US9817811B2 (en) Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method
US7720814B2 (en) Repopulating a database with document content
Thao et al. Using versioned tree data structure, change detection and node identity for three-way xml merging
CN113177168A (zh) 一种基于Web元素属性特征的定位方法
RU2613026C1 (ru) Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы
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
Hourieh Learning Website Development with Django
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 (ru) Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы
WO2005098666A1 (en) Processing data and documents that use a markup language
Škrbić et al. Bibliographic records editor in XML native environment
JP2017199207A (ja) 設計書の入出力装置、設計書の入出力システム及び設計書の入出力方法
CN117766084A (zh) 一种临床试验数据审核报告(drr)生成方法、系统及存储介质
Ehrensberger Datamockups: design tool for content-powered mockups
Bell et al. Library Application: Database Implementations
Medhe et al. RDF data retrieval in structured format using aggregate function and keyword search in MashQL

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15905519

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15534465

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE