Cover page images (keys)

XPATH access functions for mobile network enablers

Kevin Smith, <Vodafone R&D>

Hit the space bar for next slide


Mobile use cases for content selection

XPATH access functions

DISelect processors must support a basic XPATH subset. This provides access to the delivery context so that conditional statements may be evaluated, and hence content included or excluded from the processor output.

Note that arguably the most powerful XPATH feature, the ability to identify nodes and axes, is excluded in DISelect Basic, presumably since there is no guarantee that the delivery context has an XML binding. As such this weakens the argument for selection expressions to be written solely in XPATH, given (for example) the growth of JSON where Javascript expressions could be more suitable. In any language, XML entities must be escaped, notably '>' to &gt; which is relatively cumbersome.

The convenience functions are sourced from CSS3, which also aims to filter styles according to device display properties

By defining a namespace for mobile delivery context functions, we provide developers with a means to actively inform networks and proxies how to select their content, rather than a simple 'best effort' restyling of a desktop Web page.

Examples (with illustrative namespace):

mob:bearer() = '3G'
mob:user-profile() = 'icra:'
mob:device-profile() != 'midp2.0'

These functions could be reused in DIAL or the DIAL XSLT plugin to facilitate content selection semantics with existing content. It may be possible to truncate the statements to identify nodes to be evaluated:

	<li role="mob:3G"><a href="3g.xml">A 3G link</a></li>

...with an XSLT performing the mob:bearer() = '3G' evaluation on those nodes.