XDIME is an xHTML Device Independent Markup Extensions. The acronym originally stood for XHTML with Device Independent Markup Extensions. It is a device independent authoring language. It allows content to be created once but delivered to the myriad traditional and mobile devices that can connect to the Web. Device-specific characteristics of a web site are captured separately as a set of policies that tailor the user experience to the particular type of device being used. Page layout, styling and media, such as images, are examples of resources that are controlled by policies. Style-related policies make use of the W3C CSS 2 specification.
When a device accesses a site authored using XDIME, the markup and the related policies are subjected to Content Adaptation. This creates device-specific materials from the authored content and policies. The device-specific materials are appropriate for the particular device being used to access a site.
XDIME has been in existence since the year 2000. Early in its life it was known as MAML and Marlin before finally gaining the name XDIME. Originally devised by Volantis Systems, the language has appeared in a number of products and services including Volantis' Multi Channel Server (MCS), and IBM's Mobile Portal Accelerator. It is at the heart of dozens of mobile networks across the globe.
The latest version, XDIME 2, is based on the W3C Device Independent Authoring Language (DIAL) specification. DIAL itself includes some of the latest W3C specifications, including XHTML 2.
XDIME-CP is a version of XDIME 2 that is particularly appropriate for content partners providing materials for an operator portal. This version allows the operator to retain some level of control over the look and feel of their portal while simplifying the task of integration.
The original version of XDIME, now known as XDIME 1, is based on XHTML 1.1 and a very early draft of the XForms specification, also from W3C.
Any version of XDIME can be used with a wide range of server-side technologies when creating applications. Ruby/Rails, PHP, Python, Perl and any of the Java web application technologies can be used.