To get a better understanding of the components in libcmml it is recommended to read the DTD:
00001 <!-- 00002 00003 Continuous Media Markup Language CMML version 2.0 DTD 00004 Authoring language for ANNODEX(TM) media. 00005 00006 Namespace = http://www.annodex.net/cmml 00007 00008 Copyright (c) 2001 00009 Commonwealth Scientific and Industrial Research Organisation 00010 (CSIRO), Australia. 00011 All Rights Reserved. 00012 00013 This DTD module is identified by the PUBLIC and SYSTEM identifiers: 00014 00015 PUBLIC "-//CSIRO//DTD CMML 2.0//EN" 00016 SYSTEM "http://www.annodex.net/DTD/cmml_2_0.dtd" 00017 00018 $Revision: 1.2 $ 00019 $Date: 2004/01/01 05:25:33 $ 00020 --> 00021 00022 <!-- **************************** --> 00023 <!-- Definition of Imported Names --> 00024 <!-- **************************** --> 00025 00026 <!-- media type, as per [RFC2045] --> 00027 <!ENTITY % ContentType "CDATA"> 00028 00029 <!-- a Uniform Resource Identifier, see [RFC2396] --> 00030 <!ENTITY % URI "CDATA"> 00031 00032 <!-- a language code, as per [RFC1766] --> 00033 <!ENTITY % LanguageCode "NMTOKEN"> 00034 00035 <!-- internationalization attributes 00036 xml:lang language code (as per XML 1.0 spec) 00037 dir direction for weak/neutral text 00038 --> 00039 <!ENTITY % i18n 00040 "lang %LanguageCode; #IMPLIED 00041 dir (ltr|rtl) #IMPLIED" 00042 > 00043 00044 <!-- timestamps similar to [RFC2326] 00045 "smpte-24:" SMPTE time with a 24 fps basis 00046 "smpte-24-drop:" SMPTE time with a 24/1.001 fps basis 00047 "smpte-25:" SMPTE time with a 25 fps basis 00048 "smpte-30:" SMPTE time with a 30 fps basis 00049 "smpte-30-drop:" SMPTE time with a 30/1.001 fps basis 00050 "smpte-50:" SMPTE time with a 50 fps basis 00051 "smpte-60:" SMPTE time with a 60 fps basis 00052 "smpte-60-drop:" SMPTE time with a 60/1.001 fps basis 00053 "npt:" npt-time 00054 "clock:" utc-time 00055 00056 Playbacktime is specified as a smpte-time 00057 or npt-time only. 00058 00059 UTCtime is specified as in [RFC2326], but 00060 without the "clock" identifier 00061 --> 00062 <!ENTITY % Timestamp "CDATA"> 00063 <!ENTITY % Playbacktime "CDATA"> 00064 <!ENTITY % UTCtime "CDATA"> 00065 00066 00067 <!-- **************************** --> 00068 <!-- Document Structure --> 00069 <!-- **************************** --> 00070 00071 <!-- ROOT ELEMENT: --> 00072 <!-- cmml tag containing sequence of head and a tags --> 00073 <!-- =============================================== --> 00074 <!-- i18n = the default language for the whole document including 00075 the id tag of the cmml element --> 00076 <!-- xmlns = namespace of the cmml tags --> 00077 <!ELEMENT cmml (stream?, head, clip*)> 00078 <!ATTLIST cmml 00079 %i18n; 00080 id ID #IMPLIED 00081 xmlns %URI; #FIXED 'http://www.annodex.net/cmml' 00082 > 00083 00084 00085 <!-- **************************** --> 00086 <!-- Definition of stream element --> 00087 <!-- **************************** --> 00088 00089 <!-- STREAM tag providing timing information for the ANNODEX file --> 00090 <!-- (will be stored in the binary headers of the ANX bitstreams) --> 00091 <!-- ============================================================ --> 00092 <!-- (has no text attributes and thus no i18n; id tag follows default 00093 language specified in cmml tag) --> 00094 <!-- timebase = base time associated with the first frame of the media 00095 document from which subsequent time references (such as 00096 in clip tags) will be taken relative to --> 00097 <!-- utc = a mapping of the first frame to clock time; 00098 specifications of utc time offsets into the document as 00099 in a URI will be taken relative to this --> 00100 <!ELEMENT stream (import*)> 00101 <!ATTLIST stream 00102 id ID #IMPLIED 00103 timebase %Playbacktime; "0" 00104 utc %UTCtime; #IMPLIED 00105 > 00106 00107 <!-- IMPORT tag giving descriptions on an input bitstream (empty content) --> 00108 <!-- ==================================================================== --> 00109 <!-- i18n = the language of the import tag's and the contained param 00110 tags' attribute values --> 00111 <!-- granulerate = the base temporal resolution of the bitstream (e.g. 00112 its framerate for video or samplerate for audio) --> 00113 <!-- contenttype = encoding format of the input document (a MIME type and 00114 a character encoding separated by semicolon) --> 00115 <!-- src = URI to the media document --> 00116 <!-- start = the start time of the media bitstream specified 00117 in src --> 00118 <!-- end = the end time of the media bitstream specified 00119 in src --> 00120 <!-- title = human readable comment on the import bitstream --> 00121 <!ELEMENT import (param*)> 00122 <!ATTLIST import 00123 %i18n; 00124 id ID #IMPLIED 00125 granulerate CDATA #IMPLIED 00126 contenttype %ContentType; #IMPLIED 00127 src %URI; #REQUIRED 00128 start %Timestamp; "0" 00129 end %Timestamp; #IMPLIED 00130 title CDATA #IMPLIED 00131 > 00132 00133 <!-- PARAM description tags of an input bitstream (empty content) --> 00134 <!-- (name-value pairs e.g. comments on recording quality or so) --> 00135 <!-- ============================================================== --> 00136 <!-- (internationalisation inherited from the parent import tag) --> 00137 <!-- name = identifies a property name; does not list legal values for this 00138 attribute --> 00139 <!-- value = specifies a property's value; does not list legal values for 00140 this attribute --> 00141 <!ELEMENT param EMPTY> 00142 <!ATTLIST param 00143 id ID #IMPLIED 00144 name CDATA #REQUIRED 00145 value CDATA #REQUIRED 00146 > 00147 00148 00149 <!-- **************************** --> 00150 <!-- Definition of document head --> 00151 <!-- **************************** --> 00152 00153 <!-- head tag containing description of a specific media document --> 00154 <!-- ============================================================ --> 00155 <!-- i18n = the base language of the head's attribute values and text 00156 content --> 00157 <!-- profile = space-separated list of URIs to locate meta tag schemes --> 00158 <!ELEMENT head (meta*, 00159 ((title, meta*, (base, meta*)?) | 00160 (base, meta*, (title, meta*)?)))> 00161 <!ATTLIST head 00162 %i18n; 00163 id ID #IMPLIED 00164 profile %URI; #IMPLIED 00165 > 00166 00167 <!-- TITLE tag giving descriptive title of the media document --> 00168 <!-- ========================================================= --> 00169 <!-- i18n = the language of the title text --> 00170 <!ELEMENT title (#PCDATA)> 00171 <!ATTLIST title 00172 %i18n; 00173 id ID #IMPLIED 00174 > 00175 00176 <!-- BASE URI of the document (empty content) --> 00177 <!-- ======================================== --> 00178 <!-- (internationalisation inherited from the parent head tag) --> 00179 <!-- href = URI associated with the document; all relative URI references 00180 get interpreted relative to this base --> 00181 <!ELEMENT base EMPTY> 00182 <!ATTLIST base 00183 id ID #IMPLIED 00184 href %URI; #REQUIRED 00185 > 00186 00187 <!-- META description tags of the document (empty content) --> 00188 <!-- ===================================================== --> 00189 <!-- i18n = the language of the meta attributes --> 00190 <!-- name = identifies a property name; does not list legal values for this 00191 attribute --> 00192 <!-- content = specifies a property's value; does not list legal values for 00193 this attribute --> 00194 <!-- scheme = names a scheme to be used to interpret the property's value 00195 (see the profiles tag in the head element for locating these) --> 00196 <!ELEMENT meta EMPTY> 00197 <!ATTLIST meta 00198 %i18n; 00199 id ID #IMPLIED 00200 name NMTOKEN #IMPLIED 00201 content CDATA #REQUIRED 00202 scheme CDATA #IMPLIED 00203 > 00204 00205 <!-- ************************** --> 00206 <!-- Definition of clip tags --> 00207 <!-- ************************** --> 00208 00209 <!-- Clip tag containing information for a specific fragment --> 00210 <!-- ======================================================= --> 00211 <!-- though meta, a, img and desc are given in specific order 00212 here, their order is acutally random --> 00213 <!-- i18n = the base language of the clip's attribute values and 00214 of its content elements --> 00215 <!-- id = name of the clip used in URI clip references --> 00216 <!-- track = defines different sets of clip tags; clip tags of same 00217 type cannot overlap temporally --> 00218 <!-- start = specifies the start time of the clip; specified in 00219 time relative to the timebase of the header 00220 [NOT INCLUDED IN ANNODEX DOCUMENT] --> 00221 <!-- end = specifies the end time of the clip; specified in 00222 time relative to the timebase of the header 00223 [NOT INCLUDED IN ANNODEX DOCUMENT] --> 00224 <!ELEMENT clip (meta*, a?, img?, desc?)> 00225 <!ATTLIST clip 00226 %i18n; 00227 id ID #IMPLIED 00228 track CDATA "default" 00229 start %Timestamp; #REQUIRED 00230 end %Timestamp; #IMPLIED 00231 > 00232 00233 <!-- A tag containing information for a specific clip --> 00234 <!-- ================================================ --> 00235 <!-- a tag contains anchor text being a textual description of the link 00236 between the current element (the source anchor) and the destination 00237 anchor given by the href attribute --> 00238 <!-- i18n = language of the anchor's attribute values and anchor text --> 00239 <!-- class = overriding style sheet defaults for this instance --> 00240 <!-- href = specifies the location of a Web resource, thus defining a 00241 link between the current element (the source anchor) and the 00242 destination anchor given by this attribute --> 00243 <!ELEMENT a (#PCDATA)> 00244 <!ATTLIST a 00245 %i18n; 00246 id ID #IMPLIED 00247 class CDATA #IMPLIED 00248 href %URI; #REQUIRED 00249 > 00250 00251 <!-- IMG tag to include a representative image for the clip --> 00252 <!-- ====================================================== --> 00253 <!-- i18n = language of the image's attribute values --> 00254 <!-- src = reference to the image --> 00255 <!-- alt = alternative text for the image (accessibility) --> 00256 <!ELEMENT img EMPTY> 00257 <!ATTLIST img 00258 %i18n; 00259 id ID #IMPLIED 00260 src %URI; #REQUIRED 00261 alt CDATA #IMPLIED 00262 > 00263 00264 <!-- DESC human-readable, textual description of the clip (annotation) --> 00265 <!-- ================================================================= --> 00266 <!-- i18n = language of the data in the description --> 00267 <!ELEMENT desc (#PCDATA)> 00268 <!ATTLIST desc 00269 %i18n; 00270 id ID #IMPLIED 00271 >