home | about | cmil

 

This specification is deprecated. A more current version may be found here. Thank you.

CMIL 0.9

Specification Jan 14 2000

This Document
http://www.oacea.com/context/cmil/cmil_0.9_20000114.php
CMIL Home
http://www.oacea.com/context/cmil/

Copyright © 2000 Oacea, Rick Dietz, All Rights Reserved. These usage guidelines apply to your use of specified public material from this site.

Questions, comments or suggestion can be addressed to Rick Dietz, rick@oacea.com

Table of Contents

  1. CMIL 0.9 Overview
  2. About This Specification
  3. CMIL 0.9 Structure
    1. Introduction
    2. CMIL version information
    3. CMIL element
    4. document head
      1. HEAD element
      2. TITLE element
      3. SCRIPT element
      4. NOSCRIPT element
      5. STYLE element
    5. container elements
      1. BODY element
      2. GROUP element
      3. NODE element
      4. MEDIA element
      5. media object elements
    6. content selection
      1. selection parameters
      2. SIFT element
      3. SWITCH element
    7. meta data
      1. META element
      2. ATTRIBUTES element
        1. ATT element
        2. CHANNEL element
        3. COVERAGE element
        4. LOC element
        5. ORIENT element
        6. TIME element
    8. linking elements
      1. BASE element
      2. LINK element
      3. A element
      4. ANCHOR element
      5. LOCATOR element
      6. PROX element
      7. TAG element
    9. References
    10. CMIL element/attribute tree
    11. CMIL DTD

About this Specification

CMIL is Contextual Media Integration Language. This specification details the rationale, structure and function of CMIL version 0.9. The elements and attributes which constitute CMIL are presented in the following format:

  1. The element is presented, followed by an excerpt from the CMIL DTD like so:

    meta

    <!--=========== META element =========================================-->
    <!ELEMENT meta   EMPTY  >
    <!ATTLIST meta
                   name  CDATA    #REQUIRED 
                   content  CDATA    #REQUIRED  >
    
  2. The use of the element is then decribed.

  3. 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.

  4. In some cases, the description will contain examples of the elements's use in sample CMIL document excerpts.

  5. 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:

    Note: This is a partial and as yet incomplete specification; You should expect to find errors and areas which will require conceptual as well as practical reworking.

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.

Table of Contents

CMIL Overview

CMIL describes a generic form of hypermedia space or hyperreality, or as the author prefers, a metaspace. A metaspace is a multidimensional space arising from a collection of digital media object (media, files, folders, etc) which have associated with them various forms of metadata. Plotting these objects spatially along axes corresponding each object's metadata attributes carves out the object's position in this metaspace.

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. Other attributes may not plot transparently to a dimensional space, an attribute summarizing the object's content is one example.

Table of Contents

CMIL Structure

Introduction to CMIL Structure

A CMIL 0.9 document is composed of three section:

  1. CMIL version information (document type declaration) before the CMIL element,
  2. a header section delimited by the HEAD element,
  3. a body section delimited by the BODY element.

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 PUBLIC "-//oacea//DTD CMIL0.9//EN" 
"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>

Table of Contents

CMIL Version Information

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">

Although a public identifier is present in the declaration, it has not been placed as of yet in any public catalog such as that at XML.org, sponsored by OASIS, the Organization for the Advancement of Structured Information Standards.

Using the full declaration with public identifier should not cause any validation errors, providing the system declaration and URI are in place.

Table of Contents

cmil

<!--=========== 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>

Table of Contents

Document Head

head

<!--=========== 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.

Note: The content model for the HEAD element could probably be improved. It is currently a bit awkward, but seems to work.

Table of Contents

title

<!--=========== 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>

Table of Contents

script

<!--=========== 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.
Note: Intrinsic events in support of CMIL will differ from those currently listed here due to differences between the visualization and interaction paradigms of HTML and CMIL.
Note: Intrinsic events have not yet been added as attributes to hyperlinking and container elements.
Note: SCRIPT currently only resides in the document HEAD but should be allowed throughout the body as well.

Table of Contents

noscript

<!--=========== 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.

Note: The content model of NOSCRIPT is currently formless.
Note: NOSCRIPT currently only resides in the document HEAD but should be allowed throughout the body as well.

Table of Contents

style

<!--=========== 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 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.

Note: As of yet, no formal specification has been developed for the style language companion to CMIL which will be called CMSL, Contextual Media Style Language.

Table of Contents

container elements

body

<!--=========== 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.

Note: Appearance related attributes will be deprecated from the BODY element at which time they may only be specified by the STYLE element, the BODY element's style attribute or by a linked XSL style document (when CMSL has been further refined.)

Table of Contents

group

<!--=========== 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>

Table of Contents

node

<!--========== 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="Bake Sale" >
   <attributes>
      <loc coords="39.169,-86.536,766.7260" datum="lla"/>
      <orient bearing="ne"/>
      <time begin="19990612T102200"/><
      <att name="temperature" content="82"/>
    </attributes>
   <media>
      <image src="media/images/sycamore.png"/>
      <audio src="media/audio/birdsong.aiff"/>
      <text src="media/text/walden.txt"/>
   </media>
</node>

The presentation of NODE elements in user agents may be specified using style information.

Table of Contents

media

<!--=========== 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>

Table of Contents

media object elements

<!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>
Note: The use of the HTML namespace in the WWW element is not yet supported by the CMIL 0.9 DTD.
Note: Attriutes of media oject elements need to be made specific to the individual media object element. At present attributes are uniform across the set.

Table of Contents

content selection

selection parameters

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 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 selection parameters are defined in CMIL 0.9:

system-gps-accuracy
This attribute is a setting which determines if users prefer overdubbing or captioning when the option is available. The attribute can have the values "caption" and "overdub". Evaluates to "true" if the user preference matches this attribute value. Evaluates to "false" if they do not match.s
system-mode
This attribute allows a determination of the preferred modality for the display of media objects. The attribute can have the values "visual" and "auditory"
Note: Additional selection parameter attributes may be forthcoming in support of CMIL funtionality of if support for additional user preferences seems warranted.

Table of Contents

sift

<!--=========== 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 evaluates the switch-parameter attributes of each child element. Any element element where 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>

Table of Contents

switch

<!--=========== 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 where 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>

Table of Contents

Meta Data

Metadata is information that describes another information source. 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.

Table of Contents

meta

<!--=========== 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>
Note: There is no specific set of metadata attributes declared legal for CMIL. Care should be taken however to use types of metadata such as those common to HTML authors and the Core Element Set offered by the Dublin Core Metadata Initiative.
Note: At some point CMIL my recommend certain preferred metadata properties, for example, to indicate authorship.

Table of Contents

attributes

<!--=========== 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 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. The attributes 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" locsystem="lla"/> 
   </attributes>
</head>

The A element is not legal as a child element when ATTRIBUTES is in the document head.

Note: The main goal for allowing an ATTRIBUTES element in the head and body is to communicate that CMIL documents themselves can be considered first order objects in their own right alongside the nodes they contain.
Note: In the document head, the META element and ATTRIBUTES element overlap conceptually with META housing document metadata and ATTRIBUTES specifying contextual metadata. This may soon be resolved with the subsumption of all document and contextual metadata into the ATTRIBUTES element.

Below is an example of the ATTRIBUTES element in 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" locsystem="lla"/>
      <orient direction="ne"/>
      <time begin="19990612T102200"/><
      <att name="temperature" content="82"/>
    </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 an attribute of that node. The hyperlink destination is specified by the href attribute of the anchor or within child LOCATOR elements.

Table of Contents

att

<!--=========== ATT element ==========================================-->
<!ELEMENT att   EMPTY  >

<!ATTLIST att
               name  CDATA    #REQUIRED 
               content  CDATA    #REQUIRED 
               units  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 formatlized 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.

Note: This might be better formulated as a property-value-metric triplet. A more elaborate structure may need to be formulated to support user-defined attributes.

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"/>
Note: Active attributes should also be able to execute HTML namespace FORM elements using the fragment identifier.
Note: A generic replacement for form-type functionality accessible through intrinsic events should be developed instead of importing the HTML form in to a very different medium.

Table of Contents

channel

<!--=========== 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.

Note: It may be better to adopt something along the lines of that proposed in the W3C Platform for Internet Content Selection (PICS) recommendation for this purpose.

Table of Contents

coverage

<!--=========== 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.

Table of Contents

loc

<!--=========== LOC element ==========================================-->
<!ELEMENT loc   EMPTY  >

<!ATTLIST loc
               datum (lla | utm | ecef)  "lla"
               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.

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.

"Locus" values have the following syntax:

Latitude
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.

Longitude
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.

Altitude
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"
Note: Although Lattitude,Longitude and Altitude are presented here, user agents should be prepared to process coordinates provided in other common datum formats.

Table of Contents

orient

<!--=========== 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 
               mode (reltobase | reltoviewer | absolute)  "absolute"              
               id  ID    #IMPLIED 
               title  CDATA    #IMPLIED 
               desc  CDATA    #IMPLIED  >

Provides cardinal orientation and inclination of media elements.

Table of Contents

time

<!--=========== 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.

dateTime 2088-04-07T18:39:09 

A date in a subset ISO 8601 format, with optional time and optional zone. Fractional seconds may be as precise as nanoseconds.

dateTime.tz 2088-04-07T18:39:09-08:00

A date in a subset ISO 8601 format. (no time)

date 2094-11-05

A time in a subset ISO 8601 format, with no date and no time zone. Fractional seconds may be as precise as nanoseconds.

time 08:15:27

A time in a subset ISO 8601 format, with no date but optional time zone. Fractional seconds may be as precise as nanoseconds.

time.tz 08:1527-05:00

A time interval which may have year, month, day, hour, minute and second fields. Fractional seconds may be as precise as nanoseconds.

 
interval 2088-04-07T18:39:09

For a list of acceptible timezone values go here.

Table of Contents

Linking elements

CMIL specifies a family of hyperlinking 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:

  1. The internal resource addressed by the link must reside in the "body" of the CMIL document.
  2. The element addressed by the link may not be the content of a "sift or "switch" element. It may however be a "switch" element. The "switch" would then be evaluated and the resulting elements returned to the user agent for display.
Note: The dynamics of user interaction within a metaspace environment remain to be fully explored. In particular, communicating the presence of hyperlinks and making hyperlinking as intuitive as possible should be earnestly explored.

Table of Contents

base

<!--=========== 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."/>
resolve to
http://www.genericorp.com/products/catalog.cmil
At the moment the BASE element may specify base values for relative location, time and orientation attributes throughout the document. Due to the number of attributes needed for base to serve in this capacity, child elements may also be used instead of analogous attributes. This duplication needs to be resolved as soon as possible or completely removed. Some other method might be preferrable to having the BASE element serve so broadly. The real issue is how to specify base values for any of the contextual metadata forms in the document including those defined by authors.

Table of Contents

link

<!--=========== 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/csst">

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="nexts_cene.cmil">
<link rev="prev" href="previous_scene.cmil.css">

3. To make known the availability of different versions of a given document, perhaps translated or in an alternate media format.

Table of Contents

a

<!--=========== 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 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>
Note: An effort should be made to creating a workable model for multi-directional linking. Having links exist a autonomous objects or nodes might be one such route.

Table of Contents

anchor

<!--=========== 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>

Table of Contents

locator

<!--=========== 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.

Table of Contents

prox

<!--=========== 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.

Table of Contents

tag

<!--=========== 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>
Note: PROX/TAG is pretty primitive and needs considerable development.

Table of Contents

References

[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/

Table of Contents

CMIL Outline

<cmil: id>

</cmil>

Table of Contents

CMIL Document Type Definition

<!-- 
    =========== CMIL DTD =============================================

    This is CMIL 0.9 DTD for Contextual Media Integration Language
    Draft: Date 2000/01/08 13:45:00
    
    Author: Rick Dietz <rick@oacea.com>

    This DTD is available at the system identifier:

        http://www.oacea.com/cmil/cmil-0.9.dtd
     
    Further Information about CMIL can be found at:
     
        http://www.oacea.com/cmil/index.html
     
    =========== CMIL DTD =============================================
-->
                
<!--=========== Misc Entities ========================================-->

<!ENTITY % id-attribute  
    "id        ID          #IMPLIED"
    >

<!ENTITY % basic-attributes  
    "%id-attribute;
    title       CDATA       #IMPLIED 
    desc        CDATA       #IMPLIED"
    >

<!ENTITY % style-attributes  
    "class     CDATA       #IMPLIED
    style       CDATA       #IMPLIED"
    >

<!ENTITY % core-attributes  
    "%basic-attributes;
    %style-attributes;
    abstract    CDATA       #IMPLIED        
    creator     CDATA       #IMPLIED
    rights      CDATA       #IMPLIED"
    >

<!--Applications of CMIL incorporating location data should specify
    the particular datum used for subsequent location data provided 
    in the document.-->
<!ENTITY % datum-attribute  
    "datum (lla | utm | ecef) 'lla'" >

<!--The timeszone is specified as a numerical offset from the 
    Greenwich Mean.  For example, Eastern Standard Time is "-0500".-->
<!ENTITY % timezone-attribute  
    "timezone  CDATA       #IMPLIED" >

<!ENTITY % shape-attribute  
    "shape (cone|cylinder|sphere) 'sphere'" >

<!-- ========== Hyperlinking =========================================-->
<!ENTITY % link-attributes  
    "%id-attribute;
    title       CDATA           #IMPLIED
    href        CDATA           #REQUIRED
    actuate     (auto|user)     'user'          
    show        (present|replace|transform) 'present'"
    >

<!ENTITY % anchor-attributes  
    "begin     CDATA           #IMPLIED 
    end         CDATA           #IMPLIED 
    coords      CDATA           #IMPLIED"
    >

<!--=========== Selection Parameter Attributes ==========================-->
<!ENTITY % selection-parameters
    "system-bitrate        CDATA               #IMPLIED
    system-gps-error            CDATA               #IMPLIED
    system-language             CDATA               #IMPLIED
    system-mode                 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"
    >

<!--=========== MEDIA Attributes =====================================-->
<!ENTITY % media-attributes  
    "region        IDREF       #IMPLIED
    alt         CDATA       #IMPLIED
    src         CDATA       #IMPLIED
    type        CDATA       #IMPLIED
    dur         CDATA       #IMPLIED
    repeat      CDATA       '1'
    %core-attributes;
    %selection-parameters;" 
    >

<!ENTITY % container-elements  "(group | node | a | sift | switch)" >

<!ENTITY % media-elements  "(animation | audio | image | model | 
    ref | speech | text | textstream | vector | video | www)" >


<!--=========== CMIL Element =========================================-->
<!ELEMENT cmil   (head,body) >
<!ATTLIST cmil
    %id-attribute;
    >
                
<!--=========== 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-attribute;
    >

<!--=========== BODY Element =========================================-->
<!ELEMENT body  (%container-elements;)* >

<!ATTLIST body
    %id-attribute;
    onload      CDATA       #IMPLIED
    onunload    CDATA       #IMPLIED
    bgcolor     CDATA       #IMPLIED 
    mgcolor     CDATA       #IMPLIED 
    fgcolor     CDATA       #IMPLIED 
    bgimage     CDATA       #IMPLIED 
    nwcoord     CDATA       #IMPLIED 
    secoord     CDATA       #IMPLIED
    bgaudio     CDATA       #IMPLIED
    >

<!--=========== TITLE Element ========================================-->
<!ELEMENT title  (#PCDATA) >

<!--=========== LINK Element =========================================
    Link is used primarily to connect to external scripts and
    style documents-->
<!ELEMENT link   EMPTY  >

<!ATTLIST link
    %core-attributes;
    charset     CDATA       #IMPLIED 
    href        CDATA       #IMPLIED 
    hreflang    CDATA       #IMPLIED 
    type        CDATA       #IMPLIED 
    rel         CDATA       #IMPLIED 
    rev         CDATA       #IMPLIED 
    media       CDATA       #IMPLIED
    >

<!--=========== META Element =========================================
    Meta is a property-value pair for specifying metainformation such
    as "keywords", "description" and "creator"-->
<!ELEMENT meta   EMPTY  >

<!ATTLIST meta
    name        CDATA       #REQUIRED 
    content     CDATA       #REQUIRED
    >

<!--=========== STYLE Element ========================================
    CSS/XSL Style information. May include CDATA sections-->
<!ELEMENT style  (#PCDATA) >

<!ATTLIST style
    type        CDATA       #REQUIRED 
    media       CDATA       #IMPLIED 
    title       CDATA       #IMPLIED
    >

<!--=========== 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
    >

<!--=========== BASE Element =========================================
    The base can as an option specify the root address for relative 
    URI's.  In like fashion it can optionally specify base values for 
    relative location, time and orientation attributes throughout the 
    document.  Due to the number of attributes needed for base to 
    serve in this capacity, child elements may also be used instead of
    analogous attributes.  This duplication needs to be resolved as 
    soon as possible.-->
<!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-attribute;
    %timezone-attribute;
    %shape-attribute;
    >

<!--=========== PROX Element =========================================
    The prox (proximity) element is a container for tag elements which 
    associate coded physical objects with an internet document via 
    URI.-->
<!ELEMENT prox  (tag | sift | switch)* >

<!ATTLIST prox
    %id-attribute;
    >
        
<!--The Tag element is essentially a hypertext anchor. It requires
    an id and href attribute be valid. The id of the Tag element
    corresponds to the value of an external tag. It may contain any 
    number of Locator elements allowing some forms of extended 
    linking. It is otherwise empty.-->
<!ELEMENT tag  (locator | sift | switch)* >

<!ATTLIST tag
    %link-attributes;
    %selection-parameters;
    >
    
<!--=========== LOCATOR Element ======================================
    The Locator element provides tag and a elements a means of 
    support for extended linking.-->
<!ELEMENT locator   EMPTY  >

<!ATTLIST locator
    %link-attributes;
    role    CDATA       #IMPLIED
    %style-attributes;
    %anchor-attributes;
    %selection-parameters;
    >    
                
<!--=========== ATTRIBUTES Element ===================================
    The attributes element is a container for the individual attribute 
    elements of a CMIL node when found within the body.  When present 
    in the head of a CMIL document, the attributes element allows
    authors to define document level attributes such as channel and 
    coverageas well as define the parameters of attributes to be used 
    within nodes in the body; one may set the units, title, and 
    description of an author-defined attribute using this approach.-->
<!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
    %basic-attributes;
    >

<!--=========== ATT Element ==========================================
    The att element consists of a property-value pair allowing for 
    user-specified attributes beyond the few specified here such as 
    loc, orient, etc.  Dynamic attributes need support here through
    an href or reference to an id stamped piece of code.  -->
<!ELEMENT att   EMPTY  >

<!ATTLIST att
    name        CDATA       #REQUIRED 
    content     CDATA       #REQUIRED
    units       CDATA       #IMPLIED
    %basic-attributes;
    >

<!--=========== A Element ============================================
    The a element allows for inline linking behavior.  Extended links
    will contain a number of locator elements as child elements.  An
    a element may exist as an attribute of a node or encapsulate 
    other container elements.-->
<!ELEMENT a  (locator | sift | switch | group | node)* >

<!ATTLIST a
    %link-attributes;
    %style-attributes;
    %selection-parameters;
    >

<!--=========== CHANNEL Element ======================================
    Content description.-->
<!ELEMENT channel   EMPTY  >

<!ATTLIST channel
    name        CDATA       #IMPLIED
    %basic-attributes;
    >

<!--=========== COVERAGE Element =====================================
    Space where the given document is valid for display by augmented 
    reality applications....-->
<!ELEMENT coverage   EMPTY  >

<!ATTLIST coverage
    %shape-attribute;
    radius      CDATA       #IMPLIED 
    height      CDATA       #IMPLIED
    >

<!--=========== LOC Element ==========================================-->
<!ELEMENT loc   EMPTY  >

<!ATTLIST loc
    %datum-attribute;
    coords      CDATA       #REQUIRED 
    offset  (reltobase | reltoviewer | absolute)    "absolute"
    %basic-attributes;
    >

<!--=========== 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 
    offset  (reltobase | reltoviewer | absolute)    "absolute"
    %basic-attributes;
    >

<!--=========== TIME Element =========================================-->
<!ELEMENT time   EMPTY  >

<!ATTLIST time
    time        CDATA       #IMPLIED 
    begin       CDATA       #IMPLIED 
    end         CDATA       #IMPLIED
    %timezone-attribute;
    %basic-attributes;
    >
    
<!--=========== SIFT Element =======================================
    The purpose of the sift element is to allow for non-mutually 
    exclusive content selection among media or container elements 
    in CMIL documents based on system settings or user preferences.-->
<!ELEMENT sift  (group | node | a | sift | switch | locator | tag)* >

<!ATTLIST sift
     %basic-attributes;
     %selection-parameters;
     >
            
<!--=========== SWITCH Element =======================================
    The purpose of the switch element is to allow for content 
    negociation between elements with targeted media.  The switch 
    syntax is borrowed largely intact from the W3C's Synchronized
    Multimedia Integration Language 1.0 recommendation.-->
<!ELEMENT switch  (group | node | a | sift | switch | locator | tag)* >

<!ATTLIST switch
     %basic-attributes;
     %selection-parameters;
     >
                
<!--=========== GROUP Element ========================================
    The group element is a generic container element.-->
<!ELEMENT group  (%container-elements;)* >

<!ATTLIST group
    %core-attributes;
    %selection-parameters;
    >
                
<!--========== NODE Element ==========================================
    The node element is the kernel of contextual media, uniting 
    digital media and attributes.-->
<!ELEMENT node  ((attributes,media) | (media,attributes)) >

<!ATTLIST node           
    %core-attributes;
    %selection-parameters;
    >    

<!--=========== MEDIA Element ========================================
    The media element is a container for media-elements which follow.-->
<!ELEMENT media  (%media-elements;)* >

<!ATTLIST media
    %basic-attributes;
    >

<!ELEMENT animation  (anchor?) >
<!ATTLIST animation
    %media-attributes;
    >

<!ELEMENT audio  (anchor?) >
<!ATTLIST audio
    %media-attributes;
    >
    
<!ELEMENT image  (anchor?) >
<!ATTLIST image
    %media-attributes;
    >
    
<!ELEMENT model  (anchor?) >
<!ATTLIST model
    %media-attributes;
    >
    
<!ELEMENT ref  (anchor?) >
<!ATTLIST ref
    %media-attributes;
    >
    
<!ELEMENT speech  (anchor?) >
<!ATTLIST speech
    %media-attributes;
    >
    
<!ELEMENT text  (#PCDATA ) >
<!ATTLIST text
    %media-attributes;
    >
    
<!ELEMENT textstream  (anchor?) >
<!ATTLIST textstream
    %media-attributes;
    >
    
<!ELEMENT vector  (anchor?) >
<!ATTLIST vector
    %media-attributes;
    >
    
<!ELEMENT video  (anchor?) >
<!ATTLIST video
    %media-attributes;
    >
    
<!--=========== WWW element ==========================================
    The www element allows World Wide Web content to exists as a CMIL
    media type.  The www element may link to an external HTML 
    resource.  This should also support inclusion of HTML as a 
    namespace but doesn't at this time. -->
<!ELEMENT www  (#PCDATA ) >
<!ATTLIST www
    
    %link-attributes;
    %media-attributes;
    >
    
<!--=========== Associated Link Element ==============================
    Anchor serves as an analog of the HTML imagmap with the additional
    enhancement of temporal linking.  Anchor is borrowed from the W3C 
    SMIL1.0 recommendation.-->
<!ELEMENT anchor   (locator | sift | switch)*  >

<!ATTLIST anchor
    %link-attributes;
    %anchor-attributes;
    >

Table of Contents

 
copyright 2000, 2001 oacea
all rights reserved