Patent Publication Number: US-7712022-B2

Title: Mutually exclusive options in electronic forms

Description:
TECHNICAL FIELD 
   This invention relates to mutually exclusive options in electronic forms. 
   BACKGROUND 
   Extensible markup language (XML) is increasingly becoming the preferred format for transferring data. XML is a tag-based hierarchical language that is extremely rich in terms of the data that it can be used to represent. For example, XML can be used to represent data spanning the spectrum from semi-structured data (such as one would find in a word-processing document) to generally structured data (such as that which is contained in a table). XML is well-suited for many types of communication including business-to-business and client-to-server communication. 
   Data represented in XML is often created and retained in electronic documents, such as electronic forms. An electronic form that is written in XML typically is governed by an XML schema (XSD) and can be altered by applying an eXtensible Style-sheet Language Transformation (XSLT) file on the form. For more information on XML, XSLT, and XSD (schemas), the reader is referred to the following documents which are the work of, and available from the W3C (World Wide Web consortium): XML Schema Part 2: Datatypes; XML Schema Part 1: Structures; and XSL Transformations (XSLT) Version 1.0; and XML 1.0 Second Edition Specification. 
   In some instances, a schema governing an electronic form may define sets of information that are syntactically mutually exclusive, such as a schema defining an address as either an international address or a U.S. address, but not both at the same time. The schema may define these sets to enforce a mutual exclusivity. 
   Mutual exclusivity may be a useful way in which to govern sets of information that may potentially be entered into an electronic form, such as when a user enters either a U.S. mailing address or an international mailing address for a particular person, by permitting only one set of information when only one set is useful or possible (e.g., when a person can have only one address). 
   Some electronic forms enable users to enter information into both mutually exclusive options at the same time but in so doing these forms are not respecting throughout the editing process the syntax defined in the schema. In the ongoing example, these electronic forms may present two groups of data-entry fields, one designed for entry of a U.S. address and the other designed for entry of an international address. The schemas governing these electronic forms, however, do not permit both of these options to exist at once. Thus, the electronic forms may present both groups of data-entry fields but in doing so permit, at least temporarily, the electronic form to be invalid to the form&#39;s schema. If the form remains invalid, it can be useless. 
   To rectify this invalid state, a programmer may write script designed to fix the invalid state. If successful, this script may select a part of the form&#39;s data that should be retained and a part that should be removed. But this script can require extensive time and programming experience to write. And in some cases, the invalid state is not properly corrected by the script, causing the form to either remain invalid, require a person to manually correct the invalidity, or permit erroneous data to be retained. 
   SUMMARY 
   Systems and/or methods (“tools”) enabling creation and/or use of an electronic form capable of allowing a user to select from mutually exclusive options without the electronic form being in an invalid state are described. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  illustrates an exemplary architecture capable of facilitating creation and use of electronic forms. 
       FIG. 2  sets forth an exemplary flow diagram showing interactions between components of the architecture of  FIG. 1 . 
       FIG. 3  illustrates an exemplary domestic-address set of data-entry fields. 
       FIG. 4  illustrates a screen shot showing an exemplary option menu dialog. 
       FIG. 5  illustrates an exemplary international-address set of data-entry fields. 
       FIG. 6  sets forth a flow diagram of an exemplary process for building mutually exclusive options. 
       FIG. 7  illustrates an exemplary form-design area having an exemplary non-repeating container. 
       FIG. 8  illustrates the form-design area of  FIG. 7  updated to show a graphical selection of two options placed within an option area of the non-repeating container. 
       FIG. 9  illustrates the form-design area of  FIG. 7  showing a graphical selection of three options placed within an option area of an exemplary repeating container. 
   

   The same numbers are used throughout the disclosure and figures to reference like components and features. 
   DETAILED DESCRIPTION 
   Overview 
   Tools described below enable creation and/or use of an electronic form capable of allowing a user to select from mutually exclusive options without the electronic form being in an invalid state. 
   The tools may enable creation of these mutually exclusive options in an electronic form graphically, such as through enabling a form designer to graphically select components representing these options. By doing so, the tools enable form designers to quickly and easily create mutually exclusive options for electronic forms without needing to write script or have extensive programming experience. 
   Architecture 
   Referring to  FIG. 1 , an exemplary architecture  100  capable of facilitating creation and use of electronic forms is shown. The architecture  100  comprises a display  102 , one or more user-input devices  104 , and a computer  106 . The user-input devices  104  comprise any device allowing a computer to receive a designer&#39;s preferences, such as a keyboard  108 , other device(s)  110  (e.g., a touch screen, a voice-activated input device, a track ball, etc.), and a mouse  112 . The computer comprises a processing unit  114  capable of executing computer-readable media  116 . 
   The computer-readable media comprises an operating system  118  and one or more applications stored in memory and executable by the processing unit. One particular application is a design application  120 , which may allow a form designer to create mutually exclusive options for an electronic form with little or no programming skill. The design application is capable of providing a visual what-you-see-is-what-you-get (WYSIWYG) user interface  122  that, in one embodiment, enables designers to graphically construct mutually exclusive options by visually selecting graphics and arranging them in a manner that can be intuitive and straight forward. 
   An electronic-form template  124  is also shown. This template comprises a schema  126  governing electronic form  128 , and option logic  130 . The option logic may be part of or separate from the template. The electronic form comprises a data structure  132  and a form view  134 . The data structure may be arranged hierarchically and comprise nodes. The data structure may also be transformed to render the form view, which enables data entry into the electronic form. In one embodiment, the data structure comprises eXtensible Markup Language (XML) and can be transformed with an extensible Style-sheet Language Transformation (XSLT) to produce HyperText Machine Language (HTML) that is viewable and through which a user can enter information. 
   Mutually Exclusive Options 
   Before setting out exemplary processes for building mutually exclusive options into electronic forms, the following discussion describes examples of these options and how they may be used. 
   Generally, mutually exclusive options in the context of electronic forms comprise a set of options each of which excludes the other. These mutually exclusive options have many applications in electronic forms. Mailing addresses that are either domestic or international, travel that is either by air or car, or a payment method that is either through paper billing or electronic wire transfer, for instance, each may be a set of mutually exclusive options. 
   Often, this mutual exclusivity is tied to differences in how the data for the options is entered or stored. An international address, for instance, often does not have a ZIP code, while a domestic (U.S.) address does. Air travel may need a data-entry field and corresponding data structure in the electronic form for a frequent flier program number, while car travel does not. Paper billing may need a physical address, while an electronic wire transfer instead may need a bank deposit number and password. Thus, mutually exclusive options in electronic forms are useful to users but often need to be entered and stored in different ways. 
   To enable information to be entered and stored in different ways, each mutually exclusive option may correspond to and be represented in an electronic form&#39;s data structure by a data substructure (e.g., one or more nodes of a tree data structure). Because the options represented by these substructures are mutually exclusive, a schema defining the syntax of the data for the electronic form will deem the electronic form invalid if more than one of these substructures is present in the form&#39;s data structure at one time. If the substructures for the mutually exclusive options are designed to be present in a same portion of the electronic form&#39;s data structure, the schema can require that only one of data substructures occupy that portion at once for the electronic form to remain valid. Thus, in that portion of the data structure a data substructure corresponding to only one mutually exclusive option is permitted. If, for example, the portion is designed to store a mailing address, which may either be domestic or international, the data substructure for the domestic address or the international address may be present but not both. 
   To show and enable entry into a data substructure, the electronic form may be represented with a form view that is a transformation of the data structure. If this is the case, to present data-entry fields for each of the mutually exclusive options at once (described in the Background section above), the data structure may need to contain all of the options at once. But in so doing, the electronic form will be invalid to its governing schema because it contains two or more mutually exclusive options at once. 
   Electronic forms described and built herein, however, are capable of enabling a user to enter information into one of multiple, mutually exclusive options without the electronic form being invalid. 
   Exemplary User Interaction With Mutually Exclusive Options 
   These electronic forms, in conjunction with other application(s) described herein or otherwise, are capable of enabling a user to select one of the mutually exclusive options in which to enter information. The user can do so passively, by accepting a default option, or actively by swapping a default option with another option or selecting an option from a list of options. Through this swapping, a user is enabled to alter the data structure of the electronic form while in a mode permitting entry of data into the electronic form. 
   As an example of a user&#39;s interaction with this electronic form, consider  FIG. 2 . There an exemplary flow diagram showing interactions between a user and components of architecture  100  of  FIG. 1  are shown. In this illustrated embodiment, a user is presented with form view  134 , which is a transformation of electronic form  128 &#39;s form data structure  132 . 
   This form view is set forth in greater detail in  FIG. 3 , where a domestic address set of data-entry fields  302  is shown. This form is capable of accepting entry of information from a user into one of two mutually exclusive options. One of these options is shown with the domestic address fields. The other is not yet shown but can be represented by an international-address set of data-entry fields. Each of these mutually exclusive options map one-to-one with a data substructure capable of residing in the form&#39;s data structure  132 . These data substructures may each separately be valid to schema  126 , shown in  FIG. 2 . 
   The domestic address fields are, in this embodiment, an XSLT transformation into HTML of the data substructure of the domestic-address mutually exclusive option. These fields are shown exclusively because their corresponding data substructure is the only mutually exclusive option currently part of the form data structure. By having only one mutually exclusive option&#39;s data structure as part of the form data structure, the form data structure is valid to the electronic form&#39;s schema. 
   The user can begin entry of information into the domestic address fields, thereby passively selecting this mutually exclusive option rather than the international-address mutually exclusive option. 
   In the illustrated embodiment of  FIG. 2 , however, the user selects to swap the domestic-address mutually exclusive option with the international-address mutually exclusive option. This is marked as action  1 , entitled “User Selects Option”. 
   This selection is shown visually in  FIG. 4 , which shows screen shot  400  and an option menu dialog  402 . Through selecting an international-address option  404 , the user selects that the domestic address option be swapped with the international address option. The menu dialog  402  describes the operation that will actually be performed; that of replacing the domestic address fields with the international address fields. 
   Responsive to the user&#39;s selection, option logic  130  of  FIG. 2  swaps, as an atomic operation, the data substructure of the domestic-address mutually exclusive option with that of the international-address mutually exclusive option. In doing so, the option logic can communicate with the electronic form template and the schema to determine what is permitted by the schema, the precise syntax for the data structures, and the like. This swapping by the option logic is marked as action  2 , entitled “Swap Option Data Substructure”, and is shown with a dashed lined representing possible interaction with the electronic form template and the form&#39;s schema. 
   In the illustrated embodiment, the option logic atomically swaps the data substructure for one mutually exclusive option with the data substructure of another mutually exclusive option, rather than adding both and deleting one, or deleting both and adding one back in. The data substructures can be designed to map one-to-one with each mutually exclusive option, which enables one to be swapped with another in an atomic operation. In doing so, the electronic form remains valid to its schema. It does not have to transition through an invalid state. Another potential benefit of atomic swapping is that the user may not have to view the data-entry fields of all of the mutually exclusive options at once. This allows the form view to be less cluttered. Still another benefit of atomic swapping is that a user may be permitted only structurally valid interactions with the electronic form. This may reduce the probability of erroneous data being retained by the electronic form. 
   Following the swap of the data substructures, the change is reflected in the form view. This change can be reflected by transforming the new data substructure added to the form data structure (e.g., action 3, entitled “Transform Swapped Data Substructure” of  FIG. 2 ) or transforming all of the form data structure, for instance. Also, responsive to this swap, the option menu dialog of  FIG. 4  may show a corresponding new option, in this case for replacing the international-address fields with the domestic-address option (not shown). 
   Continuing the illustrated embodiment, the change to the form view is shown with the swapping of the domestic address set of data-entry fields with an international address set of data-entry fields  502  shown in  FIG. 5 . These fields enable a user to enter an international address into the electronic form without the form being invalid. 
   Building Mutually Exclusive Options 
   Referring to  FIG. 6 , an exemplary process  600  for building mutually exclusive options is shown. The process  600  is illustrated as a series of blocks representing individual operations or acts performed by components of architecture  100 , such as design application  120  and/or its user interface  122 . This and other processes described herein may be implemented in any suitable hardware, software, firmware, or combination thereof. In the case of software and firmware, these processes represent sets of operations implemented as computer-executable instructions. 
   At block  602 , the design application enables selection of a mutually exclusive option container. This container can be chosen by dragging and dropping it from one region of display  102  to another, for instance. It can also be chosen through a dialog menu or in other appropriate ways. This mutually exclusive option container may contain one set of options or an arbitrarily large number of sets of the same two or more options. In cases where the container is chosen to have multiple repeating sets, an eventual user of the electronic form may be enabled to select how many times the sets repeat. 
   Responsive to receiving the selection, the design application presents the option container at block  604 . 
   The design application also enables a user to select mutually exclusive options at block  606 . In the ongoing embodiment, the design application does so through an area in the presented container into which a form designer may place selected mutually exclusive options. This area in the container provides an intuitive place in which a form designer can place his or her selections, such as by dragging and dropping graphics or icons (e.g., components, data-entry fields, and/or nodes) representing mutually exclusive options. 
   To illustrate the ongoing embodiment, a form-design area  700  having a non-repeating container  702  (labeled “Choice Group”) is shown in  FIG. 7 . This non-repeating container comprises an option area  704  into which the form designer may graphically insert an option. 
   Returning to  FIG. 6 , a form designer selects options to be mutually exclusive, the selection of which is received by the design application at block  608 . The form designer may be enabled to do so graphically by dragging and dropping mutually exclusive options, such as a domestic address option and an international address option, into the container. Alternatively or additionally, the form designer may be enabled to do so by dragging and dropping subcomponents into different areas in the container, the subcomponents dropped into each different area representing in sum a mutually exclusive option. 
   Referring to  FIG. 8 , the form-design area of  FIG. 7  is updated to show a graphical selection of two options placed within option area  704  of non-repeating container  702 . These options are a domestic address option  802  and an international address option  804 . Each of these mutually exclusive options may be represented by data-entry fields mirroring how they will look to a user editing the electronic form or with other graphics or icons. See, for example, the domestic-address and international-address data-entry fields shown in  FIGS. 3 and 5 , respectively. 
   Responsive to these selections, the design application builds these mutually exclusive options into the electronic form at block  610 . In so doing, the design application may generate information capable of instructing a runtime application in how to perform editing for the mutually exclusive options. Continuing the illustrated embodiment, the design application alters schema  126  to permit either of the mutually exclusive options chosen, but not both at once. To do so, the design application may add the following to the schema: 
   
     
       
         
             
             
           
             
                 
                 
             
           
          
             
                 
               &lt;xsd:element name=“group1” 
             
             
                 
                &lt;xsd:complextype&gt; 
             
          
         
         
             
             
          
             
                 
                &lt;xsd:choice &gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:element name=“group2”&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:sequence&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:sequence&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
                &lt;/xsd:element&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:element name=“group3”&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
                &lt;xsd:sequence&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:sequence&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:element&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:choice&gt; 
             
          
         
         
             
             
          
             
                 
                &lt;/xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:element&gt; 
             
             
                 
                 
             
          
         
       
     
   
   In this embodiment, “group 1 ” represents the option container, “group 2 ” the domestic-address option, and the “group 3 ” the international-address option. 
   If, however, a form designer places a repeating mutually exclusive option container in the form-design area, the following can be added to the schema: 
   
     
       
         
             
             
           
             
                 
                 
             
           
          
             
                 
               &lt;xsd:element name=“group1” 
             
             
                 
                &lt;xsd:complextype&gt; 
             
          
         
         
             
             
          
             
                 
                &lt;xsd:choice maxOccurs=“unbounded”&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:element name=“group2”&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:sequence&gt; 
             
             
                 
               &lt;/xsd:sequence&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
                &lt;/xsd:element&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:element name=“group3”&gt; 
             
          
         
         
             
             
          
             
                 
                &lt;xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;xsd:sequence&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:sequence&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:element&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:choice&gt; 
             
          
         
         
             
             
          
             
                 
                &lt;/xsd:complexType&gt; 
             
          
         
         
             
             
          
             
                 
               &lt;/xsd:element&gt; 
             
             
                 
                 
             
          
         
       
     
   
   Consider, for example, repeating mutually exclusive options for legs of a business trip. If a trip can have an arbitrary number of legs (some trips may involve a lot of travel and stops) each of which is mutually exclusive, repeating these options to an arbitrary length can be very useful to a user of an electronic form. Assume that a user wishes to enter her trip from Seattle to Spokane, then to Boise, and back again. If a form designer chose three mutually exclusive options for each leg to be in the electronic form, the form could have options of: air; car; and hotel. Thus, for a first leg, if each leg defaults to air travel, the user may simple enter her flight to Spokane. For the second leg, she may swap the air option for a hotel option and enter her stay in a Spokane hotel. For the next leg, she may swap the air option for a car rental and enter the rental company, car model and so forth. For the next leg, assume she stays in a Boise hotel and so swaps the air default for a hotel option. For the last leg, she flies back to Seattle and so enters her airline carrier and related details. 
   By enabling a form designer to build a repeating set of mutually exclusive options, the tools enable creation of an electronic form that permits a heterogeneous list of arbitrary length or as long as permitted by the schema. And, each entry of this list may be one of the set of mutually exclusive options. In the ongoing example, this list may comprise an air mutually exclusive option followed by a hotel mutually exclusive option, a car mutually exclusive option, another hotel mutually exclusive option, and another air mutually exclusive option. The form view of this list could show corresponding sets of data-entry fields for each mutually exclusive option in the list, thereby enabling the user to enter information for each leg of her trip. 
   The result of a form designer&#39;s graphical selection of this repeating set of mutually exclusive options is set forth in  FIG. 9 . There, the form-design area  700  shows a graphical selection of three options placed within option area  902  of repeating container  904  (labeled “Repeating Choice Group”). These options are an air travel mutually exclusive option  906 , a car travel mutually exclusive option  908 , and a hotel mutually exclusive option  910 . Each of these mutually exclusive options may be represented by data-entry fields mirroring how they will look to a user editing the electronic form or with other graphics or icons. 
   CONCLUSION 
   The above-described systems and methods enable creation and/or use of an electronic form capable of allowing a user to select from mutually exclusive options without the electronic form being in an invalid state. Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed invention.