Abstract:
A system and method for graphically generating a user interface using software, the software generating a user interface display having a first, second and third area, and including selecting an element to include in the user interface from the first area, determining if the selected element is a common element or a specific element, generating code based on the determination, wherein information associated with the generated code is displayed in the second area, and testing the generated code is performed in the third area.

Description:
RELATED APPLICATIONS  
       [0001]    The present application is related to commonly assigned U.S. patent application Ser. No. [Attorney Docket No. 100200590-1] entitled “CREATION OF USER INTERFACES FOR MULTIPLE DEVICES,” and U.S. patent application Ser. No. [Attorney Docket No. 100200597-1] entitled “USER INTERFACE DESIGN AND VALIDATION INCLUDING DYNAMIC DATA,” filed concurrently herewith, the disclosures of which are hereby incorporated by reference in their entireties. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates to developing software applications for mobile devices and, more specifically, to the graphic user interface (“GUI”) for software applications.  
         BACKGROUND  
         [0003]    Mobile devices, such as cellular phones, two-way pagers, radio telephones, PDAs and/or other wireless devices, are quickly becoming popular in many countries around the world. Unfortunately, mobile devices have hardware restrictions (e.g., limited memory, limited storage capabilities, small display screens and restricted input methods). Moreover, different mobile device may have different screen sizes, font, styles and size (if provided for at all), image display capabilities and colors. As a result, developers creating applications for mobile devices must use different markup languages to create a User Interface (UI) appropriate for each mobile device. Currently, there are various methods for a mobile application developer to design a user interface for a mobile application using WML or CHTML. Other markup languages, including XHTML and pocket HTML, may also be used. Some examples follow.  
           [0004]    In one mobile application development system, a Graphical User Interface (GUI) tool is not used. This type of development system relies a text editor to create the User Interface (UI) of the mobile application system. The developer must know the correct syntax of both WML and CHTML markup languages and the correct tag placement to develop a UI for both markup languages.  
           [0005]    In another mobile application development system, a GUI tool may be used to create the UI. A GUI tool hides markup language programming specifics (e.g., tags) from the developer so that a developer may avoid learning syntax and code for that particular markup language. For example, the ICONVERSE® GUI tool enables a mobile application developer to create, using the GUI tool, UI portions of mobile applications without knowing the tag syntax for the specific languages.  
           [0006]    The above-mentioned mobile application design methods are inflexible since they do not allow developers to design and customize applications in multiple markup languages. A developer may want to redesign a UI for each different mobile device. It is desirable to design a single UI for multiple mobile devices.  
         SUMMARY OF THE INVENTION  
         [0007]    A system and method for graphically generating a user interface using software, the software generating a user interface display having a first, second and third area, and including selecting an element to include in the user interface from the first area, determining if the selected element is a common element or a specific element, generating code based on the determination, wherein information associated with the generated code is displayed in the second area, and testing the generated code is performed in the third area. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]    [0008]FIG. 1 is a block diagram of an embodiment of a system for generating a user interface consistent with an embodiment of the present invention;  
         [0009]    [0009]FIG. 2 shows a flow chart or a method of generating a user interface according to an embodiment of the present invention;  
         [0010]    [0010]FIG. 3A is an exemplary screen shot of a dialog box generated by initialization of the system shown in FIG. 1;  
         [0011]    [0011]FIG. 3B is an exemplary screen shot of a user interface display generated by the software shown in FIG. 1; and  
         [0012]    [0012]FIG. 4 is a flow chart of a method for generating both WML and CHTML UIs according to an embodiment of the present invention.  
     
    
     DETAILED DESCRIPTION  
       [0013]    One type of markup language mobile application developers use is the Wireless Markup Language (WML). WML is designed for mobile devices with small screens and one-hand navigation without a keyboard. WML is scalable from two-line text displays up through graphic screens found on mobile devices, such as smart phones and communicators. Specifications that use WML, such as the Wireless Access Protocol (WAP) specification, are primarily used in the United States. WAP allows users to access information via mobile devices. WAP-enabled mobile devices use graphical displays and enable users to access the Internet using a microbrowser (a browser that can accommodate the limited memory and low bandwidth constraints of wireless devices).  
         [0014]    A second type of markup language mobile application developers use is the Compact Hypertext Markup Language (CHTML). CHTML is a simpler form of Hypertext Markup Language (HTML) and may be used on mobile devices with limited hardware and software restrictions. CHTML does not support tables, events, timers or templates. Services, such as the I-MODE® service available from NTT DoCoMo, use CHTML. I-MODE® enables a user to receive multimedia services, access information (e.g., stock tickers, weather, traffic information) and communicate with other users (e.g., e-mail or a real time communications, such as instant messenger).  
         [0015]    Both WML and CHTML use “tags” to mark a section of a document with a formatting command. The tags enable a wireless application developer to indicate the beginning of a new section. For example, to include a title tag using CHTML, a developer may include “&lt;TITLE&gt;TITLE OF APPLICATION&lt;/TITLE&gt;” as part of the CHTML code. Each markup language has its own set of rules to implement tags.  
         [0016]    WML and CHTML have different nuances and capabilities. A wireless application developer that develops an application that works in both Japan and the United States needs to create the application using both WML and CHTML markup languages (for WAP and I-MODE®, respectively). Even so, not all tags are available in WML and CHTML. For example, WML provides a “table” concept that allows a mobile application developer to define a table in terms of rows and columns. CHTML does not provide a “table” construct.  
         [0017]    Generally, there are two parts to every mobile application. The presentation layer part of the UI also known as the “front-end” and the “processing” part of the UI, also known as the “back-end.” The example of a mobile application allows a user to locate books based on location, the front-end may be the text displayed on the mobile device screen. The front ends also provides multiple screens, such as the title screen of the application (e.g., “Bookstore Application”), the zipcode input box screen (e.g., “Enter current zipcode”) and the selectable list of bookstores screen. Each screen may also include multiple elements. An element is a particular aspect or component of the UI, such as check boxes, radio buttons, lists or any other information to be included and displayed to the user in the UI.  
         [0018]    In the above-identified example, the back-end may refer to JAVA® Server Pages (JSP) that process information received from the front-end that queries remote databases for bookstore information. The back-end may receive information from a remote database and forward the information to the front-end for display (e.g., a list of selectable restaurants).  
         [0019]    An embodiment consistent with the present invention provides software to develop a mobile application for mobile devices that are programmed by different markup languages, such as CHTML, WML or HTML. The software enables a mobile application developer to design a single UI interface capable of running on multiple mobile platforms and devices. To do so, a mobile application developer may drag and drop UI elements from a UI element “palette” section to a project view section of the software. The palette may include a list of elements available to display in the UI. For example, an element may be a checkbox, choice box or radio button. The software may automatically generate WML, CHTML or HTML code based on the selected UI element. The software also contains an embedded simulator area where a mobile application developer may validate and test the generated WML, CHTML, or HTML code. It will be understood that the software may use an embedded simulator, an integrated simulator or an external simulator to validate and test the generated code.  
         [0020]    WML and CHTML differ in both capability and in syntax. If the mobile application developer wants to place a “submit button” element in the UI for both a CHTML mobile device and a WML mobile device, the code that is ultimately generated may be different. For example, the code to place a submit button element in WML code may be:  
                                                                       &lt;do label = “label” type =“accept”                &lt;go method=“post” href=“url”&gt;           &lt;/go&gt;                &lt;do&gt;                      
 
         [0021]    The code to place a submit button element in cHTML code may be:  
                                                   &lt;FORM method=“post” action=“url”&gt;           &lt;INPUT type = “submit” value = “label”&gt; &lt;BR&gt;           &lt;/FORM&gt;                      
 
         [0022]    Some elements available in WML are not available in cHTML (or vice versa). For example, WML includes a “table” element that displays a table in terms of rows and column in the UI. CHTML is not able to interpret the “table” element. Also, for example, cHTML includes a “checkbox” element that displays a checkbox in the UI. In such cases, an embodiment of the present invention transforms code associated with elements that are not available in one language into code of another language to simulate the missing equivalent construct or provide a substitute. For example, in WML a table may be represented as follows:  
                                                                       &lt;table align = “alignment” columns = “columnCnt”/&gt;           &lt;tr&gt;                &lt;td&gt;“text1”&lt;/td&gt;           &lt;td&gt;“text2”&lt;/td&gt;                &lt;/tr&gt;           &lt;/table&gt;                      
 
         [0023]    The transformed code in CHTML may be:  
                                                   &lt;P align=“alignment”&gt;           “text1” “text2” &lt;BR&gt;           &lt;/P&gt;                      
 
         [0024]    The transformation code may be stored in a database. As more elements are created in WML and/or CHTML, more elements may be transformed and stored in the database. Additional examples of generated code and transformed code may be found in Appendix A attached hereto.  
         [0025]    [0025]FIG. 1 is a block diagram of computer  100  suitable for practicing methods and systems consistent with an embodiment of the present invention for use by a mobile application developer. Computer  100  may be a suitable Personal Computer (PC) or workstation capable of storing and executing program code consistent with the present embodiment. Thus, computer  100  includes memory  101 , secondary storage device  103 , CPU  105 , video display  106  and input/output device  107 . Memory  101  has stored therein software  102 , that generates and transforms WML and CHTML code to create UIs for various mobile devices based on UI elements. Generated code as used herein is code that is associated with an element in a markup language. Transformed code is code that is generated by software  102  to simulate an element in a markup language. The transformed code may be generated by software  102  based on a dictionary of generated code referencing corresponding transformed code as stored in a database. The stored transformed code may be created by a mobile application developer to simulate a particular construct missing from a target markup language. Software  102  also enables a mobile application developer to immediately simulate code in an mobile device simulator. The mobile device simulator may be an embedded simulator, an integrated simulator or an external simulator.  
         [0026]    Secondary storage device  103  may include database  104  that may store code and code transformations associated with each UI element and each markup language. For example, database  104  may include WML code and CHTML code that displays text on a UI. Database  104  may also include transformed code. For example, database  104  may store WML code to create a table and together with the corresponding transformed CHTML code. Input/output device  107  may be a keyboard, mouse or other input or output device.  
         [0027]    [0027]FIG. 2 is a flow chart consistent with one embodiment of the present invention. In Step  201 , software  102  may be initiated, for example, by “double-clicking” (using a mouse) on an icon associated with software  102  or typing in the software name from a command line. Note that software  102  may be initiated using other methods, such as automatically executing the software during computer  100 s startup sequence.  
         [0028]    [0028]FIG. 3A is an exemplary view of a screen display generated by software  102  once it has been initialized. In FIG. 3A, a mobile application developer may initiate a new project and select the types of mobile devices that the developer will create a UI. Dialog box  301  includes fields to specify a project name, a project directory, a device category and device targets. The device category includes a list of markup languages, such as WML, or CHTML, for which software  102  will generate code. The “selected devices” menu includes a list of mobile devices or targets on which code may be simulated.  
         [0029]    Once the mobile application developer selects the mobile device targets from dialog box  301 , the developer may use software  102  to create and design a UI for all selected mobile devices (step  202 ). FIG. 3B is an exemplary view of a design user interface display generated by software  102  during the design mode of step  202 . UI palette  302  enables a developer to chose different UI elements to place in working space  303 . Palette  302  may include different types of UI elements, such as action elements, input elements, display elements and markup language unique or specific elements. Action elements are elements that allow a user to submit data to a back-end system, such as, for example a “submit data” element. Action elements may also be links between display pages and/or cards. Input elements are elements that allow a user to select items, such as, for example, check boxes, radio boxes or yes/no dialog boxes. Display elements are elements that display data in the UI, such as, for example, text display, list display, tables or labels. Specific elements are elements that are available only for a particular markup language, such as the “event,” “template” or “timer” elements, which are WML-specific elements, and the “blink” and “marquee” elements which are CHTML-specific elements. The code associated with specific elements are unique to a markup language and may not be directly transformed into a different markup language since the functionality of a specific element is available only in one markup language.  
         [0030]    Working space  303  includes project tree area  304  and property panel area  305 . Information associated with generated code and transformed code may be displayed in working space  303 , such as property information, identification information, or markup language syntax. A developer may use project tree area  304  to place UI elements that are dragged from UI palette  302 . A developer may use property panel area  305  to specify additional information (e.g., properties) for each UI element placed in the project tree area (e.g., title to be displayed on the screen or width of element). An embedded, integrated or external simulator may be used to simulate how generated (and transformed) code will function on a mobile device. The simulator enables a developer to see in real time via output box  306  what the UI will look like on a particular mobile device. That is, output box  306  may show the output generated by the simulator. The developer may select a particular simulator from a selection of mobile devices in list box  307  (e.g., select WML simulator for a WML enabled mobile device). This enables a developer to simulate UIs on different mobile devices. Note that where an embedded simulator is discussed herein, external or integrated simulators may also be used.  
         [0031]    In one embodiment of the present invention, a mobile application developer may “drag” an element from UI palette  302  and “drop” the selected element in project area  304 . The “drag and drop” allows a developer to design a UI of the mobile application. For example, in creating a title for a bookstore mobile application, the developer may take a title element and drag it to project area  304 . The developer may then type “bookstore” in property panel area  305  associated with title element. In creating a page displaying a list of bookstores in a specified area in the UI, the developer may select a list box element and drag the list box element to project area  304 . The developer may also associate additional information with the list element placed in property panel area  305 . In doing so, the generated CHTML code and the transformed WML code for the list box element may be modified to include the additional information. For example, the developer may enter in parameters for the list element in property panel area  305 .  
         [0032]    As the mobile application developer adds UI elements to working space  303 , the developer may test the UI with an embedded simulator (step  203 ). Software  102  may display the results of the simulation in output box  306 . Once the UI is tested with an embedded simulator, mobile application developer may update the UI as necessary (step  204 ), for example, to further modify the UI by adding, deleting or changing the elements in project area  304  or property panel area  305 .  
         [0033]    [0033]FIG. 4 is a flow chart consistent with an embodiment of the present invention wherein software  102  generates and/or transforms WML and CHTML code. First, software  102  receives a selected UI element in project area  304  (step  401 ). For example, a mobile application developer may select a “check box” UI element to be included in the UI of a mobile application. The developer may drag and drop the selected UI element into project area  304 . Next, software  102  determines if the selected element is a common element or a specific element (WML element or CHTML element) (step  402 ). A common element is an element with code applicable to multiple markup languages (e.g, WML and CHTML). Software  102  may query database  104  to obtain the element&#39;s properties. If the element&#39;s properties indicate that the element is a common element, then software  102  may generate and/or transform the WML and the CHTML code, as necessary. (step  403 ). Software  102  may query database  104  and obtain the WML and CHTML code associated with the common element. If the selected element is not a common element (step  402 ), software  102  may determine if the selected element is a specific WML element or a specific CHTML element. If the element is a specific WML element, then software  102  generates WML code (step  404 ). Software  102  may query database  104  and obtain the generated WML code. Alternatively, if the selected element is a specific CHTML element, then software  102  may generate CHTML code (step  405 ).  
         [0034]    Appendix A: Common Element Description  
         [0035]    All attributes in elements are visible and can be modified by the viewer except the ID attribute and the element counters in the Project Element.  
         [0036]    In general, use alpha/numeric characters for attribute definitions since using special characters in attribute entry fields (e.g. &amp;, %, “, $, etc.) may not render consistently or correctly between simulators. For example, a button label like “&amp;myLabel” will cause an error in the microbrowser of a WML device. Exceptions will be noted for specific attributes in the attribute tables below.  
         [0037]    The WML and cHTML transformation may show “bounding” tags like &lt;BODY&gt; in cHTML to show tag containership. In the example of cHTML when the markup is actually generated there would not be multiple &lt;BODY&gt; tags within a single card.  
         [0038]    To update Dynamic Data Source attributes in the elements below, the developer can either:  
         [0039]    1) Enter the XML schema information directly into the Dynamic Data Source attribute field in the Attribute Panel.  
         [0040]    2) Drag and Drop (DnD) the data item from the Content Source View onto the smart element icon in the Project View. mBuilder will automatically update the attribute. If there are multiple Dynamic Data attributes in a single element (see “menu” element section below) the developer will have to set the xpath directly in the Property Panel.  
         [0041]    1. &lt;button&gt; 
         [0042]    Description: This element is used to define a button. For action=“submit”, a &lt;button&gt; can contain one or more Server Parameter elements. A &lt;button&gt; can be contained in a &lt;card&gt; 
         [0043]    When Used: A button is used to invoke the action specified. For example, to send user input from the device to the server, the developer would provide a button with Action Type=“submit”.  
         [0044]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this Element Label associated with this button           element in the Project View panel of mBuilder.       Button Label   Label displayed to the user for this button.           Note: label should not exceed 6 characters or it may not           display.       ButtonType   REQUIRED: Specifies the action to be invoked. Valid           options: submit|reset|prev|next. Default: submit.           Note: If the “submit” type is specified, all input           variables contained in the card will be sent to the server.           To send additional variables from other cards within the           same deck, use the ServerParameter element.           Note: If the “reset” type is specified all input items are           cleared.           Note: For cHTML the “prev” option is not supported.       Hyperlink   REQUIRED: Holds the URL the browser should be           redirected to if a “submit” or “next” action is specified in           the “action” attribute.                  
 
         [0045]    WML transformation  
                                                                                                                                                                                                                                     1)   If the “submit” action is specified the WML translation will include the                &lt;postfield&gt; tags needed to transmit variable information for the card to           the server.           Note:           &lt;do label = “label” type = “accept”&gt;                &lt;go method=“post” href =“url”&gt;           &lt;postfield name=“name” value=“value”/&gt;           ......                &lt;/go&gt;                &lt;/do&gt;            Note:   Since &lt;menu&gt; is a list of links, there is no need to send this variable                value to the server.            2)   If the “next” action is specified:           &lt;do label = “label” type = “options 1”&gt;           &lt;go href = “url”/&gt;                &lt;go/&gt;                &lt;/do&gt;            3)   If the “prev” action is specified with no url:           &lt;do label = “label” type = “prev”&gt;                &lt;prev/&gt;                &lt;/do&gt;            4)   If the “prev” action is specified with url:           &lt;do label = “label” type = “prev”&gt;           &lt;go href = “url”/&gt;                &lt;go/&gt;                &lt;do&gt;            5)   If the reset” action is specified all input variables in the card are           cleared:           &lt;do label = “label” type = “reset”&gt;           &lt;refresh&gt;                &lt;setvar name=“variable1” value” “/&gt;                ....                &lt;/refresh&gt;           &lt;/do&gt;                      
 
         [0046]    cHTML transformation  
                                             1)   If the “submit” action has been specified:       Note:   Intially, there will be one &lt;FORM&gt; created per card. The “url”           specified in the &lt;button&gt; attribute will be used by the cHTML           &lt;FORM&gt;tag.           &lt;FORM method=“post” action = “url”&gt;           &lt;INPUT type = “submit”value = “label”&gt; &lt;BR&gt;           &lt;/FORM&gt;       2)   If the “reset” action has been specified:           &lt;INPUT type = “reset” value = “label”&gt; &lt;BR&gt;       3)   If the “next” action was specified, a link can be created.           &lt;A href= “url”&gt;“label”&lt;/A&gt;&lt;BR&gt;       Note:   If the “prev” action was specified, no cHTML code will be            generated. The user can either “scroll up” on his iMODE device to see the previous page, or       use the “back” hotkey on his iMODE device to go to the previous URL.                  
 
         [0047]    2. 2. &lt;card&gt; 
         [0048]    Description: This element is used to store card level information. One or more of the all of the common elements defined for mBuilder can optionally be contained within a card except for &lt;deck&gt;, &lt;listItem&gt;, &lt;menuItem&gt;, &lt;radioButton&gt;, &lt;checkbox&gt;, &lt;serverParmater&gt;. If WML specific elements are being used (see Appendix B), an &lt;event&gt; or a single WML &lt;timer&gt; element can be contained per &lt;card&gt;. One or more &lt;card&gt; elements can be contained in a deck.  
         [0049]    Card ID and Element Label should be the same, and both should not be empty. If the value of either one changes, the other should be updated to reflect the change.  
         [0050]    When Used: A card is used to receive input, or display data to the user.  
         [0051]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this card element in the           Project View panel of mBuilder       Card ID   REQUIRED: Card ID can be referenced within a url           attribute to redirect the browser to this card for           navigation purposes.       Title   The text in this field is displayed as a title for the page           created.           Note: not all WAP devices will display this title.                  
 
         [0052]    WML transformation  
                                                                                                     &lt;card id = “cardID” title = “title”&gt;                ......                &lt;/card&gt;                cHTML transformation           &lt;FORM&gt;                ......                &lt;H1&gt;&lt;A name=“cardID”&gt;“title”&lt;/A&gt;&lt;/H1&gt;           &lt;/FORM&gt;                      
 
         [0053]    3. &lt;checkbox&gt; 
         [0054]    Description: This element is used to define a &lt;checkbox&gt; item. To dynamically display a list of checkboxes to the user, use &lt;checkboxGroup&gt;.  
         [0055]    Note:  
         [0056]    1) For cHTML, an actual “checkbox” is visible to the user with this element. Since WML does not implement a checkbox, only the title is displayed for each selection in most simulators.  
         [0057]    2) &lt;checkbox&gt; must be contained with a &lt;checkboxGroup&gt;, and zero or more &lt;checkbox&gt; elements can be contained in a &lt;checkboxGroup&gt;.  
         [0058]    3) Title and Element Label should be the same, and both should not be empty. If the value of either one changes, the other should be updated to reflect the change.  
         [0059]    When Used: Checkbox should be used if:  
         [0060]    1) The UI presented to the developer should visually look like a checkbox vs. a multiple list selection.  
         [0061]    2) The user is allowed to select one or more item from the items available in the &lt;checkboxGroup&gt;.  
         [0062]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this element in the           Project View panel of mBuilder.       Title   REQUIRED: Text to be displayed for this checkbox           element.       Checked   Indicates whether the &lt;checkbox&gt; is selected. Valid           options: true|false. Default: false       Return Value   Value to be stored in “Variable Name” attribute of this           checkbox&#39;s checkboxGroup if this checkbox is selected.                  
 
         [0063]    WML transformation  
                                                                       &lt;option value = “value”&gt;“title”&lt;/option&gt;                cHTML transformation                see &lt;checkboxGroup&gt; for transformation.                      
 
         [0064]    4. &lt;checkboxGroup&gt; 
         [0065]    Description: This element is used as a container for zero or more &lt;checkbox&gt; elements. This element is used if the user is allowed to select one or more items from the group of items displayed. To dynamically display a group of checkboxes to the user, store the Xpath for the text/value pairs of the checkboxes to be displayed in the Dynamic attributes described below.  
         [0066]    Nothing is displayed on the Simulator for a checkboxGroup element. Only static data stored in &lt;checkbox&gt; elements are displayed. To validate how dynamic data is displayed, use sample data in &lt;checkbox&gt; elements contained in a &lt;checkboxGroup&gt;. This static data will not be displayed at runtime.  
         [0067]    When Used: checkboxGroup should be used if:  
         [0068]    1) The UI presented to the developer should visually look like a checkbox vs. a multiple list selection. Note: for WML, checkbox elements may be rendered as a multiple selection list on some devices. To allow for the same “look and feel” on both WML and cHTML devices please refer to the ChoiceBoxGroup element definition.  
         [0069]    2) The user is allowed to select one or more item from the items available in the &lt;checkboxGroup&gt;.  
         [0070]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this element in the           Project View panel of miBuilder.       Variable Name   REQUIRED: Name to store the selected &lt;checkbox&gt;           “Return Value” in. Default: aName       Dynamic Text   If a group of checkboxes are to be dynamically       Source   displayed, this attribute holds the xpath (schema) of the           “Title” attribute for each checkbox to be displayed.           Note: If this attribute has been filled, static data in the           checkbox elements contained in this will be visible in the           Smart Canvas for UI validation, but will not be seen at           runtime.       Dynamic Value   Holds the xpath (schema) of the “Return Value” attribute       Source   if a group of checkboxes are to be dynamically supplied.           Note: If this attribute has been filled, static data in the           checkbox elements contained in this will be visible in the           Smart Canvas for UI validation, but will not be seen at           runtime.                  
 
         [0071]    WML transformation  
         [0072]    For WML all &lt;checkbox&gt; elements must be contained within the same &lt;select&gt; tag. A &lt;checkbox&gt; transformation (i.e. WML &lt;option&gt; tag) is included in the transformation below for completeness. “value” should have the same value as that of the selected &lt;checkbox&gt;s. The “multiple” tag attribute is “true”.  
                                                   &lt;select name = “name” ivalue= “[index of the selected &lt;checkbox&gt;s       separated by semicolon]” multiple=“true”&gt;       &lt;option value = “value”&gt;“title”&lt;/option&gt;                .....            &lt;/select&gt;                  
 
         [0073]    cHTML transformation  
         [0074]    For cHTML all &lt;checkbox&gt; elements will be contained within the same &lt;FORM&gt; tag which was generated at the &lt;card&gt; level. Note: The same “name” value taken from the “name” attribute in &lt;checkboxGroup&gt; is used for every &lt;checkbox&gt; transformation.  
         [0075]    The cHTML “checked” attribute is only used for the cHTML &lt;INPUT&gt; transformation whose “checked” attribute is “true”.  
                                                   &lt;INPUT  type   =“checkbox”  name=“name”  value=“value”           checked&gt;“title”&lt;BR&gt;                      
 
         [0076]    5. &lt;choicebox&gt; 
         [0077]    Description: This element is used define a choice box item. To dynamically display a list of choiceboxes to the user, use &lt;choiceboxGroup&gt;.  
         [0078]    Note:  
         [0079]    1) &lt;choicebox&gt; must be contained within a &lt;choiceboxGroup&gt; 
         [0080]    2) Title and Element Label should be the same, and both should not be empty. If the value of either one changes, the other should be updated to reflect the change.  
         [0081]    When Used: Choicebox should be used if: The UI presented to the developer should visually look similar in both WML and cHTML displays. The rendering will typically look like a multiple list selection.  
         [0082]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this choicebox element           in the Project View panel of mBuilder.       Title   REQUIRED: Text to be displayed for this choicebox           element.       Return Value   Value to be stored in “Variable Name” attribute of this           choicebox&#39;s choiceboxGroup if this item is selected.                  
 
         [0083]    WML transformation  
                                                   &lt;option value = “value”&gt;“title”&lt;/option&gt;                      
 
         [0084]    cHTML transformation  
         [0085]    Note: the cHTML key word “selected” used below is only used on the &lt;choicebox&gt; whose “value” attribute matches the value of the “default” attribute specified in this &lt;choicebox&gt;&#39;s corresponding &lt;choiceboxGroup&gt; element.  
                                                   &lt;OPTION value =“value” selected&gt;“title”                      
 
         [0086]    6. &lt;choiceboxGroup&gt; 
         [0087]    Description: This element is used as a container for one or more &lt;choicebox&gt; elements. To dynamically display a group of choice boxes to the user, store the Xpath for the title/value pairs of the checkboxes to be displayed in the Dynamic attributes described below.  
         [0088]    Note: Nothing is displayed on the Simulator for a choiceboxGroup element.  
         [0089]    Only static data stored in &lt;choicebox&gt; elements are displayed. To validate how dynamic data is displayed, use sample data in &lt;choicebox&gt; elements contained in a &lt;choiceboxGroup&gt;. This static data will not be displayed at runtime.  
         [0090]    When Used: choiceboxGroup should be used if: The UI presented to the developer should visually look similar on most WML and cHTML devices.  
         [0091]    (Typically a multiple selection list). A choiceboxGroup can be defined to allow only one selection, or multiple selections by using the “Allow Multiple” attribute.  
         [0092]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this choiceboxGroup           element in the Project View panel of mBuilder.       Variable Name   REQUIRED: Name to store the selected &lt;choicebox&gt;           “value” in. Default: aName       Display Size   Represents the drop down menu size for cHTML.           Ignored for WML. Valid values are empty or any           number. Default: empty.       Default   Holds the initial selection of &lt;choicebox&gt; elements when       Selection   this &lt;choiceboxGroup&gt; is first displayed. Valid values:           empty, any number, or any number separated by           semicolon. Default: 1       Allow Multiple   Indicates whether multiple &lt;choicebox&gt; elements can be           selected.           Valid options: true|false. Default: true           NOTE: If multiple selections are allowed, multiple           “values” separated by a “;” from the selected           &lt;ChoiceBox&gt;s will be stored in the “name” attribute of           &lt;ChoiceBoxGroup&gt;.       Dynamic Text   Holds the xpath (schema) of the Title attribute for those       Source   choiceboxes to be dynamically displayed with this           choiceboxGroup.           NOTE: If this attribute has been filled, static data in the           choicebox elements contained in this will be visible in           the Smart Canvas for UI validation, but will not be seen           at runtime.       Dynamic Value   Holds the xpath (schema) of the Return Value attribute of       Source   choiceboxes to dynamically displayed with this           choiceboxGroup.           NOTE: If this attribute has been filled, static data in the           choicebox elements contained in this will be visible in           the Smart Canvas for UI validation, but will not be seen           at runtime.                  
 
         [0093]    WML transformation  
         [0094]    All &lt;choicebox&gt; elements must be contained within the same &lt;select&gt; tag. A &lt;choicebox&gt; transformation (i.e. WML &lt;option&gt; tag) is included in the transformation below for completeness. If “Allow Multiple” is not selected, don&#39;t include ‘multiple=false’ because that&#39;s the default behavior.  
                                                                       &lt;select name = “name” ivalue=“default” multiple = “multiple”&gt;           &lt;option value = “value”&gt;“title”&lt;/option&gt;                .....                &lt;/select&gt;                      
 
         [0095]    cHTML transformation  
         [0096]    All &lt;choicebox&gt; elements must be contained within the same &lt;select&gt; tag. If displaySize is not empty, include the “size” attribute, otherwise don&#39;t include it. If there are ten elements in the &lt;choiceboxGroup&gt;, and the size is set to  3 , on the cHTML browser, you will get a list with 3 items displayed and a scrollbar to see more elements. This is very space-conscious when the page has many items. Note: Add “selected” attribute in the &lt;option&gt; tag if the &lt;choicebox&gt; is selected according to the value in the “Default Selection” attribute of the &lt;choiceboxGroup&gt;. Also, the cHTML “multiple” keyword is only used if the “multiple” attribute is set to “true”. A &lt;choicebox&gt; transformation (i.e. &lt;option&gt; tag) is included in the transformation below for completeness.  
                                                                       &lt;SELECT name=“name” size=“displaySize”  multiple &gt;                &lt;OPTION value =“value” selected&gt;“title”           ....                &lt;/SELECT&gt;                      
 
         [0097]    7. &lt;deck&gt; 
         [0098]    Description: This element is used to store information that pertains to all of the cards in this deck. One or more cards can be contained within a deck. For WML, a deck and its cards are separate, but related entities. cHTML, deck and card information for all cards in the deck are represented by a single cHTML page. For WML only, a “template” element can optionally be contained in a deck. See Appendix B for more information. One or more &lt;card&gt; elements can be contained per deck, but it is suggested the developer not define too many cards per deck due to the limited memory capacity of WAP and IMODE devices.  
         [0099]    When Used: A deck is used to group associated cards together. Cards are usually grouped if they can operate independently from the server within the deck.  
         [0100]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this deck element in           the Project View panel of mBuilder.       HTTP Header   Property name specified as an HTTP header.       Name       HTTP Header   Property value for the property specified in the httpEquiv       Value   attribute.       Base Path   Designates a URL as the base path to use if an explicit           URL is not specified: This attribute is ignored in WML.       Access Domain   Holds the domain suffix of allowed referring pages.           Default is the current deck&#39;s domain. This attribute is           ignored in cHTML.       Content Source   Holds the content source (i.e. sample XML file) for this           deck.           Note: Not provided in Beta Release. Do not document.                  
 
         [0101]    Note: the examples below assumes a single entry for both “httpEquiv” and “accessDomain” attributes. If multiple entrys are allowed by mBuilder from the developer, separate &lt;meta&gt; and &lt;access&gt; tags will have to generated per item.  
         [0102]    WML transformation  
                                                   &lt;wml&gt;           &lt;head&gt;           &lt;meta content = “headerValue” http-equiv=“headerName” /&gt;           &lt;access domain = “accessDomain” /&gt;           &lt;/head&gt;           &lt;/wml&gt;                      
 
         [0103]    cHTML transformation  
                                                   &lt;HTML&gt;           &lt;HEAD&gt;           &lt;BASE href=“basePath”&gt;           &lt;/HEAD&gt;           &lt;BODY&gt;           &lt;META http-equiv=“headerName” content=“headerValue”&gt;           &lt;/BODY&gt;           &lt;/HTML&gt;                      
 
         [0104]    8. &lt;hiddenVariable&gt; 
         [0105]    Description: This element is used to specify a &lt;hiddenVariable&gt; to be sent to the server. The name and value of a hidden variable can be specified dynamically by storing the Xpath for the name and value in the Dynamic Data attributes defined below.  
         [0106]    Note:  
         [0107]    1) A &lt;hiddenVariable&gt; element must be contained in a &lt;card&gt; element. Multiple &lt;hiddenVariable&gt; elements can be contained within a single &lt;card&gt;.  
         [0108]    2) A &lt;hiddenVariable&gt; should be inserted before any non-event element within a &lt;card&gt;, i.e. &lt;event&gt; (VWL-specific element&gt; and &lt;hiddenVariable&gt; have higher precedence over other elements.  
         [0109]    When Used: A hidden variable is used if the developer does not want the variable or its value to be visible to user. An example of a hidden variable might be a cookie or another form of user id.  
         [0110]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this element in the           Project View panel of mBuilder.       Variable Name   REQUIRED: Name of variable to be passed to server.           Default: aName       Return Value   REQUIRED: Value to be assigned to “Variable Name”           attribute when passed to server. Default: aValue           NOTE: For WML devices, the name of the variable           stored in the “Variable Name” attribute of           &lt;hiddenVariable&gt; can also be stored in this “Return           Value” attribute. If this is done, the server will receive a           name/value pair which contains the Variable Name, and           the contents of the Variable Name. This type of           functionality is not supported on cHTML. For cHTML,           the name/value pair sent to the server will be Variable           Name and Variable Name.       Dynamic Value   Holds the xpath (schema) of the “Return Value”       Source   attribute.           NOTE: If this attribute has been filled data stored in the           Return Value attribute will not be used at runtime.                  
 
         [0111]    WML transformation  
         [0112]    1. A WML “onenterforward” intrinsic event with &lt;refresh&gt; task type will be generated for all the &lt;hiddenVariable&gt; elements within a &lt;card&gt;. A &lt;setvar&gt; tag will be generated for each &lt;hiddenVariable&gt;. If the &lt;card&gt; element which contains the &lt;hiddenVariable&gt; also contains a &lt;button&gt; with attribute type=“submit”, a &lt;postfield&gt; will be embedded within the &lt;go&gt; tag generated for the &lt;button&gt; element, otherwise the &lt;hiddenVariable&gt; is ignored. The translation below includes the &lt;button&gt; translation for completeness. See the &lt;button&gt; element description for more information.  
                                                                                           &lt;onevent type=“onenterforward”&gt;                &lt;refresh&gt;                &lt;setvar name=“name” value=“value”&gt;           &lt;setvar name=“name1” value=“value1”/&gt;                &lt;/refresh&gt;                &lt;/onevent&gt;                      
 
         [0113]    If there is a “submit” button, we will add the following extra transformation.  
                                                                       &lt;do label = “label” type = “accept”&gt;                &lt;go method=“post” href = “url”&gt;           &lt;postfield name=“name” value=“value”/&gt;           &lt;postfield name=“name1” value=“value1”/&gt;           ......                &lt;/go&gt;           &lt;/do&gt;                      
 
         [0114]    2. If both the “name” and “value” attributes contain the same variable name, the contents of the variable name stored in the “value” attribute will be passed to the server. Being able to put a variable name into the “value” attribute of &lt;hiddenVariable&gt; is provided so the contents of a WML variable can be passed to the server. Examples are:  
         [0115]    a) The variable stored in the “name” attribute for the &lt;textInput&gt;, &lt;menu&gt;, or &lt;radio&gt; elements.  
         [0116]    b) The variable stored in the “title” attribute for the &lt;menuItem&gt; element. Transformation is:  
                                                                                                                         &lt;onevent type=“onenterforward”&gt;                &lt;refresh&gt;                &lt;setvar name=“name” value=“value”&gt;           &lt;setvar name=“name1” value=“value1”/&gt;                &lt;refresh&gt;                &lt;/onevent&gt;           &lt;do label = “label” type = “accept”&gt;                &lt;go method=“post” bref = “url”/&gt;           &lt;postfield name=“name” value=“$value”/&gt;           &lt;postfield name=“name1” value=“$value1” /&gt;                &lt;/go&gt;                &lt;/do&gt;                      
 
         [0117]    cHTML transformation  
         [0118]    1. An &lt;INPUT&gt; tag is generated for each &lt;hiddenVariable&gt; element. Since the &lt;hiddenVariable&gt; element must be contained in a &lt;card&gt; element, the &lt;INPUT&gt; tag will be included within the cHTML &lt;FORM&gt; tag generated for the &lt;card&gt; element.  
         [0119]    Note: a cHTML “hidden” attribute is used here since &lt;hiddenVariable&gt; is used to pass additional info to the server, though it won&#39;t be displayed on the screen.  
                                                   &lt;INPUT type=“hidden” name=“name” value=“value”&gt;                      
 
         [0120]    2. If both the “name” and “value” attributes contain the same variable name, this &lt;hiddenVariable&gt; element will not be translated (i.e. it will be ignored) for cHTML. Being able to put a variable name into the “value” attribute of &lt;hiddenVariable&gt; is provided so the contents of WML &lt;input&gt; or &lt;select&gt; tags can be sent to the server. Since cHTML can pass &lt;INPUT&gt; and &lt;SELECT&gt; items directly through the cHTML &lt;FORM&gt; tag this capability is not needed for cHTML.  
         [0121]    9. &lt;image&gt; 
         [0122]    Description: This element is used to display an image. One or more &lt;image&gt; elements can be contained per &lt;card&gt;.  
         [0123]    When Used: To display an image on the display screen.  
         [0124]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this image element in           the Project View panel of mBuilder.       Source   REQUIRED: image source Default: mBuilder will           either provide a default icon.       Alignment   Indicates vertical alignment. Valid options: top|           middle|bottom. Default: bottom.       Height   Height of image specified as a percentage based off of           availablevertical space.       Width   Width of image specified as a percentage based off of           available horizontal space.       Vertical Space   Amount of space above and beneath the image specified           as a percentage based off available vertical space.           Default: 0       Horizontal   Amount of space on either side of the image specified as       Space   a percentage based off available horizontal space.           Default: 0       Text   REQUIRED: Alternative text to display if the device       Alternative   cannot display the image. Default text: anAlternative                  
 
         [0125]    WML transformation  
                                                                       &lt;p&gt;           &lt;img align=“alignment” alt=“alternative” height=“height” width=“width”                vspace=“vertSpace” hspace=“horizSpace” src=“location”/&gt;                &lt;/p&gt;                      
 
         [0126]    cHTML transformation  
                                                   &lt;BODY&gt;       &lt;BR clear=“all”&gt;       &lt;IMG align=“alignment” alt=“alternative” height=“height” width=“width”                vspace=“vertSpace” hspace=“horizSpace” src=“location”&gt;            &lt;/BODY&gt;                  
 
         [0127]    10. &lt;label&gt; 
         [0128]    Description: This element is used create a label. A label can be used as a “title” to a &lt;menu&gt;, &lt;list&gt;, or &lt;table&gt; element. It can also be used to create a prompt for a &lt;textInput&gt; element. One or more &lt;label&gt; elements can be contained per &lt;card&gt;.  
         [0129]    When Used: A label is used to introduce an input or to display an output. For example a label could be used to describe an input field such as “Name” or “Address”. Alternatively a label can be used to describe a table or a list.  
         [0130]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this label element in           the Project View panel of mBuilder.       Text   Holds text to be displayed.       Text Style   Holds the text format of the text to be displayed. Valid           options: plain|bold|italics|underline|big|small.           Default: plain. This attribute is ignored in cHTML.       Text Color   Holds color of the text to be displayed. Valid options:           black|green|silver|lime|gray|white|yellow|maroon           |navy|red|blue|purple|teal|fuchsia|aqua. Default:           browser default. This attribute is ignored in WML. This           attribute is not available on all iMODE devices.       Alignment   Indicates text alignment. Valid options: left|center|           right.           Default: left.                  
 
         [0131]    WML transformation  
         [0132]    Note: each label transformation is assumed to start on a new line.  
                                                   &lt;p align = “align“&gt;           &lt;b|i|u|big|small&gt;           “text“           &lt;/b|i|u|big|small&gt;           &lt;/p&gt;                      
 
         [0133]    cHTML transformation  
         [0134]    Note: each label transformation is assumed to start on a new line.  
         [0135]    Note: the cHTML DTD did not specify how the &lt;FONT&gt; tag is contained.  
         [0136]    The transformations below need to be confirmed.  
                                                   &lt;BODY&gt;           &lt;DIV align=“align”&gt;           &lt;FONT color=“colorSelect”&gt; “text”&lt;/FONT&gt;           &lt;/DIV&gt;           &lt;/BODY&gt;                      
 
         [0137]    11. &lt;link&gt; 
         [0138]    Description: This element is used to create a link. One or more &lt;link&gt; elements can be contained per &lt;card&gt;.  
         [0139]    When Used: A link is used as a navigation mechanism to user to redirect the browser on the device to another location when selected.  
         [0140]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this link element in the           Project View panel of mBuilder.       Title   REQUIRED: Brief text identifying the link.       Hyperlink   REQUIRED: Destination URL. Default: anURL       Access Key   Holds the specified “hotkey” for this link. Valid options:           0-9, *, #                  
 
         [0141]    WML transformation  
                                                   &lt;p&gt;           &lt;a href=“url” accesskey=“accessKey” title=“title”/&gt;           &lt;/p&gt;                      
 
         [0142]    cHTML transformation  
                                                   &lt;BODY&gt;           &lt;A href=“url” accesskey=“accessKey”&gt;“title”&lt;/A&gt;&lt;BR&gt;           &lt;/BODY&gt;                      
 
         [0143]    12. &lt;list&gt; 
         [0144]    Description: This element is used to display a list of items. If the list of items to be displayed is dynamically generated, the Xpath for the list should be stored in the Dynamic List Source attribute. If list items to be displayed are always the same, a separate listItem element can be used to represent each item. A &lt;list&gt; can contain zero or more &lt;listItem&gt; elements.  
         [0145]    Note: Nothing is displayed on the Simulator for a &lt;list&gt; element. Only static data stored in &lt;listItem&gt; elements are displayed. To validate how dynamic data is displayed, use sample data in &lt;listItem&gt; elements contained in a &lt;list&gt;. This static data will not be displayed at runtime.  
         [0146]    When Used: List should be used if a list of items is to be displayed to the user. For example a grocery list, or a list of what was purchased.  
         [0147]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this list element in the           Project View panel of mBuilder.       Sorted   If the value of this attribute is “true”, items in this list           will be preceded by numbers starting from “1”.           Otherwise, items are preceded by bullets. Valid options:           true|false. Default: false.       Dynamic List   Holds the xpath (schema) of the list items if the list is to       Source   be generated dynamically.           Note: If this attribute has been filled, static data in the           listItem elements contained in this will be visible in the           Smart Canvas for UI validation, but will not be seen at           runtime.                  
 
         [0148]    WML transformation  
         [0149]    See listItem transformation.  
         [0150]    See listItem transformation  
         [0151]    13. &lt;listItem&gt;  
         [0152]    Description: This element is used to define a single list item. To dynamically display a list of items to the user, use &lt;list&gt;. A &lt;listItem&gt; must be contained within a &lt;list&gt;. One or more &lt;listItem&gt; elements can be contained in a &lt;list&gt;.  
         [0153]    When Used: A list item is used to display a specific list item.  
         [0154]    Attributes: cHTML transformation  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this listItem element in           the Project View panel of mBuilder.       Title   Specifies the title of this list item.                  
 
         [0155]    WML transformation  
                                                                                           If “sorted” is “false” precede each listItem with a “bullet”:           &lt;p&gt; &lt;/br&gt;           &lt;big&gt;&lt;b&gt; &lt;b&gt;&lt;/b&gt; “title”&lt;/br&gt;                ......                &lt;/p&gt;           If “sorted” is “true” hardcode numbers in ascending order for each listItem.           &lt;p&gt; &lt;/br&gt;           1. “ title” &lt;/br&gt;                ......                &lt;/p&gt;                      
 
         [0156]    cHTML transformation  
                                                                   If “sorted” is “false” use cHTML &lt;UL&gt; tag before all &lt;LI&gt; tags for each       listItem.       &lt;UL&gt;       &lt;LI&gt; “title” &lt;\LI&gt;                ......            &lt;/UL&gt;       If “sorted” is “true” use cHTML &lt;OL&gt; tag before all &lt;LI&gt; tags for each       listItem.       &lt;OL&gt;       &lt;LI&gt;“title”&lt;\LI&gt;                ......            &lt;/OL&gt;                  
 
         [0157]    14. &lt;menu&gt; 
         [0158]    Description: This element is used to create a menu. Menu elements are used to provide a selection of menu items with hyperlinks to other pages. A &lt;menu&gt; element can contain multiple &lt;menuItem&gt; elements, but only one &lt;menuItem&gt; can be selected. When the user clicks on a &lt;menuItem&gt;, it navigates to the location which is specified by the hyperlink of the selected &lt;menuItem&gt;. To dynamically display menu items to the user, specify the appropriate Xpath in the Dynamic Data attributes described below.  
         [0159]    Note: Nothing is displayed on the Simulator for a &lt;menu&gt; element. Only static data stored in &lt;menuItem&gt; elements are displayed. To validate how dynamic data is displayed, use sample data in &lt;menuItem&gt; elements contained in a &lt;menu&gt;. This static data will not be displayed at runtime.  
         [0160]    When Used: A menu should be used if a selection of hyperlinks are to be displayed to the user. For example, a selection of restaurants.  
         [0161]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this menu element in           the Project View panel of mBuilder.       Variable Name   REQUIRED: Name for the “Return Value” of the           selected item. Default: aName. Please refer to the           “menuItem” element definition section for more details.       Default Value   Holds the default “value” to be displayed.           Note: for WML the default value is an attribute to           &lt;select&gt;. For cHTML the default value is an attribute to           &lt;option&gt;.       Dynamic Text   Holds the xpath (schema) for menultems if the “title” for       Source   menuItems are dynamically displayed.           Note: If this attribute has been filled, static data in the           menuItem elements contained in this will be visible in           the Smart Canvas for UI validation, but will not be seen           at runtime.       Dynamic Value   Holds the xpath (schema) for menuItems if the “value” of       Source   menuItems are dynamically supplied.           Note: If this attribute has been filled, static data in the           menuItem elements contained in this will be visible in           the Smart Canvas for UI validation, but will not be seen           at runtime.       Dynamic   Holds the xpath (schema) for menuItems if the “url” for       Hyperlink   menuItems are dynamically supplied.       Path   Note: If this attribute has been filled, static data in the           menuItem elements contained in this will be visible in           the Smart Canvas for UI validation, but will not be seen           at runtime.                  
 
         [0162]    WML transformation  
                                                                       &lt;p&gt;           &lt;select name=“name” value=“default”&gt;                ....                &lt;/select&gt;           &lt;/p&gt;                      
 
         [0163]    cHTML transformation  
         [0164]    No cHTML tags are generated for this &lt;menu&gt; element. See “menuItem” element definition below. Note: The “default” attribute is ignored for this type of transformation.  
         [0165]    15. &lt;menuItem&gt; 
         [0166]    Description: This element is used as a specific menu item for a previously defined “menu” element. To dynamically display &lt;menuItems&gt;, use the &lt;menu&gt; element.  
         [0167]    Note: Title and Element Label should be the same, and both should not be empty. If the value of either one changes, the other should be updated to reflect the change.  
         [0168]    When Used: A menu item is used to provide a navigational selection to the user. When selected, the browser will be redirected to the hyperlink stored in the Hyperlink attribute.  
         [0169]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this menuItem element           in the Project View panel of mBuilder.       Title   REQUIRED: Holds the text to display for this menu           item.       Return Value   Holds the value to be stored in the &lt;menu&gt; element           attribute “Variable Name” when this menu item is           selected       Hyperlink   REQUIRED. Holds the URL the browser is to be           redirected to if this menu item is selected.                  
 
         [0170]    WML transformation  
         [0171]    The WML &lt;option&gt; tag generated for each &lt;menuItem&gt; element can be contained within the WML &lt;select&gt; tag if contained in a mBuilder &lt;menu&gt; element, or within an &lt;optgroup&gt; tag if contained in a &lt;subMenu&gt; element.  
                                                   &lt;option onpick = “url” value = “value”&gt;“title”&lt;/option&gt;                      
 
         [0172]    cHTML transformation  
         [0173]    A cHTML &lt;A&gt; tag should be used for each &lt;menuItem&gt; specified.  
                                                   &lt;BODY&gt;           &lt;A href=“url”&gt; “title”&lt;/A&gt;&lt;BR&gt;           &lt;BODY&gt;                      
 
         [0174]    16. &lt;submenu&gt; 
         [0175]    Description: This element is used create a submenu. Submenus can be used to create a hierarchy of selection. &lt;subMenu&gt; s can only be contained in &lt;menu&gt;. &lt;menuItem&gt; can be contained in &lt;submenu&gt; or &lt;menu&gt;.  
         [0176]    Note: this element is not provided in Beta Release. Do not document in Reference Manual for Beta.  
         [0177]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this subMenu element           in the Project View panel of mBuilder.       Title   REQUIRED: Title for this subMenu. Default: aTitle                  
 
         [0178]    WML transformation  
         [0179]    A WML &lt;optgroup&gt; tag will be generated for each &lt;subMenu&gt; element. Each &lt;optgroup&gt; tab will be contained within the WML &lt;select&gt; tag generated for the &lt;menu&gt; element. Each &lt;menuItem&gt; contained in this &lt;subMenu&gt; will be contained within the WML &lt;optgroup&gt; tag.  
                                                                                           &lt;select name=“name” value=“default” multiple=“multiple”&gt;           &lt;optgroup title=“title”&gt;                ....                &lt;/optgroup&gt;                ....                &lt;/wml&gt;                      
 
         [0180]    cHTML transformation  
         [0181]    Each &lt;subMenu&gt; element is implemented with an cHTML &lt;A&gt; tag which links the browser to the &lt;menuItem&gt; s contained in this &lt;subMenu&gt;.  
         [0182]    1) If no urls are specified for all &lt;menuItem&gt; s in the &lt;subMenu&gt;, each &lt;menuItem&gt; is implemented using the cHTML &lt;OPTION&gt; tag. (see &lt;menuItem&gt; section above for more details). All &lt;OPTION&gt; tags for this &lt;subMenu&gt; are contained in a cHTML &lt;SELECT&gt; tag that uses the &lt;menu&gt; element attributes “name” and “multiple”. (See &lt;menu&gt; section above for more details).  
         [0183]    Note: For each &lt;subMenu&gt; a separate cHTML &lt;SELECT&gt; tag is created which uses the same variable “name”.  
         [0184]    If the “multiple” attribute is “true” then the cHTML multiple keyword also appears within the &lt;SELECT&gt;.  
                                                                                                               &lt;BODY&gt;                ....                &lt;A href=“#&#39;title”&gt; “title”&lt;/A&gt;&lt;BR&gt;                ....                &lt;A name-=“title”&gt; &lt;/A&gt;                &lt;SELECT name=“name” multiple&gt;           &lt;OPTION value“value” selected&gt; “title”           ....           &lt;/SELECT&gt;&lt;BR&gt;           ....                &lt;BODY&gt;                      
 
         [0185]    2) If urls are specified for &lt;menuItems&gt; within the same &lt;subMenu&gt; the cHTML &lt;A&gt; is used for the &lt;subMenu&gt; as well as for the &lt;menuItem&gt;. See example 2 in the cHTML transformation subsection of the &lt;menuItem&gt; element description section above for more details.  
                                                                                                               &lt;BODY&gt;                ....                &lt;A href=“#&#39;title”&gt; “title”&lt;/A&gt;&lt;BR&gt;                ....                &lt;           &lt;A name=“title”&gt;&lt;/A&gt;                &lt;A href=“url”&gt; “title”&lt;/A&gt;&lt;BR&gt;           ....                &lt;BODY&gt;                      
 
         [0186]    17. &lt;project&gt; 
         [0187]    Description: This element is used to store project level information. One or more deck can be contained in a project. There is only one instance of a project element per project and is created on behalf of the user by HP mBuilder.  
         [0188]    Note: element counts are not visible to the developer. Do not document in Reference Manual.  
         [0189]    When Used: The project element is modified if the developer want to change the project attributes which where defined when the project was created.  
         [0190]    Attributes:  
                                       ID   Unique project ID selected and used internally by           mBuilder.       Element Label   This attribute has the same value as Project Name. The           developer will see this label associated with this element           in the Project View panel of mBuilder.       Project Name   REQUIRED: Project name assigned by developer. No           default is given here. The developer will not be able to           create a project without a projectName.       Home   REQUIRED: Complete path name of the project. The       Directory   developer will be required to provide this data.       Device   Device Category. Valid options: any|wml|chtml       Category   Default: any       Device List   Device List. Multiple devices can be selected and thus           stored in the attribute. Valid options: TBD           Default: TBD       blinkCnt   Counter used to generate mBuilder unique ID       buttonCnt   Counter used to generate mBuilder unique ID       cardCnt   Counter used to generate mBuilder unique ID       checkBox-   Counter used to generate mBuilder unique ID       Count       checkBox-   Counter used to generate mBuilder unique ID       GroupCount       choiceboxCnt   Counter used to generate mBuilder unique ID       choicebox-   Counter used to generate mBuilder unique ID       GroupCnt       deckCnt   Counter used to generate mBuilder unique ID       elementCnt   Counter used to generate mBuilder unique ID       eventCnt   Counter used to generate mBuilder unique ID       imageCnt   Counter used to generate mBuilder unique ID       labelCnt   Counter used to generate mBuilder unique ID       linkCnt   Counter used to generate mBuilder unique ID       listCnt   Counter used to generate mBuilder unique ID       listItemCnt   Counter used to generate mBuilder unique ID       marqueeCnt   Counter used to generate mBuilder unique ID       menuCnt   Counter used to generate mBuilder unique ID       menuItem   Counter used to generate mBuilder unique ID       radioCnt   Counter used to generate mBuilder unique ID       radioGCnt   Counter used to generate mBuilder unique ID       servParmCnt   Counter used to generate mBuilder unique ID       subMenuCnt   Counter used to generate mBuilder unique ID       tableCnt   Counter used to generate mBuilder unique ID       tableCellCnt   Counter used to generate mBuilder unique ID       templateCnt   Counter used to generate mfluilder unique ID       textInCnt   Counter used to generate mBuilder unique ID       textOutCnt   Counter used to generate mBuilder unique ID       timerCnt   Counter used to generate mBuilder unique ID       variableCnt   Counter used to generate mBuilder unique ID       wmlButtonCnt   Counter used to generate mBuilder unique ID                  
 
         [0191]    WML transformation  
         [0192]    None.  
         [0193]    CHTML transformation  
         [0194]    None.  
         [0195]    18. &lt;radiobutton&gt; 
         [0196]    Description: This element is used define a radio button item.  
         [0197]    Note:  
         [0198]    1) For cHTML, an actual “radio button” is visible to the user with this element. Since WML does not implement a radio button, only the title is displayed in a multiple selection list on most simulators.  
         [0199]    2) &lt;radiobutton&gt; must be contained within a &lt;radiobuttonGroup&gt; 
         [0200]    3) Only one &lt;radiobutton&gt; can be selected within one &lt;radiobuttonGroup&gt; 
         [0201]    4) Title and Element Label should be the same, and both should not be empty. If the value of either one changes, the other should be updated to reflect the change.  
         [0202]    When Used: Radiobutton should be used if:  
         [0203]    1) The UI presented to the developer should visually look like a radio button on cHTML devices vs. a multiple list selection.  
         [0204]    2) The user is only allowed to select one of &lt;radiobutton&gt; items in a &lt;radiobuttonGroup&gt;.  
         [0205]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this radiobuttton           element in the Project View panel of mBuilder.       Title   REQUIRED: Text to be displayed for this radio button           element.       Selected   Indicates whether the &lt;radiobutton&gt; is selected. Valid           options: true|false. Default: false       Return Value   Value to be stored in “Variable Name” attribute of this           radiobutton&#39;s radiobuttonGroup if this item is selected.                  
 
         [0206]    WML transformation  
                                                   &lt;option value = “value”&gt;“title”&lt;/option&gt;                      
 
         [0207]    cHTML transformation  
         [0208]    see &lt;radiobuttonGroup&gt; for transformation.  
         [0209]    19. &lt;radiobuttonGroup&gt; 
         [0210]    Description: This element is used as a container for one or more &lt;radiobutton&gt; elements. To dynamically display a group of choice boxes to the user, store the Xpath for the title/value pairs of the checkboxes to be displayed in the Dynamic attributes described below  
         [0211]    Note: Nothing is displayed on the Simulator for a radiobuttonGroup element. Only static data stored in &lt;radiobutton&gt; elements are displayed. To validate how dynamic data is displayed, use sample data in &lt;radiobutton&gt; elements contained in a &lt;radiobuttonGroup&gt;. This static data will not be displayed at runtime.  
         [0212]    Implementation Note: Only one &lt;radiobutton&gt; can be checked at any time. If a &lt;radiobutton&gt; is selected by the user, &lt;radiobuttonGroup&gt; should unchecked the previous checked &lt;radiobutton&gt; to comply with the “ONLY ONE” rule.  
         [0213]    When Used: radiobuttonGroup should be used if:  
         [0214]    1) The UI presented to the developer for the radiobuttons in the group should visually look like “radiobuttons”.  
         [0215]    Note: for WML, radiobutton elements may be rendered as a multiple selection list on some devices. To allow for the same “look and feel” on both WML and cHTML devices please refer to the ChoiceBoxGroup element definition.  
         [0216]    2) The user is allowed to select only one radiobutton. An example might be a radiobutton selection of colors for a given item.  
         [0217]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this radiobuttonGroup           element in the Project View panel of mBuilder.       Variable Name   REQUIRED: Name to store the selected &lt;radiobutton&gt;           “Return Value” in. Default: aName       Dynamic Text   Holds the xpath (schema) of title attribute if a group of       Source   radioButtons is dynamically displayed.           Note: If this attribute has been filled, static data in the           radioButton elements contained in this will be visible in           the Smart Canvas for UI validation, but will not be seen           at runtime.       Dynamic Value   Holds the xpath (schema) of the value attribute if a       Source   radiobutton in a radioButton Group is to be dynamically           supplied.           Note: If this attribute has been filled, static data in the           radioButton elements contained in this will be visible in           the Smart Canvas for UI validation, but will not be seen           at runtime.                  
 
         [0218]    WML transformation  
         [0219]    For WML all &lt;radiobutton&gt; elements must be contained within the same &lt;select&gt; tag. A &lt;radiobutton&gt; transformation (i.e. WML &lt;option&gt; tag) is included in the transformation below for completeness. “value” should have the same value as that of the selected &lt;radiobutton&gt;.  
         [0220]    Note: The “multiple” tag attribute is “false” by default, which means it does not allow the list to accept multiple options simultaneously selected.  
                                             &lt;select name=“name” value=“[value of the selected &lt;radiobutton&gt;]”&gt;       &lt;option value=“value”&gt;“title”&lt;/option&gt;                ....           &lt;/select&gt;                      
 
         [0221]    cHTML transformation  
         [0222]    For cHTML all &lt;radiobutton&gt; elements will be contained within the same &lt;FORM&gt; tag which was generated at the &lt;card&gt; level. Note: The same “name” value taken from the “name” attribute in &lt;radiobuttonGroup&gt; is used for every &lt;radiobutton&gt; transformation.  
         [0223]    Note: The cHTML “checked” attribute is only used for the cHTML &lt;INPUT&gt; transformation whose “checked” attribute is “true”.  
                                                   &lt;INPUT type =“radio” name=“name” value=“value” checked&gt;“title”&lt;BR&gt;                      
 
         [0224]    20. &lt;serverParameter&gt; 
         [0225]    Description: This element is used to specify a parameter to be sent to the server.  
         [0226]    Note:  
         [0227]    1) The &lt;serverParameter&gt; element must be contained in a &lt;button&gt; element of type “submit”. Otherwise it will not be processed.  
         [0228]    2) Note: multiple &lt;serverParameter&gt; elements can be contained within a single &lt;button&gt; element  
         [0229]    When Used: Server Parameters are used to pass user visible input variables and their values (e.g. TextInput) to the server. To pass name/value pairs which should not be visible to the user (e.g. server cookies, user ids) use the Hidden Variable element.  
         [0230]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this serverParameter           element in the Project View panel of mBuilder.       Parameter   REQUIRED: Name of variable to be passed to server.       Name   Default: aName       Parameter   REQUIRED: Value to be assigned to “name” attribute       Value   when passed to server. Default: aValue           Note: For WML devices, the name of the variable           stored in the “Parameter Name” attribute of           &lt;serverParamater&gt; can also be stored in this “Parameter           Value” attribute. If this is done, the server will receive a           name/value pair which contains the Parameter Name, and           the contents of the Parameter Name. This type of           functionality is not supported on cHTML. For cHTML,           the name/value pair sent to the server will be Parameter           Name and Parameter Name.       valueXpath   Holds the xpath (schema) of the “Parameter Value“           attribute. Note: this attribute is not provided in Beta.           Note: If this attribute has been filled, data stored in the           Parameter Value will not be used at runtime.                  
 
         [0231]    WML transformation  
         [0232]    1. A WML &lt;postfield&gt; tag will be generated for each &lt;serverParameter&gt; element. Since the &lt;serverParameter&gt; element must be contained in a &lt;button&gt; element with attribute type=“submit”, the &lt;postfield&gt; will be embedded within the &lt;go&gt; tag generated for the &lt;button&gt; element. The translation below includes the &lt;button&gt; translation for completeness. See the &lt;button&gt; element description for more information.  
                                                                                 &lt;do label = “label” type = “accept”&gt;                &lt;go method=“post” href=“url”&gt;           &lt;postfield name=“name” value=“value”/&gt;           ......                &lt;/go&gt;                &lt;/do&gt;                      
 
         [0233]    2. If both the “name” and “value” attributes contain the same variable name, the contents of the variable name stored in the “value” attribute will be passed to the server. Being able to put a variable name into the “value” attribute of &lt;serverParameter&gt; is provided so the contents of a WML variable can be passed to the server. Examples are:  
         [0234]    a) The variable stored in the “name” attribute for the &lt;textInput&gt;, &lt;menu&gt;, or &lt;radio&gt; elements.  
         [0235]    b) The variable stored in the “title” attribute for the &lt;menuItem&gt; element. Transformation is:  
                                                                       &lt;do label = “label” type=“accept”&gt;                &lt;go method=“post” href=“url”/&gt;           &lt;postfield name=“name” value=“$value”/&gt;           ......           &lt;/go&gt;                &lt;/do&gt;                      
 
         [0236]    cHTML transformation  
         [0237]    1. An &lt;INPUT&gt; tag is generated for each &lt;serverParameter&gt; element. Since the &lt;serverParameter&gt; element must be contained in a &lt;button&gt; element with attribute type=“submit”, the &lt;INPUT&gt; tag will be included within the cHTML &lt;FORM&gt; tag generated for the &lt;card&gt; element. The translation below includes the &lt;button&gt; translation for completeness. See the &lt;button&gt; element description for more information.  
         [0238]    Note: a cHTML “hidden” attribute is used here since &lt;serverParameter&gt; is used to pass additional parameters to the server which are not already being passed via normal &lt;INPUT type=“(text|passwd|radio)”&gt; definitions through mBuilder &lt;textInput&gt;, and &lt;radiobutton&gt; elements.  
                                                                       &lt;FORM method=“post” action = “url”&gt;           &lt;INPUT type=“hidden” name=“name” value=“value”&gt;                ......                &lt;INPUT type = “submit” value = “label”&gt; &lt;/BR&gt;           &lt;/FORM&gt;                      
 
         [0239]    2. If both the “name” and “value” attributes contain the same variable name, this &lt;serverParameter&gt; element will not be translated (i.e. it will be ignored) for cHTML. Being able to put a variable name into the “value” attribute of &lt;serverParameter&gt; is provided so the contents of WML &lt;input&gt; or &lt;select&gt; tags can be sent to the server. Since cHTML can pass &lt;INPUT&gt; and &lt;SELECT&gt; items directly through the cHTML &lt;FORM&gt; tag this capability is not needed for cHTML.  
         [0240]    21. &lt;table&gt; 
         [0241]    Description: This element is used to create a table. To dynamically display data with a table, please refer to the tableCell element description below. A table can contain one or more &lt;tableCell&gt; elements.  
         [0242]    WARNING: since cHTML does not implement “table, how this &lt;table&gt; element is displayed on iMODE devices could vary widely.  
         [0243]    Note: Nothing is displayed on the Simulator for a table element. Only static data stored in &lt;tableCell&gt; elements are displayed. To validate how dynamic data is displayed, use sample data in &lt;tableCell&gt; elements contained in a &lt;table&gt;. This static data will not be displayed at runtime.  
         [0244]    When Used: This element is used if multiple columns of data are to be displayed. For example stock quotes.  
         [0245]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this table element in           the Project View panel of niBuilder.       Alignment   Valid options: left|center|right. Default: left       Row Count   Number of rows in the table. For dynamically generated           tables, this attribute can be left undefined.           Note: this attribute is not provided in Beta.           Note: This attribute can also be used by mBuilder to           determine (1) If the table created will be too big for the           memory available for the device target specified when           the project was created. (2) To cross check the number           of &lt;tableCells&gt; defined does not exceed the number of           rows expected.       Column Count   REQUIRED: Number of cells per row. (i.e. expected           number of columns per row) Default: 1                  
 
         [0246]    WML transformation  
                                                                       &lt;table align=“alignment” columns=“columnCnt”/&gt;                ....                &lt;/table&gt;                      
 
         [0247]    cHTML transformation  
                                                                       &lt;P align=“alignment”&gt;                ....                &lt;/P&gt;                      
 
         [0248]    22. &lt;tableCell&gt; 
         [0249]    Description: This element is used to specify the data displayed in a table. Since the number of columns in the table is defined in the &lt;table&gt; element, mBuilder “knows” how many &lt;tableCells&gt; to display per row. For example, if the developer defines a &lt;table&gt; with attribute “Column Count” set to 2, and then defines 3 &lt;tableCell&gt; elements contained in a &lt;table&gt; element, mBuilder will put the contents of the first two &lt;tableCell&gt; elements in the first row, and the content of the third &lt;tableCell&gt; as the first item in the second row.  
         [0250]    For example:  
                                                       Text1   Text2           Text3                      
 
         [0251]    Note:  
         [0252]    1) tableCells can only be contained within a &lt;table&gt; element.  
         [0253]    2) To dynamically display data, specify the data&#39;s Xpath in the Dynamic Data Source attribute below. Note: Nothing is displayed on the Simulator for a table Cell element if nothing has been specified in the “Text” attribute. To validate how dynamic data is displayed, use sample data in “Text” attribute. This static data will not be displayed at runtime.  
         [0254]    When Used: A table cell is used to display data within a table.  
         [0255]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this tableCell element           in the Project View panel of mBuilder.       Text   Text to be displayed in this cell.       Dynamic Data   Holds the xpath (schema) of the data if the tableCell is       Source   dynamically displayed. Note: this attribute only needs to           be set by the developer once per column. So for the           example table above, the developer would set this           “xpath” attribute for the Text1 and Text2 cells above.           Setting the “xpath” attribute for Text3 is not necessary.           Note: If this attribute has been filled, static data in the           “text” attribute above will be visible in the Smart Canvas           for UI validation, but will not be seen at runtime.                  
 
         [0256]    WML transformation  
         [0257]    In WML, each &lt;tableCell&gt; item within a row must be contained within the WML &lt;tr&gt; tags which are contained with the WML &lt;table&gt; tags represented in the “WML transformation” subsection of the &lt;table&gt; element section above.  
                                                                       &lt;table align=“alignment” columns=“columnCnt”/&gt;           &lt;tr&gt;                &lt;td&gt;“text”&lt;/td&gt;           ....                &lt;/tr&gt;           &lt;/table&gt;                      
 
         [0258]    cHTML transformation  
         [0259]    For cHTML, each &lt;tableCell&gt; will be “handcrafted” by mBuilder using blank spaces between &lt;tableCell&gt; “text” attributes. cHTML &lt;BR&gt; tags will be used to start new rows. All “handcrafted” &lt;tableCell&gt; elements will be contained within the cHTML &lt;P&gt; tag as represented in the “cHTML transformation” subsection of the &lt;table&gt; element section above.  
                                                                       &lt;P align=“alignment”&gt;           “text”&lt;BR&gt;                ....                &lt;/P&gt;                      
 
         [0260]    23. &lt;textInput&gt; 
         [0261]    Description: This element is used to receive text or password input from the user.  
         [0262]    When Used: Use this element to receive input from the user. For example a user name or a user password.  
         [0263]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this textInput element           in the Project View panel of mBuilder.       Text Type   Specifies type of input to be received. Valid options:           text|password. Default: text.       Variable Name   REQUIRED: Name of variable to contain user input.           Default: aName       Display Length   Width of input field in characters.       Format   Specifies format of input to be received. Valid options:           any|alpha||num. Default: any.           Note: the format specified is not necessarily enforced           by the browser.           Note: this attribute is not supported on all iMODE           devices.           Note: “alpha” is not supported in Beta due to some           WML transformation limitation.       Maximum   Specifies maximum field length.       Length       Default Value   Default value assigned to “name” attribute if not           initialized.                  
 
         [0264]    WML transformation  
         [0265]    If “format” is “num”, use “*N”, if “format” is “alpha”, use “*a”, otherwise use “*M”. If “maxlength” is specified the numer of “M”s, “a”s, or “N”s should reflect “maxlength”. For example if maxlenth=3, the transformation for format “num” would show three N&#39;s(“NNN”) instead of *N.  
                                                   &lt;p&gt;       &lt;input type=“type” name=“name” size=“size” format=“(*M|*a|*N)”                maxlength=“maxlength” value=“default”/&gt;            &lt;/p&gt;       For example, social security number could be formatted as “NNN-NN-       NNNN”.                  
 
         [0266]    cHTML transformation  
         [0267]    The “istyle” attribute sets the default character input mode (alphabetic, numeric, etc.) as follows:  
                                                                     Attribute   Mode 1 (When in   Mode 2 (When in pager           value   kana input mode)   message input mode)                                    1 (default)   Full-space kana   Full-space characters       2   Half-space kana   Half-space characters       3   Alphabetic   Half-space characters               (Lower case               recommended)       4   Numeric   Half-space characters               (Numeric recommended)                  
 
         [0268]    The istyle attribute is not applicable to INPUT type=“password,” whose input mode is always fixed as numeric.  
                                             If “format” is “num”, set “istyle” attribute to 4, if “format” is “alpha”, set       “istyle” attribute to 3, otherwise don&#39;t use “istyle” (i.e. use the default).       &lt;INPUT type=“type” name=“name” “istyle=“3|4”                maxlength=“maxlength” value=“default”&gt;                      
 
         [0269]    24. &lt;textOutput&gt; 
         [0270]    Description: This element is used to display text to the user. To dynamically display text to the user, use the Dynamic Data attribute defined below.  
         [0271]    When Used: Use to display text on the device.  
         [0272]    Attributes:  
                                       ID   Unique ID selected and used internally by mBuilder.       Element Label   mBuilder chooses a default value for this attribute,           however the developer can overwrite it. The developer           will see this label associated with this textOutput element           in the Project View panel of mBuilder.       Text   Holds text to be displayed           Note: To display the contents of an input variable use           the following syntax: $(variable_name)       Text Style   Holds the text format of the text to be displayed. Valid           options: bold|italics|underline|big|small.           Default: no formatting. This attribute is ignored in           cHTML.       Text Color   Holds color of the text to be displayed. Valid options:           black|green|silver|lime|gray|white|yellow|           maroon|navy|red|blue|purple|teal|fuchsia|           aqua. Default: browser default. This attribute is ignored           in WML. This attribute is not available on all iMODE           devices.       Alignment   Indicates text alignment. Valid options: left|center           right. Default: left. This attribute is ignored if the           “preformat” attribute is “true”       Wrapped   Indicates if text should wrap. Valid options: true|           false. Default: true. This attribute is ignored if the           “preformat” attribute is “true“. For cHTML this attribute           will always be “true” in version 1.0 of mBuilder.       Preformatted   Indicates text should be displayed as previously           formatted. Valid options: true|false. Default: false.           Note: not this attribute is not available on cHTML           devices and is not available on all WML browsers.       Dynamic Data   Holds the xpath (schema) of the text if the text is to be       Source   dynamically displayed.           Note: If this attribute has been filled, static data in the           “text” attribute above will be visible in the Smart Canvas           for UI validation, but will not be seen at runtime.                  
 
         [0273]    WML transformation  
         [0274]    If the “preformat” attribute is “false” the following transformation should be used. If the “wrap” attribute is “true” use “wrap” for WML “mode” attribute. Otherwise use “nowrap”.  
         [0275]    Note: each textOutput transformation is assumed to start on a new line.  
                                                   &lt;p align = “align” mode=“wrap|nowrap”&gt;           &lt;b|i|u|big|small&gt;           “text”           &lt;/b|i|u|big|small&gt;           &lt;/p&gt;                      
 
         [0276]    If the “preformat” attribute is “true”:  
                                                   &lt;p&gt;           &lt;pre&gt;           &lt;b|u|big|small&gt;           “text”           &lt;/b|i|u|big|small&gt;           &lt;/pre&gt;           &lt;/p&gt;                      
 
         [0277]    cHTML transformation  
         [0278]    If the “preformat” attribute is “false” the following transformations might be used.  
         [0279]    Note: each textOutput transformation is assumed to start on a new line.  
         [0280]    Note: the cHTML DTD did not specify how the &lt;FONT&gt; tag is contained. The transformations below need to be confirmed.  
                                                   &lt;BODY&gt;           &lt;DIV align=“align”&gt;           &lt;FONT color=“colorSelect”&gt; “text”&lt;FONT&gt;           &lt;/DIV&gt;           &lt;/BODY&gt;                      
 
         [0281]    If the “preformat” attribute is “true”:  
                                                   &lt;BODY&gt;           &lt;FONT color=“colorSelect”&gt;           &lt;PRE&gt;           “text”           &lt;/PRE&gt;           &lt;/FONT&gt;           &lt;/BODY&gt;