CMIL is Contextual Media Integration Language. This specification details the syntax and semantics of CMIL version 0.9. The elements and attributes which constitute CMIL are presented in the following format:
The element is presented, followed by an excerpt from the CMIL DTD like so:
<!--=========== META element =========================================-->
<!ELEMENT meta EMPTY >
<!ATTLIST meta
name CDATA #REQUIRED
content CDATA #REQUIRED >
The use of the element is then decribed.
Attributes of elements that warrant special explanation are then described. Note however, that not all element attributes are dicussed in this specification. A forthcoming more complete version of the specification will address all valid element attributes.
In some cases, the description will contain examples of the elements's use in sample CMIL document excerpts.
Lastly, the description may contain notes pointing to conceptual or practical problems yet to be resolved, issues for future consideration, references to online resources and the like. Below is an example note:
CMIL uses a number of elements familiar to authors of HyperText Markup Language (HTML) and Synchonized Multimedia Integration Language (SMIL) documents. This was done to leverage the intellectual fruit of existing standard internet languages, maximize the interoperability of CMIL with such languages and make the coding of CMIL as simple, familiar and intuitive to internet media authors as possible. Readers are alerted to the use of constructs from these World Wide Web Consortium (W3C) languages as well as other sources of external material where appropriate in this specification.
Contextual Media Integration Language (CMIL) is an XML-derived tag language used to describe the relationships between digital multimedia files and contextual information so that they may be presented to users via a CMIL "browser".
CMIL media objects (called nodes) may have an unlimited number of metadata properties (called attributes), some of which may be spatial like an associated geophysical position in lattitude, longitude and altitude. Others may be linear like time or temperature or categorical like a system state or a discrete name. Categorical values may be clustered.
A CMIL 0.9 document is composed of three section:
The HEAD and BODY elements must be direct child elements of the document root CMIL element.
A simple CMIL document follows:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cmil SYSTEM
"http://www.oacea.com/cmil/cmil-0.9.dtd">
<cmil>
<head>
<title>Simple CMIL Document</title>
</head>
<body>
<node>
<attributes></attributes>
<media>
<text>Simple CMIL node</text>
</media>
</node>
</body>
</cmil>
A valid CMIL document declares the version of its Document Type Definition (DTD). The DTD described here is version 0.9. For documents that use this DTD, use this document type declaration below:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cmil SYSTEM "http://www.oacea.com/cmil/cmil-0.9.dtd">
<!--=========== CMIL element =========================================-->
<!ELEMENT cmil (head,body) >
<!ATTLIST cmil
id ID #IMPLIED >
CMIL is the root element of all cmil documents. All elements in a CMIL document are contained within a single CMIL element placed below the document's document type declaration as seen in this example:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cmil PUBLIC "-//oacea//DTD CMIL0.9//EN" "http://www.oacea.com/cmil/cmil-0.9.dtd"> <cmil> ...head, body and other elements... </cmil>
<!--=========== HEAD element =========================================-->
<!ENTITY % head.misc "(script|noscript|style|meta|link|prox|attributes)*">
<!-- The content model of the head element is %head.misc; with a
title and an optional base element in any order -->
<!ELEMENT head (%head.misc;,((title,%head.misc;,(base,%head.misc;)?)
| (base, %head.misc;,(title,%head.misc;)))) >
<!ATTLIST head
id ID #IMPLIED >
The HEAD element contains information such as the document title and meta-information about the document such its CMIL attributes, the author, a description and keywords.
<!--=========== TITLE element ========================================--> <!ELEMENT title (#PCDATA) >
The TITLE element contains the title of the CMIL document. This element is required. Below is an example:
<title>CMIL 0.9 Specification</title>
<!--=========== SCRIPT element =======================================--> Scripting language container. May include CDATA sections--> <!ELEMENT script (#PCDATA) >
<!ATTLIST script charset CDATA #IMPLIED type CDATA #REQUIRED src CDATA #IMPLIED defer (defer) #IMPLIED >
CMIL supports the inclusion of programs in CMIL code through client-side scripts. Scripts may be written to dynamically display document content, provide interactivity and process information. Scripts within SCRIPT elements are run as the document loads. Programs may be run in response to system state changes and user interaction using intrinsic events like those defined in the W3C's HTML4 specification. The intrinsic events supprted by HTML4 are:
onload, onunload, onclick, ondblclic,
onmousedown, onmouseup, onmouseover, onmousemove, onmouseout,
onfocus, onblur, onkeypress, onkeydown, onkeyup,onsubmit, onreset,
onselect and onchange.
<!--=========== NOSCRIPT element =====================================-->
<!ELEMENT noscript ANY >
<!ATTLIST noscript
id ID #IMPLIED >
The NOSCRIPT element offers alternative content to user agents incapable of executing scripts or those configured by user preference to ignore them.
<!--=========== STYLE element ========================================
CSS/XSL Style information. May include CDATA sections-->
<!ELEMENT style (#PCDATA) >
<!ATTLIST style
type CDATA #REQUIRED
media CDATA #IMPLIED
title CDATA #IMPLIED >
The STYLE element is a container for XSL, eXtensible Style Language information. CMIL container (BODY, GROUP, NODE) and media elements should make use of XSL to specify their formatting and appearance. This information may be contained with the STYLE element or held in a linked external resource specified by the LINK element.
The requirements of a style language for spatial media is quite different from those designed for the presentation of traditional hypertexts. Spacing, display size, animation and interaction constraints, must all be considered.
<!--=========== BODY element =========================================-->
<!ELEMENT body (%container-elements;)* >
<!ATTLIST body
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
bgcolor CDATA #IMPLIED
mgcolor CDATA #IMPLIED
fgcolor CDATA #IMPLIED
bgimage CDATA #IMPLIED
nwcoord CDATA #IMPLIED
secoord CDATA #IMPLIED
bgaudio CDATA #IMPLIED >
The BODY element contains all of a ducument's content.
<!--=========== GROUP element ========================================-->
<!ELEMENT group (%container-elements;)* >
<!ATTLIST group
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
abstract CDATA #IMPLIED
class CDATA #IMPLIED
creator CDATA #IMPLIED
rights CDATA #IMPLIED
style CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The GROUP element is a generic container element which aggregates CMIL container elements. GROUP element presentation or lack thereof may be specified using XSL style information. An example grouping is presented below:
<group class="three-d-enclosure" id="group01">
<node id="node01">
...node attributes and media...
</node>
<node id="node02">
...node attributes and media...
</node>
<node id="node03">
...node attributes and media...
</node>
</node>
in addition, GROUP elements may be nested to an arbitrary depth:
<group>
<group>
<group>
</group>
</group>
</group>
<!--========== NODE element ==========================================-->
<!ELEMENT node ((attributes,media) | (media,attributes)) >
<!ATTLIST node
orient-method CDATA #IMPLIED
orient-value CDATA #IMPLIED
position-method CDATA #IMPLIED
position-value CDATA #IMPLIED
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
abstract CDATA #IMPLIED
class CDATA #IMPLIED
creator CDATA #IMPLIED
rights CDATA #IMPLIED
style CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The NODE element is the kernel of contextual media, uniting digital media and attributes in one conceptual unit. An example CMIL node is presented here:
<node class="circle" id="node03" title="A walk in the park" >
<attributes>
<loc coords="39.169,-86.536,766.7260" datum="WGS 84"/>
<orient bearing="ne"/>
<time begin="19990612T102200"/><
<att name="temperature" content="82" metric="fahrenheit"/>
</attributes>
<media>
<image src="media/images/sycamore.png"/>
<audio src="media/audio/birdsong.aiff"/>
<text src="media/text/desc.txt"/>
</media>
</node>
The presentation of NODE elements by user agents may be specified using style information.
<!--=========== MEDIA element ========================================-->
<!ELEMENT media (animation | audio | image | model | ref | speech | text |
textstream | vector | video | www)* >
<!ATTLIST media
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
The MEDIA element is a container for media object elements.
<media>
<image src="media/images/down.png"/>
<audio src="media/audio/strange.aiff"/>
<text src="media/text/bottom.txt"/>
</media>
<!ELEMENT image (anchor?) >
<!ATTLIST image
region IDREF #IMPLIED
alt CDATA #IMPLIED
src CDATA #IMPLIED
type CDATA #IMPLIED
dur CDATA #IMPLIED
repeat CDATA "1"
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
abstract CDATA #IMPLIED
class CDATA #IMPLIED
creator CDATA #IMPLIED
rights CDATA #IMPLIED
style CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The media object elements -- ANIMATION, AUDIO, IMAGE, MODEL, REF, SPEECH, TEXT, TEXTSTREAM, VECTOR, VIDEO and WWW -- link to internet media resources. They are valid as direct child elements of a MEDIA element. The media object elements specify all forms of media valid for display by a CMIL user agent.
One such media object element for bitmap images is presented below.
<image src="http://www.oacea.com/spongebob_squarepants.png"/>
TEXT and WWW elements may alternatively contain plaintext or HTML markup using the XML namespace syntax respectively. No other media object elements may have end tags.
An empty TEXT element:
<text src="http://www.oacea.com/text.txt"/>
TEXT element with parent syntax containing character data:
<text>...some inline text...</text>
WWW as an empty element:
<www src="http://www.oacea.com/index.html"/>
WWW with child elements adhering to the HTML4.0 namespace syntax:
<www xmlns:html="http://www.w3.org/TR/REC-html40">
<html:html>
<html:head>
<html:title>Here Come the Power Puff Girls!!!</html:title>
... other head elements...
</html:head>
<html:body>
... document body...
</html:body>
</html:html>
</www>
system-bitrate CDATA #IMPLIED system-gps-error CDATA #IMPLIED system-language CDATA #IMPLIED system-modality CDATA #IMPLIED system-required NMTOKEN #IMPLIED system-screen-size CDATA #IMPLIED system-screen-depth CDATA #IMPLIED system-captions (on|off) #IMPLIED system-overdub-or-caption (caption|overdub) #IMPLIED
CMIL defines a number of selection parameters for use in selective content negociation within SIFT and SWITCH elements. These parameters may be used in any CMIL media or container element. Selection parameters resolve to either "true" or "false" based on system settings and user preferences.
Within the SIFT element, any child element in which any selection parameter resolves to "false" is ignored. All those in which all selection parameters evaluate to "true" are selected. Zero to all enclosed elements may be selected and returned.
Within the SWITCH element, any child element in which any selection parameters resolve to "false" is ignored. The first child element in which all selection parameters evaluate to "true" is selected. Only one child element may be selected. If all resolve to "false", the last element is selected by default.
A description of the selection parameter values defined in CMIL 1.0 can be found in the W3C SMIL 1.0 Specification.
The following additional selection parameters are defined in CMIL 0.9:
<!--=========== SIFT element =======================================-->
<!ELEMENT sift (group | node | a | sift | switch | locator | tag)* >
<!ATTLIST sift
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The purpose of the sift element is to allow for inclusive content negociation among media or container elements in CMIL documents based on system settings or user preferences. Both the sift and switch elements are content selection elements The sift element may hold a number of child elements, of which any number (including zero) may be selected by the CMIL browser. The child elements are evaluated by the parser which examines the switch-parameter attributes of each child element. Any element in which all of the switch parameters of the element evaluate to "true" is selected.
In the following example, the CMIL viewer is configured for french display, resulting in the latter three image elements being selected. If the viewer is configured for neither french nor english, no elements are selected and returned.
<sift> <image src="http://www.oacea.com/blossom.png" system-language="en"/> <image src="http://www.oacea.com/bubbles.png" system-language="en"/> <image src="http://www.oacea.com/buttercup.png" system-language="en"/> <image src="http://www.oacea.com/blossom_fr.png" system-language="fr"/> <image src="http://www.oacea.com/bubbles_fr.png" system-language="fr"/> <image src="http://www.oacea.com/buttercup_fr.png" system-language="fr"/> </sift>
<!--=========== SWITCH element =======================================-->
<!ELEMENT switch (group | node | a | sift | switch | locator | tag)* >
<!ATTLIST switch
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The purpose of the switch element is to allow for mutially exclusive content negociation between alternative media or container elements in CMIL documents based on system settings or user preferences. The switch syntax is borrowed largely intact from the W3C's Synchronized Multimedia Integration Language 1.0 Recommendation. The switch element may hold a number of child elements, of which only one may be selected by the CMIL browser. The child elements are evaluated in descending order with the parser evaluating the switch-parameter attributes of the child element. The first element in which all of the switch parameters of the element evaluate to "true" is selected.
In the following example, the CMIL viewer is configured for french(fr) display, the second image entity is selected. If the viewer is configured for neither french nor english(en), the last element is selected by default.
<switch title="logo"> <image src="english.png" system-language="en"/> <image src="french.png" system-language="fr"/> <image src="esperonto.png" system-language="en,fr"/> </switch>
Metadata is information that describes another information resource. Metadata in CMIL documents comes in two forms -- document metadata and contextual metadata. Document metadata such as the author or a content description is specified by the META element and contextual metadata is held by the ATTRIBUTES element.
<!--=========== META element =========================================-->
<!ELEMENT meta EMPTY >
<!ATTLIST meta
name CDATA #REQUIRED
content CDATA #REQUIRED >
The META element functions is a property-value pair for specifying metadata such as a document's "author", a "description" and "keywords". In the follwing example, the property is "author" and its value is set to "Rick Dietz"
<meta name="author" content="Rick Dietz"/>
A sample of META elements in use:
<head> <title>Ren and Stimpy</title> <meta name="author" content="John Kay"> <meta name="copyright" content="© 1900 Acme Corp."> <meta name="keywords" content="cartoons, antics, shenanigans"> </head>
<!--=========== ATTRIBUTES element ===================================-->
<!ELEMENT attributes (att | a | channel | coverage | loc | orient | time)* >
<!--Any number of att elements may exist at the same level, providing
each is unique.-->
<!ATTLIST attributes
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
The ATTRIBUTES element is a container for contextual metadata. The ATTRIBUTES element may be present in the head or the body of a CMIL document. The ATTRIBUTES element holds contextual metadata that, when in the document head, refers to the document itself and within the document body, describe contextual metadata associated with CMIL nodes.
When present in the head of a CMIL document, the ATTRIBUTES element allows authors to define document level attributes such as it's spatial coverage, a content channel, a valid timeslice, as well as define the parameters of attributes to be used within nodes in the body of the document. There are a few predefined attributes which the ATTRIBUTES element may hold; They are the A, ATT, CHANNEL, COVERAGE, LOC, ORIENT and TIME elements. A and ATT are special cases: A is a hyperlinking element and ATT allows CMIL authors to create user defined attributes which describe a particular form of contextual metadata.
Below is an example of the ATTRIBUTES element used in the document head:
<head>
<title>Simple CMIL Document</title>
<attributes>
<channel name="sphere" radius="10"/>
<coverage shape="sphere" radius="10"/>
<loc coords="39.169,-86.536,766.7260" datum="WGS 84"/>
</attributes>
</head>
The A element is not legal as a child element when ATTRIBUTES is in the document head.
Within the document body, ATTRIBUTES elements specify the values of contextual metadata associated with NODE elements. These values may be specified within the NODE element itself or inherited from GROUP or BODY elements.
Below is an example of the ATTRIBUTES element directly assigning values to the contextual metadata of a CMIL node.
<node class="circle" id="node03" title="Bake Sale" >
<attributes>
<a href="http://www.oacea.com/index.html"/>
<loc coords="39.169,-86.536,766.7260" datum="WGS 84"/>
<orient bearing="ne"/>
<time begin="19990612T102200"/>
<att name="temperature" content="82" metric="fahrenheit"/>
</attributes>
<media>
...media content...
</media>
</node>
The presence of the A element as a node attribute indicates that node can considered an anchor for a hyperlink, with the hyperlink existing as an attribute of that node. The hyperlink destination is specified by the href attribute of the anchor or within child LOCATOR elements.
A node may inherit values for its contextual metadata from parent GROUP elements or the BODY element. Values assigned by parent elements may also be overridden if specified at a more proximal level to the NODE element itself. Below we find a CMIL node which both inherits and overrides contextual metadata values from parent GROUP and BODY elements.
<body >
<attributes>
<a href="http://www.superfriends.com/index.html"/>
<orient bearing="ne"/>
</attributes>
<group>
<attributes>
<loc coords="39.169,-86.536,766.7260" datum="WGS 84"/>
<orient bearing="sw"/>
<time begin="19990612T102200"/>
</attributes>
<node class="circle" id="node03" title="Bake Sale" >
<attributes>
<time begin="20000224T140800"/>
<att name="temperature" content="82" metric="fahrenheit"/>
</attributes>
<media>
...media content...
</media>
</node>
</group>
</body>
The contextual metadata values for this particular node resolve to..
| anchor | href="http://www.superfriends.com/index.html | inherited from body |
| location | coords="39.169,-86.536,766.7260" datum="WGS 84" | inherited from group |
| orientation | bearing="sw" | inherited from group |
| time | begin="20000224T140800" | overridden by node |
| custom att | name="temperature" content="82" | directly from node |
<!--=========== ATT element ==========================================-->
<!ELEMENT att EMPTY >
<!ATTLIST att
name CDATA #REQUIRED
content CDATA #REQUIRED
metric CDATA #IMPLIED
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
The ATT element allows CMIL authors to define their own attributes to associate with CMIL documents of nodes, allowing authors the freedom to move beyond the attributes formalized in the CMIL DTD. The ATT element consists of a property-value pair in which an user-defined attribute is named and assigned a value. Additional information may be supplied about this attribute such as a metric unit and a description.
The ATT element supports dynamic attributes by allowing ATT element's value to be resolved from a linked external resources or an internal script program using the fragment identifier(#). An example follows:
<att name="temperature" href="http://www.temp.org/cgi-bin/temp.pl" metric="celcius"/>
<!--=========== CHANNEL element ======================================-->
<!ELEMENT channel EMPTY >
<!ATTLIST channel
name CDATA #IMPLIED
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
The CHANNEL element provides a way in which authors can specify a content description/affiliation of a given document's material.
<!--=========== COVERAGE element =====================================-->
<!ELEMENT coverage EMPTY >
<!ATTLIST coverage
shape (cone | cylinder | sphere) "sphere"
radius CDATA #IMPLIED
height CDATA #IMPLIED >
The COVERAGE element specifies a domain in physical space where a document and its contents are valid to be displayed by user agents. If not so constrained, the document is universally available.
<!--=========== LOC element ==========================================-->
<!ELEMENT loc EMPTY >
<!ATTLIST loc
datum CDATA #IMPLIED
coords CDATA #REQUIRED
mode (reltobase | reltoviewer | absolute) "absolute"
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
Provides location for documents and media elements (nodes).
The value of the "coords" attribute is a standard geodetic coordinate in the ISO format for latitude, longitude and altitude ISO 6709:1983 in the form of a comma delimited string.
"coords" values have the following syntax:
DD.DD degrees and decimal degrees DDMM.MMM degrees, minutes and decimal minutes DDMMSS.SS degrees, minutes, seconds and decimal seconds
Decimal degrees minutes and secounds may be extended to the desired accuracy. Latitude must be prefixed with "+" north of and on equator, and with "-" south of equator.
DDD.DD degrees and decimal degrees DDDMM.MMM degrees, minutes, and decimal minutes DDDMMSS.SS degrees, minutes, seconds, and decimal seconds
Decimal degrees minutes and secounds may be extended to the desired accuracy. Longitude must be prefixed with "+" east of and on prime meridian (Greenwich), and with "-" west of Greenwich up to the 180th meridian. Leading zeros are required for latitude and longitude.
MMM.MM meters and decimal meters
Decimal meters may be extended to the desired accuracy. Altitude is represented in meters and must be prefixed with "+" above and on the geodetic reference datum and with "-" below it).
Here are a few examples...
"+401213.1,-0750015.1,+2.79" "+40.20361,-075.00417,-3.31"
<!--=========== ORIENT element =======================================-->
<!ELEMENT orient EMPTY >
<!ATTLIST orient
bearing (N | NNE | NE | ENE | E | ESE | SE | SSE | S | SSW | SW |
WSW | W | WNW | NW | NNW | CDATA) #REQUIRED
incline CDATA #IMPLIED
mode (reltobase | reltoviewer | absolute) "absolute"
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
Provides cardinal orientation and inclination of media elements.
<!--=========== TIME element =========================================-->
<!ELEMENT time EMPTY >
<!ATTLIST time
time CDATA #IMPLIED
begin CDATA #IMPLIED
end CDATA #IMPLIED
timezone CDATA #IMPLIED
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
Provides temporal context for media elements.
A date in a subset of ISO 8601 format, with optional time and no optional zone. Fractional seconds may be as precise as nanoseconds.
2088-04-07T18:39:09
A date in a subset ISO 8601 format sans punctuation.
19990612T102200
For a list of acceptible timezone values go here.
CMIL specifies a family of hyperlink elements which make a range of hyperlinking behavior possible.
CMIL supports name fragment identifiers via the '#' connector for linking to internal document resources. A hyperlink within a CMIL document may link to an internal resource or an object of a separate document as seen here:
<a href="http://www.spubadu.org/testdoc.cmil#object1">
Conditions for using the fragment identifier follow:
<!--=========== BASE element =========================================-->
<!ELEMENT base (att | a | loc | orient | time)* >
<!ATTLIST base
href CDATA #IMPLIED
loc CDATA #IMPLIED
time CDATA #IMPLIED
orient CDATA #IMPLIED
height CDATA #IMPLIED
radius CDATA #IMPLIED
datum (lla | utm | ecef) "lla"
timezone CDATA #IMPLIED
shape (cone | cylinder | sphere) "sphere" >
The BASE element specifies the root address for relative URI's within a document. Any relative addresses are resolved into a full URI by appending the relative address to the prefix specified by the BASE element.
For example, the following BASE and A elements
<base href="http://www.genericorp.com/people/"/>
<a href="../products/catalog.cmil."/>
http://www.genericorp.com/products/catalog.cmil
<!--=========== LINK element =========================================-->
<!ELEMENT link EMPTY >
<!ATTLIST link
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
abstract CDATA #IMPLIED
class CDATA #IMPLIED
creator CDATA #IMPLIED
rights CDATA #IMPLIED
style CDATA #IMPLIED
charset CDATA #IMPLIED
href CDATA #IMPLIED
hreflang CDATA #IMPLIED
type CDATA #IMPLIED
rel CDATA #IMPLIED
rev CDATA #IMPLIED
media CDATA #IMPLIED >
The LINK element is used to specify the relationship of various forms of resources with a given document. the LINK element may only appear in the head of a CMIL document. The primary uses of the LINK element in cmil are...
1. To associate style information from an external resource within the document
<link rel="stylesheet" href="freakystyley.css" type="text/css">
2. To place the document within a framework of others, specifying the next or previous document in a series, for example.
<link rel="next" href="next_scene.cmil"> <link rev="prev" href="previous_scene.cmil">
3. To make known the availability of different versions of a given document, perhaps translated or in an alternate media format.
Links to external related resources such as "previous" and "next" documents or alternative versions should be made accessible to users in some fashion through the user agent GUI.
<!--=========== A element ============================================-->
<!ELEMENT a (locator | sift | switch | group | node)* >
<!ATTLIST a
id ID #IMPLIED
title CDATA #IMPLIED
href CDATA #REQUIRED
actuate (auto | user) "user"
show (present | replace | transform) "present"
class CDATA #IMPLIED
style CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The A element supports inline linking behavior in a similar fashion as the HTML A element. The A element in CMIL, however, supports extended linking in which a single hyperlinking element may have multiple destinations. Extended hyperlinks contain a number of LOCATOR elements as child elements. Any A element is valid as an attribute of a CMIL NODE element or may encapsulate other container elements. Several example follow...
1) A hyperlink encapsulating a simple node.
<a href="http://www.oacea.com/index.cmil">
<node>
...attributes and media...
</node>
</a>
2) An extended (multi-destination) hyperlink encapsulating a simple node.
<a>
<locator href="http://www.oacea.com">
<locator href="http://www.oacea.com/CMIL">
<node>
...attributes and media...
</node>
</a>
3) In CMIL, the A element may serve as an attribute of a node, making the node itself a hyperlink anchor. The node below contains a simple hyperlink as an attribute.
<node class="circle" id="node03" title="Bake Sale" >
<attributes>
<a href="http://www.oacea.com/index.html"/>
<att name="temperature" content="82"/>
</attributes>
<media>
...media content...
</media>
</node>
<!--=========== Associated Link element ==============================-->
<!ELEMENT anchor (locator | sift | switch)* >
<!ATTLIST anchor
id ID #IMPLIED
title CDATA #IMPLIED
href CDATA #REQUIRED
actuate (auto | user) "user"
show (present | replace | transform) "present"
begin CDATA #IMPLIED
end CDATA #IMPLIED
coords CDATA #IMPLIED >
The ANCHOR element serves as a formalized, more flexible analog of the HTML client-side image map. In HTML, an image map allows behaviors to be asigned to descrete regions of a digital image. The anchor element allows this form of spatial linking in addition to temporal linking in linear forms of media like digital video. Temporal linking is accomplished by specifying the beginning and end points in which a given link my be traversed. Anchor is borrowed from the W3C SMIL 1.0 recommendation. See the SMIL 1.0 ANCHOR element description for additional information.
Examples 1) Two links associated with spatial regions of an image.
The example below details an image element divided into areas which contain associated links.
<image src="http://www.oacea.com/image.png"> <anchor href="http://www.oacea.com" coords="0%,0%,33%,33%"/> <anchor href="http://www.oacea.com/CMIL" coords="66%,66%,100%,100%"/> </image>
2) Two links associated with temporal slices of a video.
The example below details a video element divided into separate time slices which traverse associated links.
<video src="http://www.oacea.com/video.mov"> <anchor href="http://www.oacea.com" begin="0s" end="7s"/> <anchor href="http://www.oacea.com/CMIL" begin="14s" end="21s"/> </video>
3) In CMIL, the areas and intervals may overlap one another and allow a singular point or time to actuate multiple anchors. In the example below both anchors overlap and may be traversed by clicking the center of the image.
<image src="http://www.oacea.com/image.png"> <anchor href="http://www.oacea.com" coords="0%,0%,66%,66%"/> <anchor href="http://www.oacea.com/CMIL" coords="33%,33%,100%,100%"/> </image>
4) In CMIL, the ANCHOR element (like the A element) may specify multiple link destinations. These destinations are described by LOCATOR elements held within the ANCHOR element as child elements, shown below.
<video src="http://www.oacea.com/video.mov">
<anchor begin="0s" end="7s">
<locator href="http://www.oacea.com">
<locator href="http://www.oacea.com/CMIL">
</anchor>
</video>
<!--=========== LOCATOR element ======================================-->
<!ELEMENT locator EMPTY >
<!ATTLIST locator
id ID #IMPLIED
title CDATA #IMPLIED
href CDATA #REQUIRED
actuate (auto | user) "user"
show (present | replace | transform) "present"
role CDATA #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
begin CDATA #IMPLIED
end CDATA #IMPLIED
coords CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The LOCATOR element supports extended (multi-destination) links as a child element of A and TAG elements. Each LOCATOR element specifies one destination. Additional information about extended links and XML linking syntax, examine the XML Linking Language (XLink) specification.
<!--=========== PROX element =========================================-->
<!ELEMENT prox (tag | sift | switch)* >
<!ATTLIST prox
id ID #IMPLIED >
The prox (proximity) element is a container for TAG elements. This element is designed to aid CMIL authors to associate objects in the real world with digital objects.
<!--=========== TAG element ==========================================-->
<!ELEMENT tag (locator | sift | switch)* >
<!ATTLIST tag
id ID #IMPLIED
title CDATA #IMPLIED
href CDATA #REQUIRED
actuate (auto | user) "user"
show (present | replace | transform) "present"
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The TAG element associate an input string or code with a destination resource. The input may be derived from a number of sources -- direct from the user, from a bar code scanner for instance or even via optical character recognition. User agents that support this ability compare the input value to the contents of the document's TAG elements. If the TAG element's id and that of the incoming string resolves to "true" then the association is recognized and the link traversed to the destination resource.
the following is an example with two tag links.
<prox>
<tag id="0110010110" href="http://www.genericorp.com/peanutbutter.html"/>
<tag id="H2SO4">
<locator href="hazmat.cmil#warning"/>
<locator href="hazmat.cmil#sulfuric_acid"/>
</tag>
</prox>
[ISO 6709:1983] ISO (International Organization for Standardization). ISO 6709:1983. Standard Representation of Latitude, Longitude and Altitude for Geographic Point Locations. [Geneva]: International Organization for Standardization, 1983.
[SMIL] "Synchronized Multimedia Integration Language
URL:
http://www.w3.org/AudioVideo/.
[SPOHRER1] "What Comes After the WWW? ", Spohrer, J, June
1998.
URL:
http://worldboard.org/pub/spohrer/wbconcept/default.html.
[SPOHRER2] "Information in Places", Spohrer, J. C., IBM Systems Journal, Vol 38, No. 4, 1999, 602-628.
[XLINK] "XML Linking Language (XLink)".
URL:
http://www.w3.org/TR/xlink/
[XML10] "Extensible Markup Language (XML) 1.0", T. Bray, J.
Paoli, C.M. Sperberg-McQueen, editors, 10 February 1998.
URL:
http://www.w3.org/TR/REC-xml
[XSL] "Extensible Stylesheet Language (XSL)".
URL:
http://www.w3.org/TR/xsl/