Home /Java / RefGuide

WALL
the Wireless Abstraction Library

Back to WALL

Reference Guide
PDF version

WALL tags
  a
  alternate_img
  b
  block
  body
  br
  caller
  cell
  cool_menu
  cool_menu_css
  document
  font
  form
  h1,..,h6
  head
  hr
  i
  img
  input
  load_capabilities
  marquee
  menu
  menu_css
  option
  select
  title
  wurfl_device_id
  xmlpidtd


Support This Project

java.net logo

SourceForge.net Logo
 

WALL reference Guide
by Luca Passani
passani at eunet dot no


If you are using WALL, chances are that you are aware of the different mark-up language available for different wireless devices around the globe.

Target Audience

This reference is made for developers who need to create wireless services for existing and future browsers.

To use WALL profitably, you need to possess a smattering of HTML and XML.
To add to that, knowledge of XHTML MP, CHTML and WML will be a great advantage in fine-tuning your application for specific devices.
This is not strictly necessary, though.
WALL is currently available for the Java SDK 1.4 platform. Familiarity with the following Java technologies is an advantage:
  • Java programming language
  • Java Servlet and JSP
  • Jakarta Tomcat configuration
This document will list all the tags supported by the WALL tag library in alphabetic order.

WALL tags

a, alternate_img, b, block, body, br, caller, cell, cool_menu, cool_menu_css, document, font, form, h1,h2,h3,h4,h5,h6, head, hr, i, img, input, load_capabilities, marquee, menu, menu_css, option, select, title, wurfl_device_id, xmlpidtd.


'a' tag

This element implements a link (AKA hyperlink) on the target device. Being the foundation of hypertext navigation, this standard is pretty standard on all wireless devices.
The capabilities
Attribute* Value WML XHTML CHTML Comments    
accesskey [1..9] Some Yes Yes Keypad accelerator
href URI Yes Yes Yes Link to URI
opwv_icon [1..255] Some Some No Built-in icon for Openwave devices. Only applies when hyperlink is used inside a 'menu'
title short string Some Some No Softkey label
* bold = Mandatory, Some = Supported by Some Devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
imode_region chtml_ui used to choose emoji version
menu_with_select_element_recommended wml_ui only applies to WML devices


'alternate_img' tag

'alternate_img' tag provides a way to multiserve pictures out of a unique image tag. For this reason, alternate_img can only be used inside an 'img'.
In order to influence the actual rendering of the parent 'img' tag, a request must verify two conditions:
  • the one in the 'test' attribute (mandatory)
  • the one implied by the use of one of the other 4 attributes (the 'src' attribute does not imply a condition)
Note: in addition to 'test', you must use one (and only one) of the other 5 attributes or WALL will generate an error.

The 'test' attribute allows the developer to specify an arbitrary condition (for example a WURFL capability value or a condition based on such values).
The 'src' attribute specifies a (typically different) image url to be used by the parent 'img' tag whenever the test condition evaluates to true.
The 'nopicture' attribute issues a directive to the parent 'img' tag to refrain from rendering the picture specified in the 'src' attribute of the img tag.
'opwv_icon' can only influence the rendering of a picture for devices that support the Openwave built-in icons. If test is true, those devices will display an Openwave icon rather than the picture specified by the parent img tag.
'eu_imode_icon' and 'ja_imode_icon' work similarly to 'opwv_icon', but they apply to imode devices only.

Attribute Value WML XHTML CHTML Comments    
test true,false Yes Yes Yes Applies to this request
src String Yes Yes Yes URL to alternative image
nopicture true,false Yes Yes Yes If test is true, do not display any picture
opwv_icon String Yes** Yes** no Alternative Openwave icon
eu_imode_icon String no no Yes Imode icon (European Devices)
ja_imode_icon String no no Yes Imode icon (japanese devices)
** = may not be supported by some devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
imode_region chtml_ui ja|eu|us|as|none
opwv_xhtml_extensions_support xhtml_ui true,false
opwv_wml_extensions_support wml_ui true,false


'b' tag

The b tag is supported by all WAP 1.X and WAP 2 devices, but it cannot be used inside anchors (hyperlinks) on WML devices.
In addition, CHTML devices do not recognize the b tag (even though they typically do not crash).
This tag fixes the problem by disappearing for CHTML and WML (when used inside an hyperlink).

No attributes are defined for this tag

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'block' tag

This element typically maps to the p tags on the different devices. This tag was introduced to multi-serve different syntaxes to align the text. Also note that either 'p' tags or block need to be used in order to serve valid WML and XHTML MP mark-up.
Attribute Value WML XHTML CHTML Comments    
align left,right,middle,center Yes Yes Yes Keypad accelerator


This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'body' tag

The body tag will multiserve the body of a wireless document. This implies that for WML browsers, a WML 'card' element will be produced.
Some HTML attributes are also supported. They will be:
  • rendered as is for CHTML browsers
  • turned into the corresponding CSS for XHTML MP
  • simply ignored for WML devices
Some WAP 1.X devices (notably Nokia) require the insertion of the 'template' element to make the back button available to end users. The default label is 'Back', the 'wml_back_button_label' attribute lets one override that with a different label.
Attribute* Value WML XHTML CHTML Comments    
bgcolor String no Yes** Yes** Background Color
text Color of text no Yes** Yes** Link to URI
wml_back_button_label String Yes** no no Label for Back Button on Nokia devices (default = 'Back')
disable_wml_template true,false Yes** no no Never produce a <template> tag for any WML device
newcontext true,false Yes no no Add a newcontext="true" for WML devices
* bold = Mandatory, Some = Supported by Some Devices,
** = may not apply to some devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
xhtml_document_title_support xhtml_ui Does WAP 2 device render title?
built_in_back_button_support wml_ui <template> element required to force back button?
card_title_support wml_ui Does WAP 1.X device render title


'br' tag

The br tag is supported by all devices. Alas, because of CHTML well-formdness, some devices require that 'br' is escaped (i.e.<br/>) while others actually ignore escaped 'br'.


No attributes are defined for this tag

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'caller' tag

Most wireless devices support a syntax of some kind to let users start a telephone call by clicking an hyperlink.
Some devices do not support this feature, while some others support it but with different syntax.
The 'caller' tag abstracts that away.
Attribute* Value WML XHTML CHTML Comments    
accesskey [1..9] Some Yes Yes Keypad accelerator
alt String No Yes Yes Alternative text if device does not support call
cti String no no Yes** CHTML device support this for complex dial combinations
opwv_icon [1..255] Some Some no Built-in icon for Openwave devices. Only applies when hyperlink is used inside a 'menu'
tel String Yes** Yes Yes Telephone Number to Call
* bold = Mandatory, Some = Supported by Some Devices
** = not all devices support this.

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
xhtml_make_phone_call_string xhtml_ui Syntax supported to start a phone call
wml_make_phone_call_string wml_ui Syntax supported to start a phone call
chtml_make_phone_call_string chtml_ui Syntax supported to start a phone call
menu_with_select_element_recommended wml_ui only applies to WML devices


'cell' tag

'cell' this tag only makes sense inside a coolmenu.
Its task is to render tables for devices which support them and make sure that imode and WAP 1.X devices get the line breaks in the right place.

No attributes are defined for this tag

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
chtml_table_support chtml_ui true,false


'cool_menu' tag

'cool_menu' implements advanced graphical menus a-la 'VodaLive'. With the advent of cool WAP 2.0 devices equipped with big screen colors, all of the major carriers and wireless portals have implemented cool looking entry pages to their services. Of course, those cool pages do not work the way they are on old WML devices.
Coolmenus are the WALL way to implement advanced graphical menus which degrade gracefully on all devices. The power of cool menus is best exploited when used together with 'img' and 'alternate_img' tags to multiserve the graphical icons.
By default, cool menus are displayed in a grid of two columns (for devices which support tables), but this can be changed by setting the 'colnum' and 'tabularize' attributes. As far as colnum, nothing prevents you from dynamically setting the number of columns as a function of the display width as derived from the WURFL.
There are cases in which one may want to represent the menu as a list, rather than a a table. Setting tabularize to false will make WALL generate a list of hyperlinks (each preceeded by the picture) also for those devices which can display the menu as a matrix.
Important Note: if you explicitly set the colnum and tabularize attributes in the cool_menu, you need to make sure that the corresponding attributes are set with the same values in the cool_menu_css tag.
Attribute Value WML XHTML CHTML Comments    
colnum Integer no Yes Yes** Number of columns (default: 2)
tabularize true,false no Yes Yes disable attempt to display as a table (resort to menu)
* bold = Mandatory, Some = Supported by Some Devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
chtml_table_support chtml_ui true,false. Does Imode device support tables?
xhtml_table_support xhtml_ui true,false. Does XHTML device support tables?


'cool_menu_css' tag

'cool_menu_css' only makes a difference on XHTML MP devices.
It appears that different XHTML devices display the content in each tables aligned differently on different device/browsers combination.
In addition, some devices display the table left-aligned (i.e. with a bunch of unused screen space on the right), while others automatically center the table and stretch it along the full width of the display.
Fortunately, WCSS can help to reconcile these differences. This tag makes sure that the CSS is rendered, but only for XHTML devices.
The 'colnum' attribute is necessary to calculate the cell width to be specified by the CSS. This value must be the same as the one fed into the colnum attribute in the cool_menu tag in the same page (or the results would be unpredictable). Default value is 2 (colunms).
Important Note: if you explicitly set the colnum and tabularize attributes in the cool_menu_css, you need to make sure that the corresponding attributes are set with the same values in the cool_menu tag.
Attribute Value WML XHTML CHTML Comments    
colnum Integer no Yes no Number of columns (default: 2)
tabularize true,false no Yes Yes disable attempt to display as a table (resort to menu)


This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
chtml_table_support chtml_ui true,false. Does Imode device support tables?
xhtml_table_support xhtml_ui true,false. Does XHTML device support tables?


'document' tag

The 'document' tag is responsible for returning the right MIME-type for the mark-up returned by WALL according to the following scheme:
  • XHTML MP - text/html
  • CHTML - text/html
  • WML - text/vnd.wap.wml
In addition, WALL will try to use some extensions available for the Openwave browser whenever used in connection with the MAG/UP.Link Openwave gateway. These extensions can be disabled explicitly, if, for any reason, one needs to.
Finally, there is a directive to attempt to disable caching.
Attribute* Value WML XHTML CHTML Comments    
disable_wml_extensions true|false Yes no no Disable Openwave Extensions
disable_xhtml_extensions true|false no Yes no Disable Openwave Extensions
disable_cache true|false Yes Yes no Disable Openwave Extensions
disable_content_type_generation true|false Yes Yes Yes Prevent WALL from generating the MIME type
* bold = Mandatory, Some = Supported by Some Devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
imode_region chtml_ui used to choose emoji version
menu_with_select_element_recommended wml_ui only applies to WML devices
opwv_xhtml_extensions_support xhtml_ui true,false
opwv_wml_extensions_support wml_ui true,false


'font' tag

'font' tag is a CHTML tag which all web programmer know. It will render virtually verbatim on CHTML devices. XHTML MP devices will use the corresponding CSS. While this is not guaranteed to work on all devices, it will degrade gracefully.
WML devices will not be served any tags at all, just the content.
Attribute Value WML XHTML CHTML Comments    
color String no Yes** Yes Text Color
face String no Yes** Yes** Font Family
size +1,-1,Integer no Yes** Yes** Font Size
** = may not be supported by some devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'form' tag

'form' multiserves the form element for HTML and encapsulates the info to render forms in WML compatibility mode.
Attribute* Value WML XHTML CHTML Comments    
action URI Yes Yes Yes Servelet or JSP to post to
enable_wml true,false Yes no no Enable WML rendering for WML devices
method get,post Yes Yes Yes HTTP post methid (get or post)
* bold = Mandatory, Some = Supported by Some Devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'h1',...,'h6' tag

h1...h6 tags are supported by all CHTML and XHTML devices, but not WML devices. For WML devices, the content is highlighted with the <b> tag.

No attributes are defined for this tag

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'head' tag

'head' element is simple. It encapsulate the WALL 'title' tag (to mimic HTML syntax) and can contain non-WALL meta tags.
The 'head' tag is responsible for producing the top tags for each mark-up.

This tag has no attributes


This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'hr' tag

The hr tag is supported by CHTML and XHTML devices. Because of XHTML well-formdness, some devices require that 'hr' is escaped (i.e.<br/>) while others actually ignore escaped 'hr'.
As far as WML is concerned, WLM does not support the 'hr' element (some version of the Openwave browser Version 5 actually did. Currently WALL does not take advantage of this). For WML devices hr rendered as "<br>---<br>".
Please note that hr cannot be used inside a block or a form. The reason for this is that it would break well-formedness. Some devices (notably the SonyEricssons) break on this.
Attribute Value WML XHTML CHTML Comments    
color String No Yes Yes String representing color


This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'i' tag

While the i tag is supported pretty much by all devices, it cannot be used inside anchors (hyperlinks) on WML devices.
This tag fixes the problem effectively, by singling out that particular case.

No attributes are defined for this tag

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'img' tag

The 'img' tag is apparently just a wrapper around the 'img' tag as used in the three wireless mark-ups. When used together with 'alternate_img', though, you have a powerful tool to serve different pictures to different kinds of devices.This is particularly true if you use JSTL to perform tests on WURFL conditions to select alternate values for the 'src' attribute.
Having said this, 'img' itself is pretty straightforward to understand and use: just set the 'src' and 'alt' attributes.
Note: This tag performs some magic when used inside a coolmenu to add line-brakes and extra space correctly.
Attribute Value WML XHTML CHTML Comments    
src URL Yes Yes Yes URL to actual picture
alt String Yes Yes Yes accompanying text


This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
imode_region chtml_ui ja|eu|us|as|none


'input' tag

The 'input' tag is often turned into an 'input' tag also in the target mark-up. Neverthless there is quite a lot of magick going on to emulate hidden-fields, submit buttons, formats and so on.
When used in WML compatibility mode, the number of legal types for the 'input' element is limited to 'text','password','hidden','submit'
Attribute* Value WML XHTML CHTML Comments    
accesskey [1..9] Some Yes** Yes Keypad accelerator
checked 'checked' no Yes Yes 'checked' attribute
disabled 'disabled' no Yes no 'disabled' attribute
emptyok 'emptyok' Yes Yes no 'emptyok' attribute
format String (see format attribute spec) Yes Yes Partly*** Link to URI
maxlength Integer Yes Yes Yes 'maxlength' attribute
name String Yes Yes Yes 'name' attribute
size Integer Yes Yes Yes 'size' attribute
type 'text', 'password', 'hidden', 'submit' **** Yes Yes Yes 'type' attribute
value String Yes Yes Yes 'value' attribute
title String Yes Yes no 'title' attribute for WML and XHTML MP devices
* bold = Mandatory, Some = Supported by Some Devices
** = may not be supported by some devices
*** partly = CHTML lets you specify numeric mode for the keyboard
**** = This applies to WML compatibility mode. Outsde of it, you can use any value ('radio' and 'check' too, for example)


This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
xhtml_format_as_css_property xhtml_ui decent CSS support for format?
xhtml_format_as_attribute xhtml_ui support 'format' attrivute in XHTML?
softkey_support* wml_ui are softkeys supported?
wml_1_3* markup is wml 1.3 supported?
* = these two capabilities together are used to optimize the use of the submit button for some WML 1.3 devices with the Openwave browser.

'load_capabilities' tag

The 'load_capabilities' tag is needed for those who intend to use the conditional tags in the JSTL with WALL as in the example below:

<c:if test="${capabilities.gif}">

Loading the capabilities is sort of expensive the first time, so it's wise to avoid that operation unless you know you need it.

Invoking the load_capabilities tag will make the following variables available for your scripting:

${capabilities.'capability_name'}  =  wurfl capability

${wall_markup}                     =  xhtmlmp, wml, chtml

${brands}                          =  list of device brands

${devices.'brand_name'}            =  list of devices grouped by brand

${device_id}            =  WURFL device_id (debugging purposes)

No attributes are defined for this tag

No capabilities are queried by this tag



'marquee' tag

'marquee' tag is a CHTML tag which all web programmer know. It will render virtually verbatim on CHTML devices. XHTML MP devices will use the corresponding CSS. While this is not guaranteed to work on all devices, it will degrade gracefully.
WML devices will not be served any tags at all, just the content.
Attribute Value WML XHTML CHTML Comments    
behavior 'scroll', 'slide', 'alternate' no Yes** Yes 'behavior' attribute
direction 'left', 'right' no Yes** Yes 'direction' attribute
loop String no Yes** Yes 'direction' attribute
bgcolor Integer,'infinite' no Yes** Yes 'bgcolor' attribute
** = may not be supported by some devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
xhtml_nowrap_mode xhtml_ui is 'nowrap' mode supprted?
xhtml_marquee_as_css_property xhtml_ui support marquee through XSS


'menu' tag

'menu' implements navigation menus. The two attributes concern automatic numbering and disabling of fancy coloring for menus on devices that support that.
Attribute Value WML XHTML CHTML Comments    
autonumber false,true Yes** Yes Yes Implement keyboard accelerators
colorize false,true no Yes** no Do fancy XHTML devices (on devices that support it)
* bold = Mandatory, Some = Supported by Some Devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
xhtml_supports_table_for_layout xhtml_ui decent table support?
xhtml_supports_css_cell_table_coloring xhtml_ui CSS powerful enough to color table cells


'menu_css' tag

'menu_css' producess CSS information necessary to have colorized menus for advanced XHTML MP devices.
The two good background colors are derived from the WURFL (which gives you a great way to configure your look & feel on a device-by-device basis), but those values can also be overriden in the code by setting them through the two attributes.
Attribute Value WML XHTML CHTML Comments    
bgcolor1 String no Yes no First good background color
bgcolor1 String no Yes no Second good background color


This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML
xhtml_supports_table_for_layout xhtml_ui decent table support?
xhtml_supports_css_cell_table_coloring xhtml_ui CSS powerful enough to color table cells
xhtml_readable_background_color1 xhtml_ui good background color 1
xhtml_readable_background_color2 xhtml_ui good background color 2


'option' tag

'option' maps to 'options' tag also on the different target mark-ups. Nothing special there.
Attribute* Value WML XHTML CHTML Comments    
selected 'selected' no Yes Yes 'selected' attribute
value String Yes Yes Yes 'value' attribute
* bold = Mandatory, Some = Supported by Some Devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'select' tag

'select' maps to 'select' on target mark-ups.
Attribute* Value WML XHTML CHTML Comments    
disabled 'disabled' no Yes Yes 'select' attribute
multiple 'multiple' Yes Yes Yes 'multiple' attribute
name String Yes Yes Yes 'name' attribute
title Short String Yes** Yes** No 'title' attribute
size Integer Yes Yes Yes 'size' attribute
* bold = Mandatory, Some = Supported by Some Devices
** = may not be supported by some devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'title' tag

'title' maps to the 'title' tag for XHTML and CHTML devices. On WML browsers, this is mapped to the 'title' attribute of the 'card' element.
Attribute* Value WML XHTML CHTML Comments    
enforce_title true,false Yes Yes no make sure the the title is explicitly set for devices that don't render it by default
* bold = Mandatory, Some = Supported by Some Devices

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML


'wurfl_device_id' tag

This element is useful exclusively for debugging in those cases where you wonder which device ID and USer-Agent is being inferred by the system for the current device.
Attribute* Value WML XHTML CHTML Comments    
ua Any non-empty string Yes Yes Yes when set, also display UA string


No capabilities are queried by this tag



'xmlpidtd' tag

'xmlpidtd' means XML Processing Instruction and DTD. This tag makes sure that the right XML headers (if any) are produced for the target mark-up.

No attributes are defined for this tag

Attribute Value WML XHTML CHTML Comments    
encoding String Yes Yes No Encoding String

This tag relies on the following WURFL capabilities:

WURFL capability name Group Comments    
preferred_markup markup CHTML/XHTML/WML



Copyright © 2008, Luca Passani