XDIME navigation - WML

WML navigation, designed specifically for WML devices, uses a deck, which contain cards that make up pages shown on the device.

Rendering WML - Pagination/Rendering of Content

The XDIME aggregator provides support for paginating page content for devices that render WML because they typically have limited memory. Pagination is the process of dissecting a page into manageable pieces that will not overrun the device's buffer limit. This process applies only to dissecting the navigation links available on a page. Since the XDIME aggregator does not generate the portlet content, it is up to the portlet developer to minimize the portlet content or use dissecting panes (see the XDIME portlet design tips for more information).
Pagination requires the XDIME aggregator to count the number of bytes used by the markup that will be sent to the device. The XDIME aggregator will generate a deck of WML cards that will not exceed the buffer limit.
Note: The device's buffer size is stored as part of the device policy in the Multi-Channel Server (MCS) database.
To help the aggregator estimate the byte size of the generated deck, several constants are defined in the mwp.properties to indicate the overhead of generating certain markup:
Constant Definition
mwp.tree.wml.conversion.size Used to estimate the amount of conversion overhead the final markup (output from MCS) will undergo before it arrives at the target device. This includes transformations as the markup travels through proxies and other changes in the markup before it is saved in the WML device's buffer (example: The single quote (') character gets converted to " - increasing buffer usage by 5 characters).
mwp.tree.wml.deck.size Used to calculate the number of bytes occupied by the markup that declares the WML deck. If an image is used as a header in the deck, its size should be included in this number. This will be added to the total byte count only once per page response.
mwp.tree.wml.card.size Used to calculate the number of bytes occupied by the markup that declares each WML card. This number will be added to the total byte count for each card added to the deck.
mwp.tree.wml.link.size Used to calculate the number of bytes occupied by the markup that declares each nav link on a WML card.
mwp.tree.wml.do-go.link.size Used to calculate the number of bytes occupied by the markup that declares each <do><go> WML link on a WML card.
These constants may need to be adjusted after installing a new MCS and the amount of generated WML markup overhead differs from the constants listed in the mwp.properties file.

How to determine the value for the constants

The value of mwp.tree.wml.conversion.size is an estimate, but the other constant values can be determined by counting bytes in the markup sent to a WML device from the MCS.
Note:
  • The length of strings and URLs are calculated by the aggregator, so these values should not be included in the constants.
  • The WML Pagination is supported only by the tree (default) view.

The markup in the following example has been formatted. The markup sent to a device will not have carriage return and line feed characters, so these should not be counted when calculating the constant values. Review the code and then look at the values for the various excerpts.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.WAPforum.org/DTD/wml_1.1.xml">
<wml>
  <template>
    <do label="Log in" name="i" type="options">
    <go href="/wps/portal/!ut/p/.scr/Login/_th/J_0_3B/_s.7_0_A/7_0_12S"></go>
    </do>
  
    <do label="I forgot my password" name="p" type="options">
    <go href="/wps/portal/!ut/p/.scr/ForgotPassword/_th/J_0_3B/_s.7_0_A/7_0_12S"></go>
    </do>

  </template>

  <card id="card_0" title="Mobile Portal"><p>
    ...more links...
    <a href="/wps/portal/!ut/p/.cmd/cs/.ce/7_0_A/.s/7_0_15H/_th/J_0_3B/_s.7_0_A/7_0_12S/_s.7_0_A/7_0_15H">PageA</a><br/>
    ...more links...
  </p><p></p></card>
</wml>

The following sections of code from the example show the sections of code that are used to determine the constant size.




Terms of use
(C) Copyright IBM Corporation 2012. All Rights Reserved.