# Patent

## Title
Structural editing operations for network forms

## Abstract

Systems and/or methods that enable an operation associated with an altered structure of a data instance of a network form without first altering the structure of the data instance are described. These systems and/or methods, in one embodiment, enable an operation of a network form eventually requiring alteration of a structure of a data instance of the network form without first performing a roundtrip with the network form's network computer. In another embodiment, the systems and/or methods approximate a view and editing experience associated with a structural change to a data instance of a network form without structurally changing the data instance.

## Background
TECHNICAL FIELD
This invention relates to structural editing operations for network forms.
BACKGROUND
Electronic forms are commonly used to collect information. One way in which to enable use of electronic forms is over a network, such as a local intranet or the Internet. A user may use an electronic form, for instance, through his or her network browser. The user's network browser may contact over a network a network computer that is capable of enabling the browser to display and enable editing of the electronic form.
The user's browser may present a view of the network-enabled electronic form and enable the user to edit the form through that view. Thus, a user may view data-entry fields in the network form and enter information into those fields. Suppose, for example, that the user wishes to shop online. The user may contact a merchant's website and select to purchase a product. Following receipt of the user's selection to purchase, a merchant may want to collect information about the user, such as the user's name, credit card billing address, shipping address, gift shipping address, and credit card number, for instance.
To collect this information, the merchant (through the merchant's network computer) may enable the user's browser to display and enable editing of a form for entry of this information. In this case, the network-enabled electronic form may show data-entry fields and controls for entry of the user's name, credit card billing address, shipping address, gift shipping address, and credit card number. Having the browser display all of these data-entry fields in the network form, however, may clutter the network form and make entry of the information difficult or confusing for the user. If the user is buying the product for himself and wants it shipped to the same address as his billing address, he may not need or want to view data-entry fields for a shipping address and a gift shipping address. In this case, the shipping-address data-entry fields and the gift shipping-address data-entry fields clutter up the form.
The merchant may, on the other hand, enable the user's browser to display the billing address and two buttons—one for selecting to view and edit shipping-address data-entry fields and another for gift shipping-address data-entry fields. This reduces the clutter caused by showing unwanted data-entry fields in the network form.
But the user may want to ship the product to a friend as a gift. To do so, the user may select the button to view and edit the gift shipping-address fields. To enable the browser to display and enable editing of these fields the network computer may need to alter the structure of the network form's data instance. Thus, the network computer may need to add data nodes for these gift shipping-address fields to its data instance, and, based on these added nodes, determine information with which the browser may enable a user to view and edit the gift shipping-address fields.
Determining this information on the network computer, altering the form's data instance, and re-computing the view, however, expends some of the network computer's resources. Expending these resources may slow or inhibit the network computer's ability to enable the merchant's customers to view and edit electronic forms.
Also, communicating with the network computer may slow the browser enough to negatively affect the user's editing experience. In some cases, the network computer may take an appreciable amount of time to receive the request from the browser, determine the information usable by the browser, and send that information to the browser. Also, communicating with the network computer may be slow because of the network or how the browser communicates with it (e.g., with a dial-up modem), also potentially affecting a user's editing experience.
Accordingly, this invention arose out of concerns associated with performing structural editing operations for network forms.
SUMMARY
Systems and/or methods (“tools”) are described that enable an operation associated with an altered structure of a data instance of a network form without first altering the structure of the data instance.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an exemplary operating environment in which various embodiments can operate.
FIG. 2 is a flow diagram of an exemplary process for enabling a structural operation in a network form.
FIG. 3 illustrates an exemplary view of a network form.
FIG. 4 illustrates the view of FIG. 3 with an exemplary view approximation approximating a transformation of the network form's data instance.



The same numbers are used throughout the disclosure and figures to reference like components and features.
DETAILED DESCRIPTION
Overview
The following disclosure describes one or more tools enabling an operation associated with an altered structure of a data instance of a network form without first altering the structure of the data instance. In one embodiment, this enabling is performed locally without performing a roundtrip to a network computer for additional information, such as information comprising a rendering of an alteration of the structure of the network form's data instance.
In another embodiment, the tools approximate a view and editing experience associated with a structural alteration of a data instance of a network form without necessitating that structural alteration of the data instance. By so doing, the tools may, in some cases, permit a user to add a view and editing experience associated with a structural alteration of the network form's data instance without communicating with the network form's network.
In still another embodiment, the tools enable a user to enter an edit into a view of a network form, the edit eventually requiring a structural change to a data instance of the network form, without first structurally changing the data instance. By so doing, the tools may, in some cases, permit a user to enter an edit into a data-entry field that eventually requires a structural alteration of the network form's data instance, without first having to wait for communication with the network form's network computer. This edit may be recorded for later submittal to the network computer at some point, such as when the wait is less disruptive to the user's editing experience.
Exemplary Operating Environment
Before describing the tools in detail, the following discussion of an exemplary operating environment is provided to assist the reader in understanding where and how the tools may be employed. The description provided below constitutes but one example and is not intended to limit application of the tools to any one particular operating environment.
FIG. 1 illustrates one such operating environment generally at 100 comprising a computer 102, a communication network 104, and a network computer 106. The computer is shown comprising one or more processor(s) 108 and computer-readable media 110. The processor(s) are capable of accessing and/or executing the computer-readable media. The computer-readable media comprises a network browser 112, an event log 114, and received media 116. The dashed lines between the received media and media of the network computer show that these indicated media may be downloaded by the computer from the network computer.
The communication network enables communication between the computer and the network computer and may comprise one or more of an intranet, like a company's internal network, the Internet, and the like.
The network computer is shown comprising computer-readable media 118. This computer-readable media comprises a network form 120 comprising a data instance 122 of the network form, view information 124 of the network form, and a schema 126 governing the network form. The network form's data instance is a particular data instance of the network form; thus, if the structure or data of the network form is changed (such as by a user entering information into a view of the network form), the network form's data instance may be altered, at some point in time, to reflect the change. The view information is information sufficient for the network browser to display an editable view of the current data instance of the network form.
In one embodiment, the network form's data instance is modeled with a hierarchical tree structure. In this and other embodiments, the network form's data instance may comprise eXtensible Markup Language (XML). Also, the view information may comprise HyperText Machine Language (HTML) resulting from an XML Stylesheet Language Transformation (XSLT) of the XML data instance. This HTML is usable by the network browser to display the network form. The network form's schema governs the network form. In the above-mentioned embodiment, it comprises XML Schema (XSD).
The network computer's computer-readable media is also shown comprising a view template 128, an editing template 130, and an editor application 132. The view template, editing template, and editor application may be combined or separate.
The view template comprises pieces of information sufficient for the editor application and/or the network browser to display potential structural alterations to the network form's data instance. Each of these pieces of information may comprise, for example, HTML for viewing the potential structural alteration to the network form's data instance. In one embodiment, this view template is prepared by discovering positions in the network form's syntax where it is possible for a user to request a structural change or to which a requested structural change may be made. Identifiers are then created for each of these positions. Also, a rendering of each possible structural alteration is created and mapped to the position identifiers. Thus, the view template may comprise an actual view representation of what a user would see if the requested structural alteration were made to the network form's data instance and that data instance where transformed into a viewable form (such as HTML).
The editing template comprises information sufficient for the editor and/or the network browser to enable editing behavior for potential structural alterations to the network form's data instance. The editing template may comprise script, rules determined by schema 126, and logic, for instance. These enabled behaviors may, similar to the pieces of the view template, be mapped to positions (e.g., with an identifier) in the network form's syntax where it is possible for a user to request a structural alteration or to which a requested structural alteration may be made. The editing template may also comprise default data and the like for a potential structural alteration. Default data may comprise, for example, values for simple fields (like date, currency, and name fields), a number of repetitions for lists, tables, and rows, and whether or not optional content that is allowable by a schema should be present.
Various embodiments of the view and editing templates and how they may be used are set forth in greater detail below.
Operation Associated with a Structural Alteration
The following discussion describes exemplary ways in which the tools enable an operation associated with an altered structure of—or eventually necessitating an alteration to—a data instance of a network form (a “structural operation”).
An exemplary process 200 for enabling a structural operation without first altering the structure of the network form's data instance or without using the altered structure of the data instance is shown in FIG. 2. Process 200 is illustrated as a series of blocks representing individual operations or acts performed by elements of the operating environment 100 of FIG. 1, such as editor application 132. This process may be implemented in any suitable hardware, software, firmware, or combination thereof; in the case of software and firmware, this process represents a set of operations implemented as computer-executable instructions stored in computer-readable media 110 and executable by processor(s) 108.
At block 202, network browser 112 receives information sufficient to enable computer 102 to display the network form and enable operations not requiring a structural change to the network form's data instance. With this information, the network browser may present the network form and enable a user to edit it, such as with data-entry fields into which the user may enter data. In one embodiment this information comprises view information 124 of FIG. 1.
At block 204, the network browser receives computer-readable media usable to enable a structural operation for the network form. In one embodiment this computer-readable media comprises view template 128, editing template 130, and editor application 132.
With the information received at block 202, the network browser may render network form 120 for viewing and editing by a user. Consider, for example, an exemplary view 300 of network form 120 set forth in FIG. 3. As shown in this view, the browser displays the network form having various data-entry fields. A user may enter his credit card billing address through the data-entry fields 302, for instance. The browser also displays controls for selecting structural operations, shown here with a shipping address selectable control 304 and a gift shipping-address selectable control 306.
At block 206, the network browser receives a selection by a user to enable a structural operation. This may be indirect or direct from the user, such as by tabbing out of a data-entry field, selecting from a drop down list, and clicking on a control to add or remove data-entry fields. A user may, for example, add or remove repeating data constructs, such as by adding or removing items from a shopping cart. Removing constructs (e.g., data-entry fields) may un-clutter the view and/or reduce (eventually) the size of the form's data instance. Reducing the size of the form's data instance may reduce the resources used by the network computer serving the form.
Continuing the illustrated embodiment, assume that the user clicks on the gift shipping-address button or control in the view 300 of FIG. 3.
At block 208, the editor application enables the selected structural operation without first altering the structure of the data instance. This may enable an editing operation associated with an altered structure of a data instance of a network form to take place initially in the network browser without actually changing the structure of a data instance of the form on the network computer. In the ongoing embodiment, executing the chosen structural operation comprises presenting a view and/or enabling editing associated with the altered structure of the data instance of the network form.
This presenting and enabling is performed, in one embodiment, locally without performing a roundtrip to a network computer for additional information, such as information comprising a rendering of an alteration of the structure of the network form's data instance. Thus, the editor application may present the view and enable editing without an alteration to the structure of the data instance of the network form. The view presented may be built from pieces of information in the view template sufficient for the editor application and/or the network browser to correctly display the view of the form in the browser corresponding to the chosen structural alteration to the network form's data instance without changing that data instance. In doing so, the editor application may compute a modified view and editing experience as if the data instance of the network form is changed without actually requiring that the structural change to be made to the data instance.
The editor application may determine editing behavior based on the user's selection, such as based on the position in the data instance at which the requested structural alteration corresponds. This position and/or an associated identifier is further associated with editing behavior. This editing behavior may be acquired from editing template 130 stored in received media 116 of FIG. 1.
Continuing the illustrated embodiment, consider FIG. 4. FIG. 4 shows a view approximation 402 showing gift shipping-address data-entry fields 404 approximating a transformation of the network form's data instance.
In this embodiment, the editor application determines a position in (or portion of) the electronic form's data instance at which the requested structural alteration corresponds. This position or portion, in turn, is associated with an identifier associated with information in the view template comprising one or more viewing pieces usable to enable the presentation. The presentation may be enabled by adding these pieces to the view. It may also be enabled by removing these pieces from the view, such as in those cases where the structural alteration is associated with removal of a part of the view. The view template may comprise one piece of HTML for all of the view approximation 402 (e.g., the modified section of the view). Alternatively, it may comprise HTML for each of the fields 404 (e.g., HTML for a Name field 406, HTML for a ZIP Code field 408, etc.) and information sufficient for the editor to arrange the HTML to present the view approximation.
Also, the editor application may determine whether or not data should be presented as well. This data may comprise default data for the requested structural alteration. In this case (not shown) the editor application may display the default data for the requested structural alteration.
The editor application then enables editing through the view approximation. The view approximation comprises an update to the view and may enable further editing through the view that may be identical to a view and editing behavior obtainable by communicating with the network computer.
In some cases, the editor application also enables an additional structural alteration associated with and/or subordinate to the selected structural alteration. This additional structural alteration may, in one embodiment, be one that is only enabled if the selected structural alteration is enabled. A user may, for instance, select the gift shipping-address data-entry fields. In response, the editor application may enable editing through these data-entry fields and also enable an associated structural alteration, such as with a button in the view enabling the user to select to have the product gift wrapped. If the user selects this button, the editor application may present additional data-entry fields or information, such as the cost, type of wrapping paper, and the like. Thus, the editor application may, in some cases, enable subordinate (“nested”) structural alterations.
In the illustrated embodiment, the editor application enables editing behavior permitting only text entry into Name data-entry field 406 and only numbers into ZIP Code data-entry field 408. It also enables a function to auto-populate a city into a city field 410 and a State into a state field 412 corresponding to a valid ZIP code if one is entered into the ZIP code field prior to a city and State being entered.
In some cases, prior to or incident with block 208, the editor application determines whether or not the selected structural operation is one in which immediate communication with the network computer is needed in order for the approximation to be accurate. In situations where the approximation will not be entirely accurate, the editor application may either enable the structural operation and note the inaccuracy or communicate with the network computer.
At block 210, the editor application receives editing. This editing may comprise a request to enable another structural operation or entry of data. If a request, the editor application may return to block 206. Whether a request to enable another structural operation or a non-structural editing operation (like a text editing operation), each editing operation may be recorded in event log 114. In some cases, the editing operations are recorded in the event log as a flat list. If the edit is to a structural operation, the editor application receives the editing and acts according to the editing behavior enabled at block 208. This behavior may be represented to the user, for instance, by presenting additional HTML showing the data entered.
Following, prior to, or coincident with blocks 206, 208, or 210, the editor application records the user's interactions into event log 114. The editor application may record each command for structural or non-structural editing (e.g., data entry), and in what context the editing was made (e.g., what structural part of the form, like a data-entry field) in order to accurately record the user's interaction. In this way, at a later point when the browser communicates with the network computer (for example, when the user chooses to submit the form), the editing actions may be carried out on the form's data instance. The user may observe no change in the form displayed in the browser once the editing actions are carried out on the form's data instance because the view has already been correctly updated during the previous editing. In some cases, however, if the editor application has not been completely accurate in updating the view, this communication with the network computer may lead to a correction to the view of the form in the browser. This correction provides a more accurate accounting by which the electronic form's structural and data aspects of its data instance are altered.
At block 212, the editor application communicates selections and edits of the user to the network computer. This communication may be at a time when it is not inconvenient to a user or when the user chooses to submit the form, for instance.
Continuing the illustrated embodiment, the editor application communicates an accounting of each interaction with the user to the network computer recorded in the event log of FIG. 1 once the user clicks on a submit purchase control 414 of FIG. 4.
Responsive to receiving this communication, the network computer may alter the data instance of the network form. It may alter the structure of the data instance requested by the user's selection to enable a structural operation. It may also alter the data of the network form's data instance responsive to edits received from the user. If the view representation accurately approximated a transformation of the altered data structure, the editor application may forgo altering the view representation. If the view representation did not exactly approximate a transformation of the altered data structure, the editor application may correct the view representation or not, based on the magnitude of the difference between the view representation and the transformation.
CONCLUSION
Tools enabling an operation associated with an altered structure of a data instance of a network form without first altering the structure of the data instance are described. Although the invention has been described in language specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of implementing the claimed invention.

## Claims

1. A method comprising:
receiving, through a view approximating an existing instance of a network form, a selection from within the network form sufficient to cause a visual, structural change of the network form eventually necessitating an alteration to a data structure of the existing instance of the network form, wherein the existing instance of the network form is accessible across a communication network but is locally inaccessible;
enabling the visual, structural change without first altering the data structure of the existing instance of the network form; and
updating the view based on the visual, structural change and also without first altering the data structure of the existing instance of the network form.

2. The method of claim 1, wherein the act of enabling is performed following the act of receiving the selection, and the alteration to the data structure of the existing instance of the network form is eventually performed at a network computer.

3. The method of claim 1, further comprising:
enabling selection of a second visual, structural change eventually necessitating an alteration to the data structure of the existing instance of the network form, the second visual, structural change being subordinate to the first visual, structural change;
receiving a selection to enable the second visual, structural change;
enabling the second visual, structural change without first altering the data structure of the existing instance of the network form; and
updating the view based on the second visual, structural change and also without first altering the data structure of the existing instance of the network form.

4. The method of claim 1, wherein the act of updating the view approximates a transformation of the alteration to the data structure of the existing instance of the network form.

5. The method of claim 4, wherein the act of updating the view comprises:
determining a position in the existing instance of the network form associated with the selection;
determining an identifier corresponding to this position;
determining one or more viewing pieces associated with the identifier; and
displaying the one or more viewing pieces.

6. The method of claim 1, wherein the act of enabling the visual, structural change comprises enabling editing behavior that approximates behavior permitted by a schema governing the alteration to the data structure of the existing instance of the network form.

7. The method of claim 6, wherein the act of enabling editing behavior comprises:
determining a position in the existing instance of the network form associated with the selection; and
determining the editing behavior in an editing template mapped with this position.

8. The method of claim 6, further comprising:
recording the selection;
communicating the selection to a network computer having the existing instance of the network form, effective to enable the alteration to the data structure of the existing instance of the network form;
receiving edits from a user; and
communicating the edits to the network computer effective to enable addition of the edits to the existing instance of the network form.

9. The method of claim 1, further comprising recording the selection and communicating the selection to a network computer having the existing instance of the network form, wherein the act of communicating the selection is effective to enable the alteration to the data structure of the existing instance of the network form.

10. A method comprising:
approximating a view associated with a structural alteration of an existing instance of a network form, wherein the existing instance of the network form is accessible across a communication network but is locally inaccessible; and
approximating an editing experience associated with the structural alteration of the existing instance of the network form,
wherein the act of approximating the view and the act of approximating the editing experience are performed without the existing instance of the network form having the structural alteration.

11. The method of claim 10, wherein the act of approximating the view comprises:
determining a portion of the existing instance of the network form associated with the structural alteration;
determining one or more viewing pieces associated with this portion; and
removing the one or more viewing pieces from the view.

12. The method of claim 10, wherein the act of approximating the view comprises:
determining a position in the existing instance of the network form at which the structural alteration can be made;
selecting one or more viewing pieces associated with this position; and
displaying the one or more viewing pieces.

13. The method of claim 10, wherein the act of approximating the editing experience comprises:
determining a position in the existing instance of the network form at which the structural alteration can be made; and
selecting the editing behavior associated with this position from an editing template.

14. The method of claim 10, further comprising:
receiving a selection to view and edit the structural alteration;
recording the selection; and
following the acts of approximating, communicating the recorded selection to a network computer having the existing instance of the network form effective to enable the structural alteration to be made to the existing instance of the network form.

15. The method of claim 10, further comprising:
displaying, prior to the act of approximating the view, a prior view comprising a rendering of the existing instance of the network form,
wherein the act of approximating the view comprises altering the prior view to accommodate the approximated view associated with the structural alteration.

16. The method of claim 10, further comprising receiving edits from a user enabled by the approximated view and the approximated editing experience.

17. The method of claim 16, further comprising communicating the edits and information associated with the structural alteration to a network computer, the information effective to enable the structural alteration of the existing instance of the network form and the edits effective to enable alteration to data comprised by the structural alteration of the existing instance of the network form.

18. A method comprising:
receiving a selection to enable an editing operation in a network form, wherein the editing operation requires an alteration of a data structure of an existing instance of the network form and the existing instance of the network form is accessible across a communication network but is locally inaccessible;
recording the selection;
displaying a view enabling entry of edits for the editing operation;
enabling behavior for the edits approximating behavior associated with the required alteration of the data structure of the existing instance of the network form;
receiving user edits through the view;
recording the user edits;
communicating the recording of the selection across the communication network effective to enable the alteration to the data structure of the existing instance of the network form; and
communicating the recording of the user edits across the communication network effective to enable alteration of data within the alteration of the data structure of the existing instance of the network form.

19. The method of claim 18, wherein:
the act of recording the user edits comprises:
recording data entered by a user; and
recording a structural context in which the data is entered, and
wherein the act of recording the selection comprises:
recording a command entered by the user; and
recording a structural context in which the command is entered.