MobileAware Interaction Server User Guide
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
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 (>).
<!—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"/>
<%-- 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>
<%-- 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>
Acts as a container for the content within an <mm-group> element.
The <mm-group> element is used to organize your content into logical sections.
<!— 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>
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."
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:
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:
<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.
Acts as a container for elements to be excluded when specific devices are targeted.
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.
<!-- 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>
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 (>).
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"
Specifies the level at which the navigation hierarchy starts. This attribute can only be used when display="headings"
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.
This attribute is used for styling navigational menus for PDAs and menu-driven devices.
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.
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.
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.
<!-- 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>
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 (>).
<%-- 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" />
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 (>).
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.
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.
<!—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>
Acts as a container for elements that are to be included when a specific device class is targeted.
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.
<!-- 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>
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 (>).
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.
<!-- 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>
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.
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.
<!-- 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>
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.
Allowed values are "once" or "always" indicating whether a logo should be displayed once per session or for every request.
<!-- 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>
<!-- 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>
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.
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.
<!-- 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>
This tag name comes from the words "navigation list". It allows authors to create and style navigation lists that can specifically target mobile 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.
<!-- 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>
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.
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.
<!— 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>
Used to include a dialable phone number link in content delivered to WTAI enabled devices.
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.
<!--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>
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.
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.
Note: The attribute values `assignall' and `assignempty' are not supported on iMode phones.
<!-- 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>
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 (>).
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.
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.
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.
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="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.
<!-- 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>
![]() ![]() |
![]() |
![]() |