Skip navigation.
Downloads | Product Documentation | Support

MobileAware Interaction Server User Guide

# Appendix A - Mobility Tag Reference

# meta, mm:meta

## DESCRIPTION

This tag is placed inside the document's <head> element. It has two MobileAware Interaction Server -specific uses:

It can be used to create a shortcut link on the Options menu of WML devices that support such a menu. This can provide a handy way for users to navigate around pages of a site.

It can be used with <mm:cdata> (or <![CDATA[...]> in mmXHTML) to set page-wide 'wrap' or 'unwrap' directives.

This is an empty tag, so it requires a slash (/) before the final angle bracket (>).

## USAGE A: To create a link on an Options menu

### ATTRIBUTES

- name="..."
  Assigns a name to the meta information. This will be used as the text on the menu item.
- content="..."
  The value that should be used for generating the link.
- scheme= "mmsection"
  The value of this attribute is an indicator to the MobileAware Interaction Server. For MobileAware Interaction Server meta tags the value should always be "mmsection"

### EXAMPLE

`<!—This will create a link with the title "Go Home" on the Options menu of some phones.. -->`

`<meta name="Go Home" content="/some/url.htm" scheme="mmsection"/>`

## USAGE B: TO GIVE PAGE-WIDE SETTINGS TO CDATA ELEMENTS

### ATTRIBUTES

- name="MIS-CDATA-Control"
  This attribute must always have this value when using the meta element with <mm:cdata> or <![CDATA[...]]>. (Required)
- content="Unwrap | NoUnwrap"
  If set to 'Unwrap', the MobileAware Interaction Server will not parse the content that is wrapped by any CDATA section on the page (unless the CDATA tag itself has contradicting instructions), but will remove the CDATA tags when delivering the page so that the wrapped content will be interpreted by the client browser. If set to 'NoUnwrap', which is the default behaviour, neither the MobileAware Interaction Server nor the browser will process or interpret the contents of the CDATA block.

### EXAMPLE USING THE JSP TAGLIB

>     <%-- The meta tag settings cause the first CDATA block to be unwrapped, but the second one will not be unwrapped because the unwrap="false" in the CDATA element overrides the meta tag instruction.--%>

>     <head>

>     <mm:meta name="MIS-CDATA-Control" content="Unwrap"/>

>     </head>

>     <body>

>     <mm:cdata>This content will not be parsed by the MobileAware Interaction Server parser, but will be unwrapped and delivered to the requesting browser for processing. Because the CDATA element has no unwrap attribute set, it looks for the value of the content attribute of the meta element if there is one.</mm:cdata>

>      <mm:cdata unwrap="false">This content will not be parsed by the MobileAware Interaction Server parser, and will not be processed by the requesting browser either. The CDATA's unwrap attribute overrides the content attribute of the meta tag.</mm:cdata>

>     </body>

### EXAMPLE USING mmXHTML

>     <%-- This demonstrates the mmXHTML equivalent of the example above.--%>

>     <head>

>        <meta name="MIS-CDATA-Control" content="Unwrap"/>

>     </head>

>     <body>

>     ...

>     <![CDATA[This content will not be parsed by the MobileAware Interaction Server parser, but will be unwrapped and delivered to the requesting browser for processing. Because the CDATA element has no unwrap attribute set, it looks for the value of the content attribute of the meta element.]]>

>     <![CDATA[#NOUNWRAP# This content will not be parsed by the MobileAware Interaction Server parser, and will not be processed by the requesting browser either. The CDATA's unwrap attribute overrides the content attribute of the meta tag.]]>

>     </body>

### SEE ALSO

- <![CDATA[...]]> / mm:cdata

# mm-body, mm:body

## DESCRIPTION

Acts as a container for the content within an <mm-group> element.

## ATTRIBUTES

- id=""
  Assigns a unique ID to an instance of this element.
- idref=""
  A reference pointing to the unique ID of the parent element. An mm-group element can have multiple mm-body elements. Each must be linked to another body element, the <mm-head>, or the <mm-group> so that they form a chain, the order of which will be the order they are displayed on a menu-driven device.

## COMMENTS

The <mm-group> element is used to organize your content into logical sections.

## EXAMPLE

>     <!— This example illustrates multiple (2) mm-body elements -->

>     <mm-group id="introduction" title="Introduction">

>        <mm-head id="hd_introduction">Introduction </mm-head>

>        <!-- Note the body is linked to the heading -->

>        <mm-body id="bd_1" idref="hd_introduction">

>           <p>This is paragraph 1</p>

>        </mm-body>

>        <!-- Note the next paragraph will only be included on full browser devices -->

>        <p>This is paragraph 2</p>

>        <!-- Note the body is linked to the previous body -->

>        <mm-body id="bd_2" idref="bd_1">

>            <p>This is paragraph 3</p>

>        </mm-body>

>     </mm-group>

## SEE ALSO

- mm-group-ref, mm:group-ref
- mm-head, mm:head

# <![CDATA[...]]> / mm:cdata

## DESCRIPTION

To protect content from being analysed/transformed by the MobileAware Interaction Server, it can be wrapped in <![CDATA[]]> elements. By placing the meta tag <meta/> in the head section of the content, the enclosing CDATA tags will be removed when the content is delivered to the device. For JSP, use <mm:meta/> and <mm:cdata> as illustrated in "<mm:cdata> USAGE."

<![CDATA[]]> USAGE

There may be circumstances when you might wish to deliver a portion of web page content that has not been subject to the MobileAware Interaction Server transformation. In mmXHTML files, the <![CDATA[]]> tag can be used in conjunction with the <meta/> tag to protect such content from being analysed or transformed by the MobileAware Interaction Server, and yet still have this content delivered to the device.

By extending the capabilities of the <![CDATA[]]> tag to include unwrapping functionality, the MobileAware Interaction Server will ignore the content during processing, but remove the enclosing <![CDATA[]]> tag when delivering it to the device.

To cause your <![CDATA[]]> tag to be unwrapped, specify it as follows:

<![CDATA[#UNWRAP#]]>

If you have many <![CDATA[]]> tags in a page which you wish to have unwrapped, then you can specify a <meta/> tag as follows:

`<meta name="MIS-CDATA-Control" content="Unwrap" />`

which will cause each <![CDATA[]]> tag on the page to be treated as if #UNWRAP# were present. You may override this behavior for individual <![CDATA[]]> tags by specifying that they are not unwrapped, as follows:

`<![CDATA[#NOUNWRAP#]]>`

<mm:cdata> USAGE

<mm:cdata> and <mm:meta> work together in the same way as <![CDATA[...]]> works with <meta>. In this case however, #UNWRAP# and #NOUNWRAP# are replaced by the unwrap attribute on the <mm:cdata> tag.

- unwrap="true | false"
  If not present, this attribute will default to false

Table 1 Examples

EXAMPLE USING JSP TAGLIB | EXAMPLE USING MMXHTML
--- | ---
<!-- MobileAware Interaction Server will not attempt to parse this Javascript inside the <mm:cdata> tags, but this code will be processed by the browser. --> <mm:meta name="MIS-CDATA-Control" content="Unwrap" /> <script> <mm:cdata unwrap="true"> function compareIt(var1,var2) { if (var1 <= var2) then { return 0 } else { return 1 } } </mm:cdata> </script> | <!-- The tag syntax for the same code example using mmXHTML looks like this: --> <meta name="MIS-CDATA-Control" content="Unwrap"/> <script> <![CDATA[#UNWRAP# function compareIt(var1,var2) { if (var1 <= var2) then { return 0 } else { return 1 } } ]]> </script>

### SEE ALSO

- meta, mm:meta

# mm-exclude, mm:exclude

## DESCRIPTION

Acts as a container for elements to be excluded when specific devices are targeted.

## ATTRIBUTES

- where=""
  The where attribute enables the author to specify content selection conditions for devices.

Conditions are constructed by specifying device attribute names and allowable values, using comparison operators from the Python programming language. Multiple conditions can be combined to make complex expressions by using the logical 'and', 'or' and 'not' operators from Python.

Note: The `where' clause quoted string must not contain line breaks.

The MobileAware Interaction Server also supports use of the Python .endswith( ), .startswith( ) and .find( ) methods for partial matching.

Restrictions:

- At least one condition must be specified
- Attribute names must be valid as taken from the MobileAware Device Database
- All String attribute values must be wrapped in single quotes

### EXAMPLE

>     <!-- The following example illustrates how an address line is excluded for a group of devices. -->

>     <mm-group id="company_details">

>        <mm-head id="hd_company_details">Company Details</mm-head>

>        <mm-body id="bd_company_details" idref="hd_company_details">

>           <p>ABC Company Ltd.</p>

>           <mm-exclude where="DeviceName.find('Ericsson')> 0">

>              <p>North Business Park, Circular Road,Dublin,Ireland </p>

>           </mm-exclude >

>           <p>Phone: 888-000-111</p>

>           <p>Fax: 000-888-111</p>

>        </mm-body>

>     </mm-group>

### SEE ALSO

- mm-include, mm:include

# mm-group-ref, mm:group-ref

## DESCRIPTION

Used to reference an existing mm-group element. The content of the group can be displayed in full or as a hierarchical set of headings that the user can use to navigate to the appropriate section. The navigation hierarchy is typically used for menu-driven devices and PDAs. This is an empty tag, so it requires a slash (/) before the final angle bracket (>).

## ATTRIBUTES

- dref=""

The unique identifier associated with the <mm-group> element being referenced.

- type="options | normal"

When content is being delivered to WML devices that support the Options menu, this attribute specifies whether the menu appears on the screen or whether it appears behind the Options button. This will have no effect on XHTML MP devices. Default is normal.

Note: When type="options" the attribute display MUST be set to "headings"

- depth="flat | 0..9"

Specifies the level of recursion to use when building the navigation hierarchy.

- startdepth="0-9"

Specifies the level at which the navigation hierarchy starts. This attribute can only be used when display="headings"

- display="all | headings | links"

Setting the value to `headings' displays the headings within a group down to the level (depth) specified. Setting the value to `all` displays everything within the group - headings, bodies and so on Setting the value to `links` displays headings and any links that occur within the group.

- navstyle=""

This attribute is used for styling navigational menus for PDAs and menu-driven devices.

Table 2 EXAMPLE

Depth | Display | Result
--- | --- | ---
Flat | all | Displays the whole page as a flat structure.
0 | headings | Displays a link to that group.
1 | headings | Displays a collection of links to the group and its subgroups.
2 | headings | Displays a collection of links to the group, its subgroups and its subgroup's subgroups.
0 | all | Displays that group, both heading and body and a collection of links to its subgroups if any.
1 | all | Displays that group, heading and body, its subgroups, heading, body and a collection of links to their subgroups if any.
0 | links | Displays the heading of the group and any links that occur in the body of that group

### SEE ALSO

- mm-group-ref, mm:group-ref
- mm-structure, mm:structure

# mm-head, mm:head

## DESCRIPTION

The text inside the <mm:head> element can be used as a menu link or a page title on menu-driven devices and PDAs. Smaller screen devices often split content into multiple pages to accommodate memory and bandwidth restrictions. The heading is sometimes needed to give context to the piece of content that is being displayed. A maximum of one <mm:head> per group is permitted.

## ATTRIBUTES

- id=""

Assigns a unique ID to an instance of this element. If an <mm:body> element follows the head, its idref attribute must match the head's id attribute.

- seradded="yes | no"

Indicates whether the text wrapped by the tag is already part of the content (="no") or has been specifically added (="yes"). Typically, you will add a head when the group is targeting menu-driven devices, so that the head becomes a link or a `card' title. Text that has been specifically added for this purpose will not appear on other devices.

## EXAMPLE

>     <!-- This example illustrates the use of the mm-group, mm-head and mm-body elements -->

>     <mm-group id="gp_company_details">

>       <mm-head id="hd_company_details">

>            Company Details

>        </mm-head>

>        <mm-body id="bd_company_details" idref="hd_company_details">

>           <p>ABC Company Ltd.</p>

>        </mm-body>

>     </mm-group>

## SEE ALSO

- mm-media-group, mm:media-group
- mm-body, mm:body
- mm-group-ref, mm:group-ref

# mm-id-ref, mm:id-ref

## DESCRIPTION

This element causes the MobileAware Interaction Server to place an instance of the referenced content at the point of insertion. This element is used in layout files. This is an empty tag, so it requires a slash (/) before the final angle bracket (>).

## ATTRIBUTES

- idref=""
  The unique ID of the group being referenced. This can be an implicit group, such as a table or form, which has been assigned an id attribute, or an explicit group created with <mm-group>.

## EXAMPLE

>     <%-- This is a part of a layout file that is using PDA pagination to create a navigation menu for PDAs. The mm:id-refs are being used to create a persistent header and footer content which appears on all pages. They refer to predefined groups of content whose id attribute values are 'header' and 'footer'.--%>

>     <mm:id-ref idref="header" />

>     <mm:structure id="str2" where="IsPDA">

>        <mm:group-ref idref="groupA" depth="0" display="headings" type="normal" />

>        <mm:group-ref idref="groupB" depth="0" display="headings" type="normal" />

>        <mm:group-ref idref="groupC" depth="0" display="headings" type="normal" />

>        <mm:group-ref idref="groupD" depth="0" display="headings" type="normal" />

>     </mm:structure>

>     <mm:id-ref idref="footer" />

## SEE ALSO

- mm-group-ref, mm:group-ref
- mm-layout, mm:layout

# mm-img, mm:img

## DESCRIPTION

Used to deliver the correct image based on the capabilities of the target device. Typically, multiple images will be placed inside a media-group element so that different image formats are available to be delivered depending on the requesting device type. The first image matching the criteria of this tag's where attribute is delivered; all others are ignored. Attribute of the XHTML <img> tag can also be used with this tag. This is an empty tag, so it requires a slash (/) before the final angle bracket (>).

## ATTRIBUTES

- where=""
  The where attribute enables the author to specify content selection conditions for devices.

Conditions are constructed by specifying device attribute names and allowable values, using comparison operators from the Python programming language. Multiple conditions can be combined to make complex expressions by using the logical 'and', 'or' and 'not' operators from Python.

Note: The `where' clause quoted string must not contain line breaks.

The MobileAware Interaction Server also supports use of the Python .endswith( ), .startswith( ) and .find( ) methods for partial matching.

Restrictions:

- At least one condition must be specified
- Attribute names must be valid as taken from the device database
- All String attribute values must be wrapped in single quotes

- fittoscreen="true | false"

If this attribute is set to "true", the image width is resized to the UsableWidthPixels value of the device, as defined in the device database. The image height is resized by the same factor so that the image maintains the same aspect ratio. This has an effect only if the original image is wider than the targeted screen width.

## EXAMPLE

>     <!—The MobileAware Interaction Server will select an image depending on the graphic support of the requesting device. If the device matches more than one where clause, it will receive the image from the first one that it matches. If no match occurs, the text from the media-group's alt attribute will be sent to the device.-->

>     <mm-media-group alt="No image provided">

>        <mm-img where="ImgJpgProgressiveSupported" height="80" width="60" alt="Gold"
>         src="img/gold.jpg" />

>        <mm-img where="ImgGIFSupported" height="40" width="30" alt="Gold"
>         src="img/gold.jpg" />

>        <mm-img where="ImgWBMPSupported" height="16" width="12" alt="Gold" src="
>         img/gold.wbmp" />

>     </mm-media-group>

## SEE ALSO

- mm-media-group, mm:media-group
- mm-logo, mm:logo

# mm-include, mm:include

## DESCRIPTION

Acts as a container for elements that are to be included when a specific device class is targeted.

## ATTRIBUTES

- where=""
  The where attribute enables the author to specify content selection conditions for devices.

Conditions are constructed by specifying device attribute names and allowable values, using comparison operators from the Python programming language. Multiple conditions can be combined to make complex expressions by using the logical 'and', 'or' and 'not' operators from Python.

Note: The `where' clause quoted string must not contain line breaks.

The MobileAware Interaction Server also supports use of the Python .endswith( ), .startswith( ) and .find( ) methods for partial matching.

Restrictions:

- At least one condition must be specified
- Attribute names must be valid as taken from the MobileAware Device Database
- All String attribute values must be wrapped in single quotes

## EXAMPLE

>     <!-- This example illustrates how to insert a line break into an address when certain devices are targeted. -->

>     <mm-body id="bd_company_details" idref="hd_company_details">

>        <p>ABC Company Ltd.</p>

>        <p>North Business Park,

>        <mm-include where="DeviceName.startswith('Nokia')"><br /></mm-include>

>           Circular Road,

>        <mm-include where="DeviceName.startswith('Nokia')"><br /></mm-include>

>           Dublin,

>        <mm-include where="DeviceName.startswith('Nokia')"><br /></mm-include>

>           Ireland

>        </p>

>        <p>Phone: 888-000-111</p>

>        <p>Fax: 000-888-111</p>

>     </mm-body>

## SEE ALSO

- mm-exclude, mm:exclude

# mm-layout, mm:layout

## DESCRIPTION

Used to specify which layout files should be applied to a request page. Layout files are essentially XHTML or JSP files that contain a description of how output content is best arranged for a specific device or for certain classes of devices. This tag is placed inside the <head> element. It is an empty tag, so it requires a slash (/) before the final angle bracket (>).

## ATTRIBUTES

- where=""
  The where attribute enables the author to specify content selection conditions for devices.

where="IsFullBrowser" is not allowed with this tag.
The `where' clause quoted string must not contain line breaks.

Conditions are constructed by specifying device attribute names and allowable values, using comparison operators from the Python programming language. Multiple conditions can be combined to make complex expressions by using the logical 'and', 'or' and 'not' operators from Python.

The MobileAware Interaction Server also supports use of the Python .endswith( ), .startswith( ) and .find( ) methods for partial matching.

Restrictions:

- At least one condition must be specified
- Attribute names must be valid as taken from the MobileAware Device Database
- All String attribute values must be wrapped in single quotes

- src="url"

A URL that points the MobileAware Interaction Server to the layout file.

EXAMPLE

>     <!-- The following example targets a distinct type of device with a specific layout. -->

>     <?xml version='1.0'?>
>     <!DOCTYPE html PUBLIC "-//MOBILEAWARE//DTD MMXHTML 1.2//EN"
>     "http://www.mobileaware.com/DTD/mmxhtml_1.2.dtd">
>     <html>
>     <head>
>        <title>Example Heading</title>
>        <mm-layout where="IsPortraitPDA" src="layout_1.htm" />
>     </head>
>     <body>
>       <mm-group id="text1">
>         <p> When this page is delivered to a portrait PDA, it will be formatted
>             according to the style set out in the file layout_1.htm.</p>
>       </mm-group>
>     </body>
>     </html>

## SEE ALSO

- mm-id-ref, mm:id-ref
- mm-group-ref, mm:group-ref

# mm-li, mm:li

## DESCRIPTION

This tag defines a list item in a navigation list. It must be contained by <mm:nl> tags. It allows authors to create and style navigation lists that can specifically target mobile devices.

## ATTRIBUTES

- navstyle=""

This attribute is used for styling navigational menus. It is used here primarily with the nav-image property to reference an image to be used as part of the navigation, as can be seen in the example below. Additional styling for list items can be achieved using external style sheets.

- href="url"

Contains the URL of the link created

## EXAMPLE

>     <!-- This example creates a styled navigation list with 4 elements.-->

>     <div style="border: 1px solid">

>        <mm:nl navstyle="nav-format: list; nav-list-item-display: block">

>           <mm:li navstyle="nav-image: url(dog.gif)" href="dogs.htm>Dogs</mm:li>

>           <mm:li navstyle="nav-image: url(fish.gif)" href="fish.htm">Fish</mm:li>

>           <mm:li navstyle="nav-image: url(cat.gif)" href="cat.htm">Cats</mm:li>

>           <mm:li navstyle="nav-image: url(fish.gif)" href="fish.htm">Fish</mm:li>

>        </mm:nl>

>     </div>

## SEE ALSO

- mm-nl, mm:nl

# mm-logo, mm:logo

## DESCRIPTION

Used to specify a logo image for WML devices. Logos typically appear for a user-specified interval before disappearing and being replaced by the main content.

## ATTRIBUTES

- id=""

Assigns a unique ID to an instance of the mm-logo element.

- displaymode="once | always"

Allowed values are "once" or "always" indicating whether a logo should be displayed once per session or for every request.

- period="..."

The value of this attribute is an integer, where the integer represents the number of seconds that the logo will be displayed.

## EXAMPLE 1

>     <!-- The following code snippet causes a company logo to appear for 2 seconds before being replaced by the main content when the page is delivered to a WML device. For each user session, this logo will appear only the first time the user visits the page. -->

>     <mm-logo id="logo" displaymode="once" period="2">

>        <img src="/companylogo.gif" alt="MobileAware" />

>     </mm-logo>

## EXAMPLE 2

>     <!-- Images can be placed inside a media-group using the <mm-img> tag, so that the best image is delivered to the requesting device.-->

>     <mm-logo id="logo" displaymode="once" period="2">

>        <mm-media-group alt="Logo Image">

>           <mm-img where="ImgGIFSupported" src="/companylogo.gif" alt="MobileAware" />

>           <mm-img where="ImgWBMPSupported" src="/companylogo.wbmp" alt="MobileAware" />

>        </mm-media-group>

>     </mm-logo>

## SEE ALSO

- mm-img, mm:img

# mm-media-group, mm:media-group

## DESCRIPTION

Contains the <mm:img> elements that specify alternative media to deliver when a specific device is targeted. The MobileAware Interaction Server will select an image from a media-group depending on the graphic support of the requesting device. If the device matches more than one where clause, it will receive the image from the first one that it matches. If no match occurs, the text from the media-group's alt attribute will be sent to the device.

## ATTRIBUTES

- id=""

Assigns a unique ID to an instance of this element. Used for navigation styling. This ID is referenced by a group-ref or structure tag to identify the image needed for the navigation.

- alt=""
  Alternative text to be displayed in the event that no mm-img is provided for the requesting device. Do not supply an alt attribute if you do not want any text to appear if the requesting device is not on the list of devices in the <mm-img> tags.
- style="display:none"
  Optional attribute used for styling navigational menus for PDA and menu-driven devices. The value "display:none" renders the media-group invisible at the location that it appears in the content mark-up. The MobileAware Interaction Server uses the media-group during the creation of navigation menu styles that use images.

## EXAMPLE

>     <!-- This example shows a partial layout file which contains two media-groups used for styling navigation menus with images. The group-ref tags in the structure identify the desired image to appear with the menu link by referring to the media-group's id. To ensure that the image does not appear anywhere in the delivered content except in the navigation, the media-group's style attribute is set to "display:none".-->

>     <body>
>        <mm:media-group id="car" style="display:none" alt="*">
>           <mm:img where="ImgGIFSupported" src="img/car.gif" alt="*"/>
>           <mm:img where="ImgWBMPSupported" src="img/car.wbmp" alt="*"/>
>        </mm:media-group>
>        <mm:media-group id="boat" style="display:none" alt="*">
>           <mm:img where="ImgGIFSupported" src="img/boat.gif" alt="*"/>
>           <mm:img where="ImgWBMPSupported" src="img/boat.wbmp" alt="*"/>
>        </mm:media-group>
>        <mm:structure id="pagination_str" where="IsPDA">
>           <mm:group-ref idref="groupA" depth="0" display="headings" type="normal"
>     navstyle="nav-image:url(#car)"/>
>           <mm:group-ref idref="groupB" depth="0" display="headings" type="normal"
>      navstyle="nav-image:url(#boat)"/>
>        </mm:structure>
>     < /body>

## SEE ALSO

- mm-img, mm:img
- mm-group-ref, mm:group-ref

# mm-nl, mm:nl

## DESCRIPTION

This tag name comes from the words "navigation list". It allows authors to create and style navigation lists that can specifically target mobile devices.

## ATTRIBUTES

- navstyle=""
  This attribute is used for styling navigational menus. The following values can be used: nav-format: [list | table], nav-list-item-display: [none | inline | block], nav-list-style-type: pipe, nav-image:[url(#id | url), none], nav-text-display: [none | inline | block], nav-table-columns:[int], nav-table-rows[int]. Additional styling can be achieved using external style sheets.

where=""
The where attribute enables the author to specify content selection conditions for devices.

where="IsFullBrowser" is not allowed with this tag.
The `where' clause quoted string must not contain line breaks.

Conditions are constructed by specifying device attribute names and allowable values, using comparison operators from the Python programming language. Multiple conditions can be combined to make complex expressions by using the logical 'and', 'or' and 'not' operators from Python.

The MobileAware Interaction Server also supports use of the Python .endswith( ), .startswith( ) and .find( ) methods for partial matching.

Restrictions:

- At least one condition must be specified
- Attribute names must be valid as taken from the MobileAware Device Database
- All String attribute values must be wrapped in single quotes

EXAMPLE

>     <!-- This example creates a styled navigation list with 4 elements.-->

>     <div style="border: 1px solid">

>        <mm:nl navstyle="nav-format: list; nav-list-item-display: block">

>           <mm:li navstyle="nav-image: url(dog.gif)" href="dogs.htm">Dogs</mm:li>

>           <mm:li navstyle="nav-image: url(fish.gif)" href="fish.htm">Fish</mm:li>

>           <mm:li navstyle="nav-image: url(cat.gif)" href="cat.htm">Cats</mm:li>

>           <mm:li navstyle="nav-image: url(fish.gif)" href="fish.htm">Fish</mm:li>

>        </mm:nl>

>     </div>

## SEE ALSO

- mm-li, mm:li

# mm:page

## DESCRIPTION

This is a required tag for content that uses the MobileAware Interaction Server JSP taglib. The <mm:page> tag wraps the page content. Setting attributes in this tag can enhance the performance of JSP page processing by allowing the author the choice of bypassing the MobileAware Interaction Server transformation engine and/or of turning off the mixed-mode tag checking feature.

## ATTRIBUTES

- content="true | false"

Allows the author to turn on or off the mixed-mode tag checking. If the author knows that the page only contains the MobileAware Interaction Server JSP taglib tags (mm:) and no mmXHTML tags (mm-), this attribute can be turned off to improve performance. The default value is true.

- bypass="true | false"

Allows the author to bypass the MobileAware Interaction Server transformation engine. This might be done to improve performance for pages that are to be delivered exclusively to a PC. The default value is false.

## EXAMPLE

>     <!— The MobileAware Interaction Server will not check this file for mixed tags. -->

>     <%@ taglib uri="mmJSPtaglib" prefix="mm" %>

>     <mm:page content="false">

>     <html>

>     <head>

>        <title>Skip Tag Check</title>

>     </head>

>     <body>

>        <p>This page has MobileAware Interaction Server JSP tags exclusively. Tag
>           checking can be turned off.</p>

>     </body>

>     </html>

>     </mm:page>

# mm-phone-number, mm:phone-number

## DESCRIPTION

Used to include a dialable phone number link in content delivered to WTAI enabled devices.

ATTRIBUTES

- num=""

Specifies a valid dialable phone number.

- cti=""

Used when the requesting device is an iMode device. This attribute lets you create a link that will be dialed when the user selects the link. Unlike the num attribute, cti gives the user the option of including pauses, characters and extension numbers after the main phone number. The hash mark (#) and the asterisk (*) are also supported.

## EXAMPLE

>     <!--This example will create a link that, when clicked, will dial +35312410500. If the phone is an iMode device, it will use the value of the cti attribute. After dialing the number, once the receiving end has picked up, it will pause for 2 seconds before dialing the extension 538#. -->

>     <mm:phone-number num="+ 35312410500" cti="+35312410500/,,538#">

>          Call Julia.

>     </mm:phone-number>

# mm-structure, mm:structure

## DESCRIPTION

Used to determine which groups are to be delivered to menu-driven devices or to create navigation menus for PDAs. The <mm:structure> element contains <mm:group-ref> elements which refer to the groups of content that you want delivered. Typically, this element is placed in a layout file.

## ATTRIBUTES

- id=""
  Assigns a unique ID to an instance of this element.

where=""
The where attribute enables the author to specify content selection conditions for devices.

where="IsFullBrowser" is not allowed with this tag.
The `where' clause quoted string must not contain line breaks.

Conditions are constructed by specifying device attribute names and allowable values, using comparison operators from the Python programming language. Multiple conditions can be combined to make complex expressions by using the logical 'and', 'or' and 'not' operators from Python.

The MobileAware Interaction Server also supports use of the Python .endswith( ), .startswith( ) and .find( ) methods for partial matching.

Restrictions:

- At least one condition must be specified
- Attribute names must be valid as taken from the MobileAware Device Database
- All String attribute values must be wrapped in single quotes

- accesskeycontrol="assignall | assignempty | removeall"
  This is an optional attribute that gives the author some control over access keys on phones that support this functionality. The value "assignall" will defer control of access keys to the phone itself. This applies to all the groups that are being referenced by the mm-structure regardless of whether or not the groups themselves have been explicitly assigned a number. The value "assignempty" will defer control of access keys to the phone only in the case where a group within the mm-structure has not explicitly been assigned a number. Setting accesskeycontrol="removeall" will disallow any accesskeys being set thereby overriding any accesskey settings within the individual groups contained in the <mm-structure>. The value "removeall" will not remove accesskey settings in other XHTML tags such as <input accesskey="..."> or <a accesskey="...">.

Note: The attribute values `assignall' and `assignempty' are not supported on iMode phones.

- navstyle=""
  This attribute is used for styling navigational menus for PDAs and menu-driven devices.

## EXAMPLE

>     <!--  Groups referenced from within this mm-structure element will be displayed on menu-driven browsers. -->

>     <mm-structure id="structure_1" where="IsMenuDriven">

>        <mm-group-ref idref="group_1" type="normal" depth="flat" display="all" />

>        <mm-group-ref idref="group_2" type="normal" depth="0" display="headings" />

>     </mm-structure>

## SEE ALSO

- mm-group-ref, mm:group-ref
- mm-group

# mm-table-model, mm:table-model

## DESCRIPTION

Use the <mm:table-model> element to enable the MobileAware Interaction Server to transform tables for small devices. Table information can be presented differently depending on the capabilities of the requesting device. Data can be 'flattened' for devices that do not support tables, or for devices that have screen widths that would cause the data to wrap excessively. Multiple table-models can be used to tailor the data presentation to the capabilities of the requesting device. If the device matches more than one table-model where clause, the first one that matches will be used to structure the table. The table-model tag should be placed directly below the XHTML <table> tag. If there are nested tables, a separate table-model tag is required for each nested table. This is an empty tag, so it requires a slash (/) before the final angle bracket (>).

## ATTRIBUTES

- title="..."

This is an optional attribute. If present, it forms the table title when used with the tabletype="group". If title is not present when tabletype="group" and a link name is required, the keyword "Data" will be used instead.

- major="row | column"

Determines whether the data is presented row first, or column first. The default is row first.

- headlocation=""

Identifies which row (or column) number should be used to identify the heading for each section.

- bodylocation=""

This optional attribute specifies which rows or columns are to be displayed. Without this attribute explicitly defined, the MobileAware Interaction Server will default to displaying the entire table although a warning will appear in the MobileAware Interaction Server console. To explicitly direct the MobileAware Interaction Server to display the entire table, set bodylocation="*". Part of the table can be displayed by setting this attribute to a space-separated list of numbers representing the rows (or columns) to be sent to the device.

- tabletype="normal | group"

If the required attribute tabletype is set to normal, the MobileAware Interaction Server will attempt to display the entire table. If the table is bigger than what can be fit onto a 'card', the page will be broken into multiple cards when necessary. Setting tabletype to group causes the table headers to be rendered as links. These links can be navigated to view detailed table content presented in a "table header: table data" pairing. Using tabletype="group" for a device that can render tables will have little effect unless the table is first 'flattened' using sdtransform.

- sdtransform="base-transform"

An optional attribute used to "flatten" tables that are sent to menu-driven devices or PDAs that support tables. This may be necessary to avoid excessive wrapping that could occur if the device were to render the data as a table on a small screen. Table content is presented as a series of "table header: table data" pairings. If the attribute is not present, the result will depend on the table support provided by the device. Using this attribute will have no impact on non-table-supporting devices.

- where=""
  The where attribute enables the author to specify content selection conditions for devices.

where="IsFullBrowser" is not allowed with this tag.
The `where' clause quoted string must not contain line breaks.

Conditions are constructed by specifying device attribute names and allowable values, using comparison operators from the Python programming language. Multiple conditions can be combined to make complex expressions by using the logical 'and', 'or' and 'not' operators from Python.

The MobileAware Interaction Server also supports use of the Python .endswith( ), .startswith( ) and .find( ) methods for partial matching.

Restrictions:

- At least one condition must be specified
- Attribute names must be valid as taken from the MobileAware Device Database
- All String attribute values must be wrapped in single quotes

## EXAMPLE

>     <!-- Two table-model tags have been placed inside the XHTML table in the example. The first one is responsible for transforming tables being delivered to devices that are both capable of rendering tables and have a screen width greater than or equal to 196 pixels. The second one is responsible for transforming tables being delivered to devices that either cannot render tables or have a screen width less than 196 pixels. -->

>     <table border="1">

>        <mm:table-model headlocation="1" bodylocation="*" major="row"
>         tabletype="normal" where="UAProf.BrowserUA.TablesCapable and
>         UsableWidthPixels >= 196" />

>        <mm:table-model headlocation="1" bodylocation="*" major="row"
>         sdtransform="base-transform" tabletype="normal" where="(not
>         UAProf.BrowserUA.TablesCapable) or (UAProf.BrowserUA.TablesCapable and
>         (UsableWidthPixels < 196))" />

>        <tr><td>June</td>

>            <td>July</td>

>            <td>August</td>

>        </tr>

>        <tr><td>Swimming</td>

>            <td>Kayaking</td>

>            <td>Rock Climbing</td>

>        </tr>

>     </table>