X-Smiles 1.1 features
Feature table
The following table briefly lists all the main features of the browser. Click on the links to see more detailed feature lists.
Please see release.txt for release specific details.
SMIL
This is an implementation of SMIL 2.0 Basic Profile. Also, some additional modules have been implemented. Check the table below for some missing features.
1. Supported features
| Feature | Support | Notes |
| SMIL 2.0 Basic |
| Structure Module |
| <smil> | Yes | id, class, xml:lang and title attrs ignored. |
| <head> | Yes | id, class, xml:lang and title ignored. |
| <body> | Yes | id, class, xml:lang and title attrs ignored. |
| BasicContentControl Module |
| systemAttributes | Yes | |
| <switch> | Yes | |
| Test Attribute In-line use | Yes | |
| SkipContentControl Module |
| skip-content attr. | No | |
| Metainformation Module |
| <meta> | Yes | |
| <metadata> | Yes | |
| BasicLayout Module |
| <layout> | Yes | |
| <region> | Yes | |
| <root-layout> | Yes | |
| region attr. | Yes | Does not render in multiple regions. |
| BasicLinking Module |
| <a> | Partially | Timing not resolved completely when a link is followed. |
| <area> (<anchor>) | Partially | nohref, shape attr. missing. No precedence for overlapping areas. See also <a> element. |
| BasicMedia Module |
| <ref>, <animation>, <audio>, <img>, <text>, <textstream> and <video> | Yes | XMLBase namespace not understood. |
| BasicInlineTiming Module |
| dur attr. | Yes | |
| begin attr. | Partially | Negative offsets don't work with repeats. |
| end attr. | Yes | |
| MinMaxTiming Module |
| min attr. | Partially | 'media' value not done. |
| max attr. | Partially | 'media' value not done. |
| BasicTimeContainers Module |
| <seq> | Partially | begin attr can be negative. |
| <par> | Yes | |
| fill attr. | Yes | "transition" works like "freeze". "freeze" does not fill gaps between media in <seq>. |
| endsync attr. | Yes | SMIL 1.0 id values not supported. |
| RepeatTiming Module |
| repeatDur attr. | Yes | |
| repeatCount attr. | Partially | Can handle only integers if dur is not specified. |
| repeat attr. | Partially | SMIL 1.0 repeat attr mapped to use repeatCount. |
| SyncbaseTiming Module |
| begin attr. | Partially | Works only between sibling elements. |
| end attr. | Partially | Works only between sibling elements. |
| Other modules |
| EventTiming Module |
| begin attr. | Yes | |
| end attr. | Yes | |
| CustomTestAttributes Module |
| <customAttributes> | Yes | |
| <customTest> | Partially | override attribute missing. |
| customTest attr. | Yes | |
| BrushMedia Module |
| <brush> | Yes | inherit attr. is prohibited |
| BasicAnimation Module |
| <animate> | Yes | |
| <set> | Yes | |
| <animateMotion> | Yes | |
| <animateColor> | Yes | |
| MultiWindowLayout Module |
| <topLayout> | Yes | |
| EventTiming Module |
| <begin end attr.> | Partially | Special cases won't work (restart etc.). |
| Supported media |
| Text | Java | plain text, very simple xhtml with CSS style for fonts+colors |
| Image | Java | GIF (transparent & animated), JPEG and PNG (transparent) |
| Audio | Java | Ogg Vorbis (streamed) |
| Audio | JMF | AIFF, AU, AVI, GSM, MIDI, MP2, MP3, QT, RMF and WAV |
| Video | JMF | AVI, MPEG-1, QT, H.261 and H.263 |
| Other | XML | SMIL, XSL FO and SVG |
2. Animation
The following target elements can be animated by the implemented BasicAnimation Module. Note that SplineAnimation Module has not been implemented.
| Elements | Target Element | Target Attributes |
| animate | region | left, right, top, bottom, width, height, backgroundColor (z-index and regionName missing) |
| area (anchor) | Not supported (coords missing) |
| text, img, audio, animation, video, ref, textstream | Not supported (HierarchicalLayout Module missing) |
| brush | color (HierarchicalLayout Module missing) |
| set | region | left, right, top, bottom, width, height, backgroundColor (z-index and regionName missing) |
| area (anchor) | Not supported (coords missing) |
| text, img, audio, animation, video, ref, textstream | Not supported (HierarchicalLayout Module missing) |
| brush | color (HierarchicalLayout Module missing) |
| animateMotion | region | left, top |
| text, img, audio, animation, video, ref, textstream | Not supported (HierarchicalLayout Module missing) |
| animateColor | region | backgroundColor |
| text, img, audio, animation, video, ref, textstream | Not supported (HierarchicalLayout Module missing) |
| brush | color |
3. Events
Currently, the elements send the following events. These can be listened by EventTiming module or XML Events.
| Event | Notes |
| beginEvent | When an element starts. No bubbling. |
| endEvent | When an element ends. No bubbling. |
| repeatEvent | When an element repeats. No bubbling. |
| activateEvent | When an element is clicked. No bubbling. |
| inBoundsEvent | When mouse enters over an element. No bubbling. |
| outOfBoundsEvent | When mouse moves out of an element. No bubbling. |
| topLayoutOpenEvent | SMIL MultiWindowLayout event. When a toplayout opens. No bubbling. |
| topLayoutCloseEvent | SMIL MultiWindowLayout event. When a toplayout closes. No bubbling. |
| click | DOM Mouse Event. When an element is clicked. Bubbles. |
| mouseover | DOM Mouse Event. When mouse moves over an element. Bubbles. |
| mouseout | DOM Mouse Event. When mouse moves out of an element. Bubbles. |
| mousedown | DOM Mouse Event. When mouse button is pressed. Bubbles. |
| mouseup | DOM Mouse Event. When mouse button is released. Bubbles. |
4. Dynamic SMIL
An extended
SMIL-DOM is supported. Also, the following methods can be used to begin and end elements in scripts.
- beginElement()
- beginElementAt(int)
- endElement()
- endElementAt(int)
5. Notes
- For details about supported media formats when using JMF 2.1.1, see JMF 2.1.1 Supported Formats.
- Ogg Vorbis is supported without JMF. The media is streamed. It won't work if JMF has been used. Player implemented by JCraft, www.jcraft.com
- rtsp protocol can be used within SMIL docs, but rtsp tunneling via http is not supported.
- Links into middle of a document causes errors - the parent time containers will not know the correct position. The links also confuse the end of the SMIL presentation.
- Syncbase timing (id.begin+2s) works only between sibling elements, not over time containers.
- SMIL 1.0 support is minimal. SMIL 1.0 id values not supported. SMIL 1.0 system attributes do work.
- repeat attribute doesn't work as SMIL 1.0 specification defines it.
- SMIL basic layout language is supported. Also, alternative CSS layout model (type="text/css") is supported.
- There is no strict validation for the SMIL files.
- Scripting is possible using XML Events. See the demo for details.
- Note: XPointer doesn't work in links (not required by the spec).
- To use the standalone SMIL players, see the instructions.
- systemComponent attribute currently understands one URI: "http://www.x-smiles.org".
- The meta element's base attribute is supported. XMLBase attribute is not implemented.
- Element restart behaviour is not well supported.
See the XForms features document.
SVG
1. Supported features
SVG (Scalable Vector Graphics) is supported in X-Smiles by an embedded viewer. This viewer is the August 6th 2000 release of the CSIRO SVG Toolkit (open source). It supports the
W3C SVG Candidate Recommendation (2 Aug 2000).
X3D
1. Supported features
X3D (Extensible 3D Graphics) is supported in X-Smiles by an embedded viewer. This viewer is the M4 release of the Xj3D Open Source VRML/X3D Toolkit (open source). It supports the Web3D X3D Specification. See the Xj3D web site for details about the viewer.
Note that viewing X3D documents requires installing the Java3D package, see installation for details.
Displaying X3D documents also requires installing an Extension MLFC.
Cascading Stylesheets
See CSS implementation chart.
XHTML
XHTML Basic implementation chart.
XHTML 2.0 implementation chart.
SIP
Supported features:
Authentication:
Only Digest authentication with MD5 algorithm is supported.
Registration:
Registration to proxyserver is supported.
Calls:
Basic calls with or without proxies are supported. This includes unsuccesfull call attempts (busy, declined and canceled calls)
RTP streams:
Videocapturing and sound capturing. Can send H263/RTP and GSM streams. Can receive ulaw,gsm, G723, DVI, JPEG and H263 RTP streams.
Calls and server registration&authentication have been tested with sip.sipcenter.com server and Columbia University's SIPC.
Testing instructions:
As a standalone application:
java fi.hut.tml.xsmiles.sip.SipXSmilesClient username (audioport) (videoport) (videoCapture) (servername) (passwd), where videoCapture is true or false and servername + passwd makes this program to operate with proxy.
Default values are:
audioport = 2000
videoport=3000
videoCapture=false
With xsmiles:
Open 'sip.fo' page.
XML Events
X-Smiles has full implementation of the XML Events Last Call Working Draft.
For examples, see the SMIL/XForms scripting demos.
The scripting language used is EcmaScript, see below.
EcmaScript
X-Smiles uses an embedded
Rhino EcmaScript interpreter to evaluate EcmaScript in the documents.
EcmaScript binding for DOM level 2 is provided:
textnode = document.getElementsByTagName("name").item(0).getFirstChild();
textelem.setNodeValue("Changed by ECMAScript");
SMIL supports changing most of the attributes. Timing attributes should not be changed.
XForms supports interactively changing the instance data and most of the mouse events.
SVG supports complete interactivity.
XSLFO does not currently support interactively changing the document.
Browser object.
browser.alert("Alert from ECMAScript");
browser.print("debug");
browser.println("debug");
browser.navigate("http://www.x-smiles.org/")
Navigator object.
As in other browsers.
XSL Formatting Objects
1. General
XSL Formatting Objects are supported with the
Apache FOP viewer as the basis. Currently the version 0.20.1 is used. FOP supports the
November 2000 W3C Candidate Recommendation with some limitations.
2. Limitations
The viewer has the limitations concerning XSL FO listed in FOP' s limitations.
The limitations of FOP itself include:
- FOP's AWTRenderer is a previewer, which prints contents one page at the time to a graphics object. Therefore changing content after rendering or using an active background would need rewrite of the renderer to use awt/swing components.
- Scripting is not supported. Adding script support could be laborious, because DOM tree is no longer visible to the renderer, which handles the FOP Area Tree.
3. Extensions
- Limited support of XForms
- External basic links (fo:basic-link element with external destination)
- Relative URL support in external images
- The use of Java font metrics instead of PDF font metrics as in original FOP.
- Support of Java 1.1 in the AWT Viewer.
XML and XSLT
X-Smiles supports any
JAXP capable namespace-aware XML parser/ XSLT transformer. The tested ones are
Xerces parser (2.3.0) and
Xalan (2.3.1).
Multiple GUIs / skins
X-Smiles has multiple GUIs (Phone, Mobile, FTV and Tabbed) and supports the changing of GUI's while running. It is even possible to change GUI while watching a SMIL presentation.
Timesheets
X-Smiles has an implementation of Timesheets. It is based on a paper by Kate, W. et. al. and SMIL 2.0.
The implementation supports sequential, parallel and exclusive time containers, prefetching the contents, repeating, dispatching and listening to XMLEvents and setting a certain CSS pseudo-class to an element (class attribute of <item>)
| Feature | Attributes | Notes |
| <timesheet> | - | Root element |
| Time containers |
| <seq> | begin, dur, repeat | Sequential time container |
| <par> | begin, dur, repeat | Parallel time container |
| <excl> | begin, dur, repeat | Exclusive time container |
| Item element |
| <item> | select, prefetch, class, begin, dur, repeat | Item element |
A short example of Timesheets. There's a few more in the demos of X-Smiles
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:time="http://www.x-smiles.org/2004/timesheet"
xmlns:ev="http://www.w3.org/2001/xml-events">
<head>
<time:timesheet>
<time:seq>
<time:par>
<time:item select="#slide1"/>
<time:item select="#pagenum1"/>
<time:item select="#bullet1" begin="2s"/>
<time:item select="#bullet2" begin="4s"/>
<time:item select="#bullet3" begin="6s"/>
<time:item select="#bullet4" begin="8s"/>
<time:item select="#continue" begin="10s"/>
</time:par>
<time:par begin="continue.DOMActivate">
<time:item select="#slide2"/>
<time:item select="#pagenum2"/>
<time:item select="#bullet5" begin="2s"/>
<time:item select="#bullet6" begin="4s"/>
</time:par>
</time:seq>
</time:timesheet>
</head>
<body>
<div id="slide1">
<p>Introduction</p>
<p id="bullet1">o Some intro to WLAN</p>
<p id="bullet2">o Some intro to WLAN</p>
<p id="bullet3">- Subbullet</p>
<p id="bullet4">- Subbullet</p>
<p id="pagenum1">1</p>
<a href="" id="continue" ev:event="DOMActivate"
ev:defaultAction="cancel">Next slide</a>
</div>
<div id="slide2">
<p>Technology</p>
<p id="bullet5">o Details about WLAN</p>
<p id="bullet6">- Subbullet</p>
<p id="pagenum2">2</p>
</div>
</body>
</html>
Copyright (c) 2000-2008 X-Smiles.org et.al.