[go: up one dir, main page]

HK1177010A - Techniques to create structured document templates using enhanced content controls - Google Patents

Techniques to create structured document templates using enhanced content controls Download PDF

Info

Publication number
HK1177010A
HK1177010A HK13103890.0A HK13103890A HK1177010A HK 1177010 A HK1177010 A HK 1177010A HK 13103890 A HK13103890 A HK 13103890A HK 1177010 A HK1177010 A HK 1177010A
Authority
HK
Hong Kong
Prior art keywords
content
content control
control
document
formatted
Prior art date
Application number
HK13103890.0A
Other languages
Chinese (zh)
Other versions
HK1177010B (en
Inventor
T.戴维斯
M.桑德兰
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 微软技术许可有限责任公司
Publication of HK1177010A publication Critical patent/HK1177010A/en
Publication of HK1177010B publication Critical patent/HK1177010B/en

Links

Description

Techniques for creating structured document templates using enhanced content controls
Technical Field
The invention relates to creating a structured document template.
Background
Productivity applications can be used to create customized document templates with structured and reusable content. The document template may include a collection of reusable document parts, each document part having a specifically designed presentation format and content type. The customized document template may then be used as a starting point for creating a highly structured document. For example, a company may create a report template with customized document portions, such as a first field for a title, a second field for a date, a third field for an image, and so forth. Individuals within the company may then repeatedly use the report template to generate a company report having a uniform company format and a desired set of content.
The customized document portion can be created in a variety of different ways, such as by using custom defined content controls, markup languages, bookmarks, fields, styles, and so forth. While there have been improvements in the developer's efforts available to create custom document portions for structured document templates, entities such as businesses are continually striving to produce document templates that: documents with an increasing number of levels of rich formatted content can be produced. Therefore, it is difficult for conventional developer tools to produce such document templates: the document template is capable of producing such rich formatted content and also maintains separation between the view and object models of the underlying application used to generate the document template. It is with respect to these and other considerations that the improvements of the present invention are needed.
Disclosure of Invention
The following presents a simplified summary in order to provide a basic understanding of some novel embodiments described herein. This summary is not an extensive overview, and it is not intended to identify key/critical elements or to delineate the scope of the invention. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
Various embodiments are generally directed to techniques for creating documents and document templates for applications. Some embodiments are particularly directed to techniques for creating highly structured documents and document templates for productivity applications using enhanced content controls.
For example, in one embodiment, a method may include selecting a first content control for a document portion of a document template, selecting a second content control for the document portion of the document template (the second content control nested within the first content control), and modifying a visual property of the second content control relative to the first content control to distinguish the second content control from the first content control when presented on a display. Other embodiments are also described and claimed.
For example, in one embodiment, an apparatus may include a logic device and an application operating on the logic device to generate a document from a document template. The application may include a document template component for retrieving a document template that includes a plurality of document portions, and the like. The application may also include a content control component for managing content controls embedded in the document portion of the document template. The content control may be associated with a data source arranged to store rich formatted content presented by the content control. Rich formatted content may have all the richness of the formatting aspects supported by the native application. The content control component can synchronize any changes to the formatted content between the content control and the data store. In addition, the content control component can control the structure (e.g., rows in a table, new rows added for each data item, etc.) that is copied from the data store to the document to be automatically repeated. The application can also include a document generator component for generating a document from the document template using the content control. Other embodiments are also described and claimed.
To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the annexed drawings. These aspects are indicative of various ways in which the principles disclosed herein can be practiced, and all aspects and equivalents thereof are intended to be within the scope of the claimed subject matter. Other advantages and novel features may become apparent from the following detailed description when considered in conjunction with the drawings.
Drawings
FIG. 1A illustrates an embodiment of a system for designing a document template.
FIG. 1B illustrates one embodiment of a document template.
FIG. 2 illustrates an embodiment of a logic flow of the system of FIG. 1.
FIG. 3 illustrates an embodiment of a centralized system for the system of FIG. 1.
FIG. 4 illustrates an embodiment of a distributed system for use with the system of FIG. 1.
FIG. 5 illustrates a more detailed block diagram for the content control component 124 described with reference to FIG. 1.
FIG. 6 illustrates various embodiments of a content control.
FIG. 7 illustrates a user interface view of content control properties for visualization.
FIG. 8 illustrates a user interface view of the content control output.
FIG. 9 illustrates a user interface view of content control selection.
FIG. 10 illustrates a user interface view of content control selection.
FIG. 11 illustrates a user interface view of content control properties for a repeat location.
FIG. 12A illustrates a user interface view of a content control for a repetition site.
FIG. 12B illustrates a user interface view of a content control for a repeat location.
Fig. 13 shows an example when a duplicate part is deleted.
FIG. 14 illustrates an embodiment of a computing architecture.
FIG. 15 illustrates an embodiment of a communication architecture.
Detailed Description
Various embodiments are directed to techniques for creating a structured document template for an application. Some embodiments are particularly directed to techniques for creating structured document templates by defining document portions of a document template using an enhanced set of content controls. The enhanced content control may be implemented for any application, including word processing applications, spreadsheet applications, presentation applications, and other applications.
The customized document portion of the document template may be created in a number of different ways. For example, existing applications may use markup language techniques, such as entering a custom defined extensible markup language (XML) schema, to produce documents to provide semantic tags around content within word processing documents, spreadsheet documents, presentation documents, and other productivity applications. An XML schema is a description of a type of XML document, typically expressed in terms of structural constraints on and beyond the basic syntactic constraints imposed by the XML itself, as well as the content of the type of document. These constraints are typically expressed using some combination of syntax rules governing the order of elements, boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints. XML schemas provide semantic tags within document templates around content. This functionality allows developers to create solutions that utilize custom XML embedding to directly work on the structure and content of their data, rather than solutions that require the complexity of the presentation format of the underlying application.
This powerful functionality allows developers to create solutions that leverage this customized XML embedding to work directly on the structure and content of their data, rather than solutions that require the complexity of dealing with the presentation format of the underlying application. For example, if a user were to create a cover page for a stock analysis note in an XML-less word processing application, extracting useful data from the cover page (e.g., company name, stock code, and stock rating) would require using an object model of the application that is tightly bound to the presentation format of the document. This necessarily means that any resulting solution logic is also tied to the presentation format of the document and suffers a failure if the presentation changes. For example, if the solution code expects the stock code to be in row 2, column 3 of the first table, adding a new row or column would break the logic. However, with modern applications, the solution code will now be linked to the structure of the customer's own data, removing the need for the solution logic to be tied to the presentation format of the underlying application. Instead, the same logic can search the contents of the XML node (e.g., < stock symbol)/>) and edit it directly, even if its context presentation has changed drastically. This results in greater separation between the view and the model used to store the underlying data.
However, custom XML schemas are complex and thus expensive to implement and maintain. Custom XML schemas also have limitations that prevent documents from being used for a wide range of rich formatting. Thus, developers seek to replace and/or augment custom XML schemas, such as using custom defined content controls, bookmarks, fields, styles, and the like. In existing alternatives, developers are turning to content controls as a viable alternative to custom XML schemas. Content controls are particularly useful for creating document templates because they are specially designed to facilitate the creation of highly structured documents and already have deep integration with custom XML portions stored with the document file, providing robust data/view separation. For example, to ensure that a particular type of content is placed in each defined field, a content control may be used to limit the type of information placed in the defined field. Returning to the report template example described above, a first content control may be placed on the first field for a title to ensure that only text may be entered into the first field, a second content control may be placed on the second field to ensure that only numbers in a particular format may be entered into the second field, and a third content control may be placed on the third field to ensure that only images may be loaded into the third field. This is only a few simple examples of the use of content controls, and more complex scenarios also exist.
However, conventional content controls may not be suitable for developing rich formatted document templates. For example, some document templates may have a large number of nests of content controls in the document template. This makes designing and using document templates more difficult. Furthermore, content controls often do not present certain types of information well, such as text presented with certain formatting options (e.g., bold, italics, underlining, color, etc.) or style options. This type of information is sometimes referred to as "rich text" to distinguish it from text that has little or no formatting and/or style options (such text is sometimes referred to as "plain text"). In addition, the content controls themselves become more robust, such as automatically presenting a calendar as a date content control for an input selection tool. Such complex content controls may implement an increasing amount of logic in the document template, increasing the size and complexity of the document template.
To address these and other issues, embodiments may implement applications with enhanced content controls. The enhanced content controls may augment or replace existing content controls to facilitate development of highly structured and rich formatted document templates. The enhanced content controls provide a significant improvement over existing content controls. For example, the enhanced content controls visually zoom to a nesting level used in existing solutions. This provides a more visually distinct level and prevents the document from appearing "cluttered". Further, the enhanced content control may present rich formatted information, such as rich text, and synchronize any changes to the rich text between the enhanced content control and a data source (e.g., an XML portion) associated with the enhanced content control. In another example, the enhanced content controls in the table may be set to repeat and perform corresponding actions for the XML data store, such as adding a line, adding an XML snippet, deleting a line, deleting XML, and so forth. In yet another example, customers may directly work against an XML data store to retrieve and set their desired information from the document, including duplicate data (e.g., delete XML, delete line) and including rich content (e.g., change Wordprocessing ML, document updates) in any rich text format (e.g., including MICROSOFT OFFICE XML format). In yet another example, different types of content controls may be visually defined via selectable color coding. In yet another example, the enhanced content control may be implemented for applications using other developer tools (such as custom XML markup) to facilitate migration of document templates. In yet another example, an enhanced content control may be used to allow the out-of-table content to be "repetitive" in nature (e.g., any collection of paragraphs). In yet another example, developers and users may visually identify paragraph-level and text-level (e.g., inline/block) content controls. Other advantages also exist.
Reference will now be made to the drawings wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It may be evident, however, that the novel embodiments can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the subject invention. The intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the claimed subject matter.
Fig. 1A shows a block diagram of a system 100. In one embodiment, the system 100 may comprise a computer-implemented system 100 having one or more software applications and/or components. Although the system 100 shown in fig. 1A has a limited number of elements in a certain topology, it may be appreciated that the system 100 may include more or less elements in alternate topologies as desired for a given implementation.
System 100 may include application 120. Application 120 may include any application suitable for producing document templates using enhanced content controls. Examples of application programs 120 may include, but are not limited to: productivity suites for interrelated client applications, server applications, and web services designed for a particular operating system, such as MICROSOFT (R) for MICROSOFT (R) CORPORATION OF Redmond, WashingtonIs/are as followsOFFICE productivity suite. Examples of client applications may include, but are not limited to: MICROSOFT WORD, MICROSOFTMICROS OFTMICROS OFTMICROSOFTMICROSOFTMICROS OFTMICROS OFTPROJECT、MICROSOFT PUBLISHER、MICROSOFTWORKSPACE 、MICROSOFTMICROSOFT OFFICEINTERCONNECT, MICROSOFT OFFICE PICTURE MANAGER, MICROSOFT SHAREPOINT DESIGNER, and MICROSOFT LYNC. Examples of server applications may include, but are not limited to: MICROSOFT SHAREPOINT SERVER, MICROSOFT LYNCSERVER, MICROSOFT OFFICE FORMS SERVER, MICROSOFT OFFICESERVER, MICROSOFT OFFICE PROJECT PORTFOLIO SERVER, and MICROSOFT OFFICEAnd (5) a SERVER. Examples of web services may include, but are not limited to: MICROSOFT WINDOWSMICROSOFT OFFICE WEBAPPLICATIONS, MICROSOFT OFFICE LIVE, MICROSOFT LIVE MEETING, MICROSOFT OFFICE PRODUCT WEB SITE, MICROSOFT UPDATESERVER, and MICROSOFT OFFICE 365. The embodiments are not limited to these examples.
The application 120 may include a document template component 122. The document template component 122 may be used to manage the document template 130 based on the user input 110. Document template 130 may be generated by application program 120 or another application program (not shown), such as MICROSOFT VISUAL, specifically designed to generate the document template) To generate. The user input 110 may represent user control directives received via the user interface component 126 to select various content controls and content control properties during creation of the document template 130.
The application 120 can include a content control component 124. The content control component 124 can provide various enhanced content controls for use by the document template component 122. Content control component 124 can provide content control information and messages to user interface component 126 to generate various user interface views to be interacted with by a user, including receiving various user inputs 110 via a suitable input device.
Application program 120 may include a document builder component 125. The document creator component 125 may generate a document 140 from the document template 130. For example, the application 120 may receive user input 110 that enters information into various content controls of the document template 130. Once the information is entered, the document builder component 125 can store the document template 130 with the received user information to form a document 140.
The application 120 may include a user interface component 126. The user interface component 126 can generate various user interface views, including various Graphical User Interface (GUI) elements for presenting information to a user via an output device (e.g., display, speaker) and receiving information from a user via an input device (e.g., pointer, gesture on touch screen).
FIG. 1B shows a more detailed block diagram of the system 100. In particular, FIG. 1B shows a more detailed block diagram of the document template 130. In the illustrated embodiment shown in FIG. 1B, the document template 130 includes one or more document portions 132-a, such as document portions 132-1, 132-2. Each document portion 132-a may represent a discrete portion or portion of the document template 130.
Each of the document portions 132-a may include one or more content controls 134-b. For example, document portion 132-1 shows content controls 134-1, 134-2. Further, the document portion 132-a may have multiple content controls 134-b nested or embedded within one another, such as the content control 134-3 nested within the content control 134-2, as well as any other content intermingled (e.g., textual descriptions of fields, etc.). It will be appreciated that content control 134-b may be nested to any level N, where N is a positive integer, as appropriate for a given implementation. The embodiments are not limited in this context.
The content control 134-b provides a mechanism to design documents and document templates with the following features: (1) a User Interface (UI) or GUI with controlled input as a form; (2) preventing a user from editing a document or a document template at a protected location; and (3) data bound to the data source. The content control 134-b provides a UI optimized for both user input and printing. When a user adds a content control 134-b to a document portion 132-a of the document template 130, the content control 134-b is typically identified by a border and a title. Content control 134-b also provides a presentation field 136-c. Presentation field 136-c may be used to present different types of information, including temporary text that may provide instructions to the user. Depending on implementation preferences, the boundaries and headings of content control 134-b may or may not appear in the printed version of the document, while the information entered by the user into presentation field 136-c does appear in the printed version. For example, if a user is intended to enter a date in a portion of the document template 130, the developer may add a "date picker" content control 134-b to the document portion 132-a of the document template 130. When the user clicks on the content control 134-b, the standard date picker UI appears. The developer may also set properties of the content control 134-b to, for example, set a displayed local calendar and specify a date format. When the user selects a date, the UI of the control is hidden, revealing only the date if the user prints the document.
Content control 134-b also prevents the user from editing or deleting certain content portions 132-a. This is useful if the developer has information in the document template 130 that the user can read but cannot edit, or the developer wants the user to be able to edit content controls but cannot delete them. In addition, the content control 134-b may bind portions of the document template 130 or document 140 to data sources. The developer may bind the content control 134-b to certain database fields,. managed objects in a NET framework, XML elements stored in the document template 130 (or on a server), or other data sources. In a document level project, a developer may add a content control 134-b to the document template 130 at design time or runtime. In an application level project, a developer may add content controls 134-b to any open document template at runtime.
Examples of content controls 134-b are extensible, and some examples include building block gallery controls, check box controls, combo box controls, date picker controls, drop down list controls, group controls, picture controls, rich text controls, plain text controls, general content controls, to name a few. The embodiments are not limited in this context.
Included herein is a set of flow charts representative of exemplary methodologies for performing novel aspects of the disclosed architecture. While, for purposes of simplicity of explanation, the one or more methodologies shown herein, e.g., in the form of a flow chart, are shown and described as a series of acts, it is to be understood and appreciated that the methodologies are not limited by the order of acts, as some acts may, in accordance with the present invention, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all acts illustrated in a methodology may be required for a novel implementation.
FIG. 2 illustrates one embodiment of a logic flow 200. Logic flow 200 may be representative of some or all of the operations executed by one or more embodiments described herein.
In the illustrated embodiment shown in FIG. 2, the logic flow 200 may select a first content control for a document portion of a document template at block 202. For example, the content control component 124 of the application program 120 may be used to select a first content control 134-1 for the document portion 132-1 of the document template 130.
The logic flow 200 may select a second content control for the document portion of the document template at block 204, the second content control nested within the first content control. For example, the content control component 124 may be used to select a second content control 134-2 for the document portion 132-1 of the document template 130. The second content control 134-2 may be nested within the first content control 134-1 such that it is difficult to distinguish the start/end position or marker of one or both of the controls 134-1, 134-2.
The logic flow 200 may modify the visual properties of the second content control relative to the first content control at block 206 to distinguish the second content control from the first content control while being presented on the display. For example, the content control visualization component 522 (as shown in FIG. 5) of the content control component 124 can be used to modify visual properties of the second content control 134-2 relative to the first content control 134-1 to assist in distinguishing the second content control 134-2 from the first content control 134-1 when rendered on a display. For example, aspects of one or both of the controls 134-1, 134-2 may differ in color, size, dimensions, geometry, portion, control, position, marking, label, content, logo, title, and so forth. The embodiments are not limited to this example.
Fig. 3 shows a block diagram of a centralized system 300. The centralized system 300 may implement some or all of the structure and/or operations of the system 100 in a single computing entity, such as entirely within a single computing device 320.
Computing device 320 may use processing component 330 to perform processing operations or logic for system 100. The processing component 330 may include various hardware elements, software elements, or a combination of both. Examples of hardware elements may include devices, logic devices, components, processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, Application Specific Integrated Circuits (ASIC), Programmable Logic Devices (PLD), Digital Signal Processors (DSP), Field Programmable Gate Array (FPGA), memory units, logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software elements may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, Application Programming Interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an embodiment is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints, as desired for a given implementation.
The computing device 320 may use the communication component 340 to perform communication operations or logic of the system 100. The communications component 340 may implement any well-known communications techniques and protocols, such as techniques suitable for use with packet-switched networks (e.g., public networks such as the Internet, private networks such as an enterprise intranet, and so forth), circuit-switched networks (e.g., the public switched telephone network), or a combination of packet-switched networks and circuit-switched networks (using suitable gateways and translators). Communications component 340 may include various types of standard communications elements, such as one or more communications interfaces, Network Interface Cards (NICs), radios, wireless transmitters/receivers (transceivers), wired and/or wireless communications media, physical connectors, and so forth. By way of example, and not limitation, communication media 321 includes wired communication media and wireless communication media. Examples of wired communications media may include a wire, cable, wire, Printed Circuit Board (PCB), backplane, switch fabric, semiconductor material, twisted-pair wire, co-axial cable, fiber optics, a propagated signal, and so forth. Examples of wireless communication media may include acoustic, Radio Frequency (RF) spectrum, infrared and other wireless media 321.
The computing device 320 may communicate with other devices 310, 350 over a communication medium 321 using communication signals 322 via a communication component 340. For example, the content control component 124 of the application 120 may be used to insert individual content controls 134-b into individual document portions 132-a, the content controls 134-b having a data source on one of the devices 310, 350. For example, the devices 310, 350 may include respective client, server devices.
Fig. 4 shows a block diagram of a distributed system 400. The distributed system 400 may distribute portions of the structure and/or operation of the systems 100, 300 across multiple computing entities. Examples of distributed system 400 may include, but are not limited to, a client-server architecture, a layer 3 architecture, an N-layer architecture, a tightly coupled or clustered architecture, a peer-to-peer architecture, a master-slave architecture, a shared database architecture, and other types of distributed systems. The embodiments are not limited in this context.
Client system 410 and server system 450 may process information using processing component 430, processing component 430 being similar to processing component 330 described with reference to FIG. 3. The client system 410 and the server system 450 may communicate with each other over the communication medium 420 using communication signals 422 via a communication component 440, the communication component 440 being similar to the communication component 340 described with reference to FIG. 3.
In one embodiment, for example, the distributed system 400 may be implemented as a client-server system. Client system 410 may implement system 100. The server system 450 may implement data sources 442 for respective content controls 134-b for respective document portions 132-a of the document template 130. For example, in one embodiment, the data source 442 may include an XML schema, file, code, data, or portion.
FIG. 5 illustrates a more detailed block diagram for the content control component 124 described with reference to FIG. 1. In the illustrated embodiment shown in FIG. 5, the content control component 124 can include a content control visualization component 522, a content control mapping component 524, and a content control repetition component 526. Each of these components will be described in more detail below. It is to be appreciated that the content control component 124 can include other components arranged to control various features of the content control 134-b as desired for a given implementation. The embodiments are not limited in this context.
Content control visualization component 522
FIG. 6 illustrates a user interface view 600 of various content controls (contentcontrol)134-b produced by the content control visualization component 522. The content control visualization component 522 of the content control component 124 may present the content controls 134-b in an improved manner to assist developers in creating the document template 130 and to assist users in filling out one or more documents generated from the document template 130. For example, when the markers of content control 134-b are displayed, the markers may display a Title attribute if the Title attribute of content control 134-b is set and not display if the attribute is blank. The Tag does not show the value of the Tag attribute as shown in the conventional presentation. Further, if the content control 134-b is placed within the locked region of the document, the title of the content control 134-b is shown (without a grab handle). If a content control is shown, the content control may still be dragged via the title. The visualization of any associated errors and all other acetate GUIs (e.g., drop down list UIs) is left unchanged. For example, if there is an error, the content control visualization component 522 can show the boundary of the red dashed line and the error UI is placed in the normal position.
As shown, FIG. 6 illustrates an example of a presentation of a GUI element 602 for a content control 134-b when a pointer hovers over the content control 134-b. FIG. 6 also shows an example of presentation of a GUI element 604 for the content control 134-b when the content control 134-b is in focus (e.g., selected) using a Human Input Device (HID), such as a pointing device or gesture. FIG. 6 also shows an example of a presentation of a GUI element 606 for the content control 134-b when in the design mode. Fig. 6 finally shows an example of a presentation of a GUI element 608 for the content control 134-b with start/end markers. The start/end markers of the GUI element 608 are particularly useful when multiple content controls 134-b are embedded within one another because they reduce or eliminate the need for a handle or bounding box around each content control 134-b, thereby reducing the visual "clutter" of nested markers and information presented within the markers.
FIG. 7 illustrates a user interface view 700 of managing content control properties for visualization of content control 134-b. As shown in FIG. 7, various visual properties of content control 134-b may be selected from drop-down box control 704, as listed in table 708. Further, a different color for the content control 134-b may be selected from the color (color) picker control 706, as listed in table 710. Assigning different colors to content controls 134-b can help developers visually track different content controls 134-b, particularly in nested scenarios where content controls 134-b are nested within other content controls 134-b at some level of nesting (e.g., 2, 3, 4, or more levels).
When the user sets the color of the content control 134-b via the color picker control 706, and if the content control 134-b is currently showing a label, the content control visualization component 522 applies the specified color to all colored regions (e.g., non-black/white regions) of the label. If the content control 134-b is currently shown as a bounding box, the content control visualization component 522 uses the specified color as a line type of the bounding box and calculates all other colors based on the color.
When the user enters the design mode of content control 134-b, each of the three visualization updates is as follows: (1) as a shaded rectangle/bounding box (with optional caption), showing the bounding box/rectangle plus start/end markers (bounding box/caption continues to disappear in the event of defocus, shaded when hovering, as indicated by GUI element 606); (2) the start/end mark remains as the start/end mark; and (3) as a start/end marker when not visible (no visual representation), as indicated in GUI element 608. The start/end flag may be toggled with a combination key SHIFT (e.g., CTRL + SHIFT + X), but is typically "on" when the user enters the design mode.
Content control mapping component 524
In various embodiments, the content control mapping component 524 of the content control component 124 may be arranged to handle cases in which the presentation within the content control 134-b includes rich formatted content. For example, in one embodiment, rich formatted content may have all of the formatting richness, options, features, functions, capabilities, or properties supported by a given native application. In this case, the formatting of the text and the presentation are part of the data, so that it is desirable that the data contain the full representation of the rich formatting. To this end, the binding between the content control 134-b and the data source 442 may be arranged to transmit rich formatted content in a format that is not aware of the structure of the custom XML data stored separately from the document template 130.
As described with reference to FIG. 1A, the application 120 may include a document template component 122 for retrieving a document template 130 that includes a plurality of document portions 132-a. The application program 120 may also include a content control component 124 for managing content controls 134-b embedded in the document portion 132-a of the document template 130. Content control 134-b may be associated with a data source 442 arranged to store formatted content presented by content control 134-b. The content control mapping component 524 of the content control component 124 may synchronize any changes to the formatted content between the content control 134-b and the data store 442. The application 120 may also include a document creator component 125 for generating a document 140 from the document template 130 using the content control 134-b.
The document template component 122 may retrieve a document template 130 that includes a plurality of document portions 132-a, as described with reference to FIG. 2. Document portion 132-a may include one or more content controls 134-b implemented separately (e.g., content controls 134-1, 134-2) or nested within one another (e.g., content controls 134-2, 134-3).
The content control component 124 may manage the content controls 134-b embedded in the document portion 132-a of the document template 130. The content control 134-b may be associated with a data source 442 arranged to store formatted content presented by the content control 134-b in the presentation field 136-c. The formatted content may include any rich formatted content or rich textual content, such as including text with certain formatting options or style options selected by the user. For example, the formatted content may include a word or phrase in a certain font that has been bolded or tilted to change its visual properties.
Whenever the document template 130 is digitally displayed for presentation, the content control 134-b may present the interim text and instructions to the user in the presentation field 136-c. For example, the transient text may indicate that the user may enter the name of the form. The user may select the presentation field 136-c and enter information into the presentation field 136-c to replace the transient text. Further, a user may format information according to a given set of user preferences to form a set of formatted content. When this occurs, the content control component 124 can receive user input 110 in the form of control directives to modify the formatted content, the control directives including instructions to modify formatting options or style options for the formatted content. Examples of formatting options or styles may include, but are not limited to: font, font style, font size, font color, underline style, underline color, effect, text fill, text outline, outline style, text shadow, text reflection, text glow, text edge, text three-dimensional format, and the like. The embodiments are not limited in this context.
Additionally or alternatively, content control 134-b may present information stored by data source 442. For example, assume that the content controls 134-1, 134-2 are bound to a data source 442 that stores the employee's name and address. The content control 134-1 may present the employee's name in the presentation field 136-1. Similarly, the content control 134-2 may present the employee's address in the presentation field 136-2.
The content control mapping component 524 of the content control component 124 can synchronize any changes to the formatted content between the content control 134-b and the data store 442 regardless of whether the content of the data store is designed to accept formatted content. It is worth noting that rich text bindings need not be written to the data store 442 in any particular manner to accommodate the formatted content. Whenever a change is made to the presentation field 136-c of the content control 134-b or the data store 442 associated with the content control 134-b, the change is synchronized to maintain data consistency between both the content control 134-b and the data store 442. Furthermore, synchronization is performed in a manner that preserves the full fidelity of the rich formatted content.
For example, in one embodiment, content control mapping component 524 of content control component 124 may receive user input 110 as a control directive to modify the formatted content presented by content control 134-b, present the modified formatted content in presentation field 136-c of content control 134-b, and send the modified formatted content to data store 442. Data store 442 can receive the modified formatted content, process the modified formatted content to match the data schema used to store the formatted content, and overwrite the formatted content with the modified formatted content.
For example, in one embodiment, the content control mapping component 524 of the content control component 124 can detect that the formatted content stored in the data store 442 has been modified. Content control mapping component 524 may send the modified formatted content to content control 134-b for presentation in presentation field 136-c of content control 134-b. The modified formatted content may be presented in the presentation field 136-c with full fidelity of the rich formatted content.
To this end, the binding between the content control 134-b and the data source 442 may be arranged to transmit rich formatted content in a format that is not aware of the structure of the custom XML data stored separately from the document template 130. For example, the content control mapping component 524 may communicate the modified formatted content using a data schema that is different from the data schema of the formatted content stored in the data store.
In one embodiment, the data store 442 may be arranged to store formatted content according to an XML data schema. In this case, content control mapping component 524 may serialize the XML elements of the formatted content to form an XML element string, escape the resulting string to remove the retained XML characters from the XML element string, and store any remaining text from the XML elements in the data store. The serialization operation may be described in more detail with reference to FIG. 8.
FIG. 8 illustrates a user interface view 800 of a certain content control output. Content control mapping component 524 may allow a developer to map the contents of the rich text content control and the document building block content control to an XML data store (e.g., data source 442). When the mapping is active, the associated custom XML node contains a serialized representation of the specified scope of the document template 130. This is created by retrieving the text-based serialization or flat XML representation of the scope, escaping the resulting string to remove the retained XML characters as shown in table 1 below, and storing the resulting text in the corresponding node.
TABLE 1
< &lt;
> &gt;
&quot;
&apos;
& &amp;
Whenever the value of the text in the document template 130 changes, and the user: (1) leaving the context of content control 134-b by clicking outside of content control 134-b; (2) taking focus away from application 120; and (3) save the document template, the content control mapping component 524 generates a serialized representation and pushes the result into the content control 134-b. Accordingly, whenever the value of a string in a node changes, content control mapping component 524 disavows the resulting string and attempts to insert it as the content of content control 134-b.
The last segment of the XML markup (e.g., Wordprocessing ML) is equivalent to the ending segment of content control 134-b (if any), so as:
<w:p><w:r><w:t>One</w:t></w:r></w:p>
the XML of < w: p >, < w: pStyle val ═ header 1 "/>, < w: r > < w: t > Two: t >,/w: r > -p > will be inserted into the content control 134-b, as shown by the GUI elements 804, 806 in the bounding box 802.
Content control mapping component 524 can also handle error conditions. For example, if the XML is not valid XML (e.g., well formed), the content control mapping component 524 will break the mapping and nothing in the document template 130 is updated. Subsequent edits to the document content will revive the links and rewrite the content of the nodes. If the XML contains multiple segments and the content control 134-b is inline (e.g., non-block level), the content control mapping component 524 first attempts to insert paragraph markup before or after the content control 134-b, as needed to make the content control block level. If it fails, the content control mapping component 524 performs the same logic as is pasted to the plain text content control today-the paragraph is converted to carriage return, and the paragraph is formatted from the first paragraph to the content of the entire control. If the custom XML node containing rich content has been bound to a plain text content control, XML mapping is not allowed and fails, with the message "custom XML node has been mapped to a plain text content control, so it cannot be mapped to a rich text content control". When the file is open, if the node is bound in this manner, the content control mapping component 524 cannot connect to the internally bound content control, but leaves the mapping information in the file. If the mapped rich text control is nested within another mapped rich text control that is opened or pasted, the content control mapping component 524 cannot link to the internally bound content control but leaves the mapping information in the file. When a document opened by a rich-text-data binding is opened, the rich-text binding is revived before any plain-text binding so that the plain-text binding can be independently re-linked to the data store (in case its data also changes).
The file format representation of rich text binding uses the same element names, values, etc. as existing XML markup. However, these elements are typically present in the namespace of the application 120 in order to ensure compatibility with earlier versions of the application 120.
Content control repetition component 526
FIG. 9 illustrates a user interface view 900 of a content control selection to support repeated content. The content control repetition component 526 of the content control 124 allows the developer to handle constructs that involve repeated content. This may occur regardless of whether the content is mapped to an XML node in an XML data store. FIG. 9 shows a GUI functional area 902 with a new button 904 to control the repeat location content control. The actions taken upon selection of button 904 are shown in table 906.
When a repeat Section Content Control 134-b is inserted into the document portion 132-a of the document template 130, the repeat Section Content Control 134-b may be around one or more segments/rows/tables. Unlike any other type of content control 134-b, the repeat location content control 134-b is active around multiple adjacent rows that do not make up the entire table. Unlike other types of content controls 134-b, the repeat location content control 134-b generally does not have a placeholder. For example, when inserted into the blank segment, the repeat location content control 134-b does not surround anything at all, although optionally there is an indication text that informs the template author of the actual content to add to be repeated.
FIG. 10 illustrates a user interface view 1000 of a content control selection for the repeat location content control 134-b. The repeat location content control 134-b inserted into the document portion 132-a has a unique GUI, as shown in FIG. 10. First, as indicated by circle 1010 within bounding box 1002, labels are placed around the entire set of repeated locations 1008. For example, if there are four entries in the repeat site, a pair of start/end markers are placed around the entire set of four entries. Each item also has a tag. The visibility of these tags matches the parent repeat site tag. For example, parent visibility is "start/end marker", then these labels are also "start/end markers". Second, as indicated by circle 1012, a control is shown to insert another duplicate item under the current duplicate item. This control may be placed at the bottom edge of repeat location content control 134-b, up the trailing edge (e.g., right from left to right, left from right to left), and sized to match the 16x16 button. Third, three additional context menu items are added under the paste item 1006 in the menu 1004, as indicated by circle 1014. The attributes of the additional context menu items are shown in table 1016. Insert < item > above entry another duplicate entry is inserted above the current entry. Insert < item > below entry another duplicate entry is inserted below the current entry. A Delete < item > entry deletes the current item from the document template 130.
When the menu 1004 is populated, < item > can be derived from the following first item that is not empty: (1) a Section Title attribute in parent repeat content control 134-b, a Title of parent repeat content control 134-b, an XML mapped node of repeat content control 134-b, or a static text "item". Whenever a selection is contained within the repeat site item content control 134-b, an Insert Before/Insert After menu entry is shown and applied to: (1) insert Before the selected first repeat site entry; and (2) Insert After the last repeat site entry in the selection. Whenever a selection is contained in a single repeat-site item, a Delete menu entry is shown and applied to that item.
FIG. 11 shows a user interface view 1100 of a content control property 1102 for a repeat location. As shown, a check box control (Checkbox)1104 may be used to set whether the user is allowed to add or remove sites, as indicated by table 1108. Textbox control (Textbox)1106 may allow for insertion of a site title, as indicated by table 1110. Additional properties of the repeat location content control 134-b are represented as follows: (1) if the "allows to add and remove sections" attribute is not set, then both the UI and context menu items above are suppressed; and (2) enable the "Section title" attribute only if the previous attribute is set. When available, it sets the value of < item > in the context menu entry described above. The existing properties of the control apply as follows: (1) the "content control be deleted" attribute means that the duplicate content control 134-b cannot be deleted and the internal items are controlled by the new item; (2) it also means that the user cannot delete the last item in the repeat location; when there is an entry left, the "Delete < item >" entry is disabled; (3) the "Contents candot ed" attribute means that only the content control within one of the repeat locations can be edited, and a new item cannot be added to the repeat location; and (4) a Title/Tag attribute is applied to the repeat location content control.
12A, 12B illustrate a user interface view 1200 of the repeat location content control 134-B. When the repeat location content control 134-b is inserted into the document template 130, the new behavior is applied with the repeat location content control 134-b. Fig. 12A, 12B show the case when a new item is added to the document template 130. When a new item is added to the document template 130, it is populated as follows: (1) the item from which the item was added is cloned and all of the content controls in the item (a) have no child content controls, or (b) are XML mapped, have their content reset to placeholder text, except in the case of child repeat controls, which are reduced to a single item; (2) new content is inserted over/under existing controls as appropriate; and (3) the XML map reconnects to each appropriate logic. For example, assume that repeat location content control 134-b is shown as item 1202 in FIG. 12A. Assume also that the developer selects "Insert item above" from menu 1004, item 1202 will have an additional item 1204 as shown in FIG. 12B.
When an item is deleted, either via a selection that fully contains it or via the context menu GUI, the item (and its container tag) is deleted. If the "Contents candbe edge" attribute is set, then deletion is only allowed if the selection can be deleted in its entirety (e.g., nothing is deleted if parts of the previous/subsequent items are also selected). If the user deletes the last item in the collection, the parent repeat site control 134-b is deleted and cannot be recovered without pressing Undo (Undo, e.g., Undo delete). If the user selects the "Remove Content Control" entry from the right-click menu, the repeat location Content Control 134-b and all other repeat location item Content controls 134-b are removed. However, the data store is not updated.
Some command behavior may change when editing around a repeat site. For example, some commands may be disabled if a specified row is contained within a repeat location entry. This does not happen if its entire table is contained in an entry (e.g., if it is part of a nested table). Examples of disable commands may include a SplitTable command and a Repeat Header Rows command. Further, if the table contains a repeat location content control, the Convert to Text is disabled. Merge Cells actions may also be disabled if merging start/end tags across repeat location entries. The Sort command may be disabled if the repeated site entry spans more than a single row or paragraph. Insert Row Above (Insert Row Above) and Insert Row Below (Insert Row Below) operate as described previously. Split Cells commands do not allow the user to change the current row number when a row is opened. Furthermore, the user cannot type between the repeat location and the repeat location item control, or edit between adjacent repeat items within the repeat location.
When the user enters the design mode, the following logic is applied to all of the repeat location content controls: (1) if the repeat location content control is XML mapped, then all items within the control except the first item are removed; (2) the acetate GUI and the context menu items of add/remove items are hidden. When the user exits the design mode, the following occurs: (1) if the duplicate location content control is XML mapped, repeating the single instance of the duplicate location to match the number of items in the data store; and (2) the acetate/context menu reappears as appropriate.
For XML mappings inside duplicate locations, content control mapping component 524 and/or content control duplication component 526 map them as follows: (1) if the mapping does not intersect an item in the set of nodes that are part of its parent chain, then the binding is an "absolute binding" and shows the same content in all duplicate location items; (2) a binding is a "relative binding" if the mapping does not intersect an item in the set of nodes that are its parent chain. In the latter case, the bindings are remapped as follows: (1) determine absolute binding of nodes (flatten any query expressions) -this should be done to the initial mapping; (2) removing a bound axis that intersects the set of nodes; and (3) evaluating the remainder of the path relative to the path of the repeat location content item.
When a repeat-site item is added to a document, the XML fragment of the repeat-site content item from which the repeat-site item was added is cloned. In addition, all leaf XML nodes and their attributes have their values reset to an empty string, or a new XML sub-tree is added in the appropriate location of the XML DOM, just before or after the existing XML snippet. In addition, all XML mappings in the corresponding repetition part content item are mapped against this new XML fragment. For the error case, if the insertion fails due to a structural schema error (e.g., maxOccurs (max present) ═ 2 and the user inserted item 3), the content control mapping component 524 rolls back the insertion in the XML and document template 130 and submits the following failure message: "other < item > candot added to the document" "(Another < item > cannot be added to the document)" populates < item > using the aforementioned logic.
Fig. 13 shows a logic diagram 1300 illustrating a situation in which duplicate locations are deleted. As shown in logical diagram 1300, when a duplicate portion item is deleted from a document template 130, the XML fragment of the duplicate portion item is removed from the XML DOM in the data store. The XML fragment remains on the undo stack/clipboard so it can be cut/pasted within the parent repetition site and undone. If a replacement subtree appears on the set of nodes (or any ancestors thereof), the duplicate site is disconnected, a replacement action is performed, and it is hung back. This prevents all duplicate-location entries from being lost during replacement.
Logic diagram 1300 provides an example of deleting a duplicate location entry. The repeat location content control 134-b is mapped to a set of nodes having two values as indicated by item 1302 and code 1312. Assume that the replacement subtree operation is performed on < title >. Before the node disappears, the repeat site is unbounded, as indicated by item 1304 and code 1314. When they are re-added, the mapping is re-concatenated, lines 1 and 2 are re-mapped to their new entries, and line 3 is cloned from line 2, as indicated by entry 1306 and code 1316.
For error cases, if a deletion fails due to a structural schema error (e.g., minOccurs (minimal present) ═ 2 and the user deleted one of the last two items), the deletion is rolled back in the XML and document template 130 and the following failure message is generated: "This < item > candnot be deleted from the document" "populates < item > using the aforementioned logic. On open, if a node set evaluates to a null set, it is not treated like a delete action. Instead, the items in the duplicate locations remain, but the link to the data store is cancelled. Once a single node appears in the node set (making the above replacement logic), the mapping and add/remove entries are concatenated as needed.
The following actions apply to cut/copy/paste actions involving repeated parts. When the duplicate location control is clipped as a whole, no changes are made to the data store. Whenever the repeat location item content control is moved via copy and paste, the corresponding XML node is moved in the XML data store. When an item is cut, the mapped node is removed from the XML data store. When an item is pasted, the mapped node is inserted into the XML data store as appropriate (e.g., if it is inserted after item 2, then the sub-tree is inserted directly after the XML node mapped to the item) if the item is pasted to a compatible repeat location (e.g., a repeat location bound to the same set of nodes); otherwise the clipped XML is discarded.
In summary, or in addition, the above-described embodiments may include enhanced content controls that provide the ability to have presentation formats defined on a per-control basis. In addition, the enhanced content controls are dynamically changed at runtime. In addition, the enhanced content control may be mapped to a collection of nodes rather than just a single node. Further, the enhanced content controls may be mapped to only add new presentation data (including other content controls) instead of replacing the data currently there.
FIG. 14 illustrates an embodiment of an exemplary computing architecture 1400 suitable for implementing the various embodiments described above. As used in this application, the terms "system" and "component" are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, or software in execution, examples of which are provided by the exemplary computing architecture 1400. For example, a component may be, but is not limited to being, a process running on a processor, a hard disk drive, multiple storage drives (of optical and/or magnetic storage medium), an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. Further, the components may be communicatively coupled to each other by various types of communications media to coordinate operations. The coordination may involve a one-way or two-way exchange of information. For example, a component may communicate information in the form of signals communicated over the communications media. This information may be implemented as signals assigned to the respective signal lines. In these allocations, each message is a signal. However, other embodiments may alternatively employ data messages. These data messages may be sent across various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.
In one embodiment, the computing architecture 1400 may comprise or be implemented as part of a computing device. Examples of an electronic device may include, but are not limited to, a mobile device, a personal digital assistant, a mobile computing device, a smartphone, a cellular telephone, a handset, a one-way pager, a two-way pager, a messaging device, a computer, a Personal Computer (PC), a desktop computer, a laptop computer, a notebook computer, a handheld computer, a tablet computer, a server array or server farm, a web server, a network server, an Internet server, a workstation, a minicomputer, a mainframe computer, a supercomputer, a network appliance, a web appliance, a distributed computing system, multiprocessor systems, processor-based systems, consumer electronics, programmable consumer electronics, television, digital television, set-top box, wireless access point, base station, subscriber station, mobile subscriber center, radio network controller, a wireless network, A router, hub, gateway, bridge, switch, machine, or combination thereof. The embodiments are not limited in this context.
The computing architecture 1400 includes various common computing elements, such as one or more processors, co-processors, memory units, chipsets, controllers, peripherals, interfaces, oscillators, timing devices, video cards, audio cards, multimedia input/output (I/O) components, and so forth. However, the embodiments are not limited to implementation by the computing architecture 1400.
As shown in FIG. 14, the computing architecture 1400 includes a processing unit 1404, a system memory 1406, and a system bus 1408. The processing unit 1404 can be any of various commercially available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit 1404. The system bus 1408 provides an interface for system components including, but not limited to, the system memory 1406 to the processing unit 1404. The system bus 1408 can be any of several types of bus structure that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures.
The computing architecture 1400 may comprise or implement various articles of manufacture. An article of manufacture may comprise a computer-readable storage medium to store logic. Examples of a computer-readable storage medium may include any tangible medium capable of storing electronic data, including volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth. Examples of logic may include executable computer program instructions implemented using any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, object-oriented code, visual code, and the like.
The system memory 1406 may include various types of computer readable storage media in the form of one or more higher speed memory units, such as Read Only Memory (ROM), Random Access Memory (RAM), dynamic RAM (dram), double data rate dram (ddram), synchronous dram (sdram), static RAM (sram), programmable ROM (prom), erasable programmable ROM (eprom), electrically erasable programmable ROM (eeprom), flash memory, polymer memory such as ferroelectric polymer memory, ovonic memory, phase change or ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, or any other type of media suitable for storing information. In the illustrated embodiment shown in FIG. 14, the system memory 1406 can include non-volatile memory 1410 and/or volatile memory 1412. A basic input/output system (BIOS) may be stored in the non-volatile memory 1410.
The computer 1402 may include various types of computer-readable storage media in the form of one or more relatively low-speed memory units, including an internal Hard Disk Drive (HDD)1414, a magnetic Floppy Disk Drive (FDD)1416 for reading from and writing to a removable magnetic disk 1418, and an optical disk drive 1420 for reading from or writing to a removable optical disk 1422 (e.g., a CD-ROM or DVD). The HDD 1414, FDD 1416 and optical disk drive 1420 can be connected to the system bus 1408 by a HDD interface 1424, an FDD interface 1426 and an optical drive interface 1428, respectively. The HDD interface 1424 for external drive implementations can include at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
The drives and associated computer-readable media provide volatile and/or nonvolatile storage of data, data structures, computer-executable instructions, and so forth. For example, a number of program modules can be stored in the drives and memory units 1410, 1412, including an operating system 1430, one or more application programs 1432, other program modules 1434, and program data 1436.
The one or more application programs 1432, other program modules 1434, and program data 1436 can include, for example: the system 100, 200, the application 120, the document template component 122, the content control component 124, the user interface component 126, the document template 130, the content control visualization component 522, the content control mapping component 524, the content control repetition component 526, and other features and components of the system 100, 200.
A user can enter commands and information into the computer 1402 through one or more wired/wireless input devices, e.g., a keyboard 1438 and a pointing device, such as a mouse 1440. Other input devices may include a microphone, an Infrared (IR) remote control, a joystick, a game pad, a stylus pen, touch screen, or the like. These and other input devices are often connected to the processing unit 1404 through an input device interface 1442 that is coupled to the system bus 1408, but can be connected by other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.
A monitor 1444 or other type of display device is also connected to the system bus 1408 via an interface, such as a video adapter 1446. In addition to the monitor 1444, a computer typically includes other peripheral output devices, such as speakers, printers, etc.
The computer 1402 may operate in a networked environment using logical connections via wired and/or wireless communications to one or more remote computers, such as a remote computer(s) 1448. The remote computer(s) 1448 can be a workstation, a server computer, a router, a personal computer, portable computer, microprocessor-based entertainment appliance, a peer device or other common network node, and typically includes many or all of the elements described relative to the computer 1402, although, for purposes of brevity, only a memory/storage device 1450 is illustrated. The logical connections depicted include wired/wireless connectivity to a Local Area Network (LAN)1452 and/or larger networks, e.g., a Wide Area Network (WAN) 1454. Such LAN and WAN networking environments are commonplace in offices and companies, and facilitate enterprise-wide computer networks, such as intranets, all of which may connect to a global communications network, e.g., the Internet.
When used in a LAN networking environment, the computer 1402 is connected to the LAN 1452 through a wired and/or wireless communication network interface or adapter 1456. The adapter 1456 may facilitate wired and/or wireless communication to the LAN 1452, which may also include a wireless access point disposed thereon for communicating using the wireless functionality of the adapter 1456.
When used in a WAN networking environment, the computer 1402 can include a modem 1458, or is connected to a communications server on the WAN1454, or has other means for establishing communications over the WAN1454, such as by way of the Internet. The modem 1458, which can be internal or external and a wired and/or wireless device, is connected to the system bus 1408 via the input device interface 1442. In a networked environment, program modules depicted relative to the computer 1402, or portions thereof, can be stored in the remote memory/storage device 1450. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
The computer 1402 is operable to communicate with wire and wireless devices or entities using the IEEE802 family of standards, such as wireless devices operatively disposed in wireless communication (e.g., IEEE 802.11 over-the-air modulation techniques) with, for example, a printer, scanner, desktop and/or portable computer, Personal Digital Assistant (PDA), communications satellite, any piece of equipment or location associated with a wirelessly detectable tag (e.g., a kiosk, news stand, restroom), and telephone. This includes at least Wi-Fi (i.e., Wireless Fidelity), WiMax, and BluetoothTMWireless technology. Thus, the communication may be as for a conventional networkA predefined structure or simply an ad hoc (ad hoc) communication between at least two devices. Wi-Fi networks use radio technologies called IEEE 802.11x (a, b, n, g, etc.) to provide secure, reliable, fast wireless connectivity. A Wi-Fi network can be used to connect computers to each other, to the Internet, and to wired networks (which use IEEE 802.3-related media and functions).
Fig. 15 illustrates a block diagram of an exemplary communication architecture 1500 suitable for implementing various embodiments described above. The communications architecture 1500 includes various common communications elements, such as a transmitter, receiver, transceiver, radio, network interface, baseband processor, antenna, amplifiers, filters, and so forth. However, the embodiments are not limited to implementation by the communications architecture 1500.
As shown in fig. 15, the communications architecture 1500 includes one or more clients 1502 and servers 1504. The client 1502 may implement the client systems 310, 400. The server 1504 may implement the server system 350. The clients 1502 and the servers 1504 are operatively connected to one or more respective client data stores 1508 and server data stores 1510 that can be employed to store information local to the respective clients 1502 and servers 1504 (e.g., cookies and/or associated contextual information).
The clients 1502 and the servers 1504 can communicate information between each other using a communication framework 1506. The communication framework 1506 may implement any well-known communication techniques and protocols, such as those described with reference to systems 300, 400. The communication framework 1506 may be implemented as a packet-switched network (e.g., a public network such as the internet, a private network such as an enterprise intranet, and so forth), a circuit-switched network (e.g., the public switched telephone network), or a combination of packet-switched and circuit-switched networks (using suitable gateways and translators).
Some embodiments may be described using the expression "one embodiment" and "an embodiment" along with their derivatives. The terms mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The phrase "in one embodiment: not necessarily all referring to the same embodiment. Furthermore, some embodiments may be described using the expression "coupled" and "connected" along with their derivatives. These terms are not necessarily intended as synonyms for each other. For example, some embodiments may be described using the terms "connected" and/or "coupled" to indicate that two or more elements are in direct physical or electrical contact with each other. The term "coupled," however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
It is emphasized that the abstract of the disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing detailed description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the detailed description, with each claim standing on its own as a separate embodiment. In the appended claims, the terms "including" and "in which" are used as the plain-English equivalents of the respective terms "comprising" and "characterized by". Moreover, the terms "first," "second," "third," and the like are used merely as labels, and are not intended to impose numerical requirements on their objects.
What has been described above includes examples of the disclosed architecture. It is, of course, not possible to describe every conceivable combination of components and/or methodologies, but one of ordinary skill in the art may recognize that many further combinations and permutations are possible. Accordingly, the novel architecture is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims.

Claims (10)

1. An apparatus, comprising:
a logic device; and
an application operative on the logic device to generate a document from a document template, the application comprising:
a document template component for retrieving a document template, the document template comprising a plurality of document portions;
a content control component for managing a content control embedded in a document portion of the document template, the content control associated with a data source arranged to store formatted content presented by the content control, the content control component for synchronizing changes to the formatted content between the content control and the data source; and
a document generator component for generating a document from the document template using the content control.
2. The apparatus of claim 1, the content control component to receive a control directive to modify the formatted content, the control directive including an instruction to modify a formatting option or a style option for the formatted content.
3. The apparatus of claim 1, the content control component to receive a control directive to modify formatted content presented by the content control, present the modified formatted content in a presentation field of the content control, and send the modified formatted content to the data store.
4. The apparatus of claim 1, the content control component to detect that formatted content stored in the data store has been modified and send the modified formatted content to the content control for presentation in a presentation field of the content control.
5. The apparatus of claim 1, the content control component to communicate the modified formatted content using a data schema that is different from a data schema of the formatted content stored in the data store.
6. A method, comprising:
presenting a document template having a content control with formatted content in a presentation field of the content control;
receiving a control directive to modify the formatted content; and
synchronizing the modified formatted content between the content control and a data source associated with the content control.
7. The method of claim 6, comprising receiving a control directive to modify formatted content presented by the content control or stored in the data store.
8. The method of claim 6, comprising:
receiving a control directive to modify formatted content stored in the data store;
sending the modified formatted content to the content control; and
presenting the modified formatted content in the presentation field of the content control.
9. The method of claim 6, comprising:
serializing an extensible markup language (XML) element of the formatted content to form an XML element string;
removing the retained XML characters from the XML element string; and
storing any remaining text from the XML element in the datastore.
10. An article of manufacture comprising a storage medium containing instructions that when executed cause a system to perform the method of any of claims 6 to 9.
HK13103890.0A 2011-03-28 2013-03-27 Techniques to create structured document templates using enhanced content controls HK1177010B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US61/468,473 2011-03-28
US13/240,722 2011-09-22

Publications (2)

Publication Number Publication Date
HK1177010A true HK1177010A (en) 2013-08-09
HK1177010B HK1177010B (en) 2018-04-27

Family

ID=

Similar Documents

Publication Publication Date Title
US8850306B2 (en) Techniques to create structured document templates using enhanced content controls
US20230105237A1 (en) Document processor program having document-type dependent user interface
US11423357B2 (en) Reusable components for collaborative content items
CN111819534B (en) Spreadsheet-based software application development
JP2022130503A (en) Software application development based on spreadsheets
US9524283B2 (en) Techniques to remotely access form information and generate a form
US10042951B2 (en) Contextual commenting on the web
US20180024977A1 (en) Simultaneous collaborative review of a document
US11960525B2 (en) Automatically formatting content items for presentation
RU2348064C2 (en) Method and system of extending functional capacity of insertion for computer software applications
US9367539B2 (en) Techniques for automated document translation
US9189125B2 (en) Systems and methods for concurrent online and offline document processing
US20170228465A1 (en) Result types for conditional data display
US7672995B2 (en) System and method for publishing collaboration items to a web site
US7783971B2 (en) Graphic object themes
US20090006454A1 (en) WYSIWYG, browser-based XML editor
US10318126B2 (en) Data-driven schema for describing and executing management tasks in a graphical user interface
US20140019843A1 (en) Generic annotation framework for annotating documents
CN105843787A (en) Rich text editing method and system
US20190294659A1 (en) Embedding a portion of a source content item
US11119975B2 (en) Digital design application plugin for content updates and delivery
US10896161B2 (en) Integrated computing environment for managing and presenting design iterations
HK1177010A (en) Techniques to create structured document templates using enhanced content controls
HK1177010B (en) Techniques to create structured document templates using enhanced content controls
CN114911460A (en) Method and system for rendering Web form in mobile terminal