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.1 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.1//EN" 00016 SYSTEM "http://www.annodex.net/DTD/cmml_2_1.dtd" 00017 00018 $Revision: 2.1 $ 00019 $Date: 2006/03/04 24:00:00 $ 00020 --> 00021 00022 <!-- **************************** --> 00023 <!-- Definition of Imported Names --> 00024 <!-- **************************** --> 00025 00026 <!-- media type, as per [RFC2045] --> 00027 <!ENTITY % ContentType "CDATA"> 00028 00029 <!-- space-separated list of link types --> 00030 <!ENTITY % LinkTypes "CDATA"> 00031 00032 <!-- single or comma-separated list of media descriptors --> 00033 <!ENTITY % MediaDesc "CDATA"> 00034 00035 <!-- used for titles etc. --> 00036 <!ENTITY % Text "CDATA"> 00037 00038 <!-- a Uniform Resource Identifier, see [RFC2396] --> 00039 <!ENTITY % URI "CDATA"> 00040 00041 <!-- a language code, as per [RFC1766] --> 00042 <!ENTITY % LanguageCode "NMTOKEN"> 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 <!-- Definition of Generic Attributes --> 00069 <!-- ******************************** --> 00070 00071 <!-- core attributes common to most displayable elements 00072 id document-wide unique id 00073 class space separated list of classes 00074 title advisory title/amplification 00075 --> 00076 <!ENTITY % coreattrs 00077 "id ID #IMPLIED 00078 class CDATA #IMPLIED 00079 title %Text; #IMPLIED" 00080 > 00081 00082 <!-- internationalization attributes 00083 xml:lang language code (as per XML 1.0 spec) 00084 dir direction for weak/neutral text 00085 --> 00086 <!ENTITY % i18n 00087 "lang %LanguageCode; #IMPLIED 00088 dir (ltr|rtl) #IMPLIED" 00089 > 00090 00091 <!ENTITY % attrs "%coreattrs; %i18n;"> 00092 00093 00094 <!-- **************************** --> 00095 <!-- Document Structure --> 00096 <!-- **************************** --> 00097 00098 <!-- ROOT ELEMENT: --> 00099 <!-- cmml tag containing sequence of head and a tags --> 00100 <!-- =============================================== --> 00101 <!-- i18n = the default language for the whole document including 00102 the id tag of the cmml element --> 00103 <!-- xmlns = namespace of the cmml tags --> 00104 <!-- granulerate = the base temporal resolution to be used for the 00105 cmml bitstream --> 00106 <!ELEMENT cmml (stream?, head, clip*)> 00107 <!ATTLIST cmml 00108 %i18n; 00109 id ID #IMPLIED 00110 xmlns %URI; #FIXED 'http://www.annodex.net/cmml' 00111 granulerate CDATA #IMPLIED 00112 > 00113 00114 00115 <!-- **************************** --> 00116 <!-- Definition of stream element --> 00117 <!-- **************************** --> 00118 00119 <!-- STREAM tag providing timing information for the ANNODEX file --> 00120 <!-- (will be stored in the binary headers of the ANX bitstreams) --> 00121 <!-- ============================================================ --> 00122 <!-- (has no text attributes and thus no i18n; id tag follows default 00123 language specified in cmml tag) --> 00124 <!-- basetime = base time associated with the first frame of the 00125 media document from which subsequent time references 00126 (such as in clip tags) will be taken relative to --> 00127 <!-- timebase = same as basetime; kept for backwards compatibility; 00128 deprecated and will not be used in versions>=3.0 --> 00129 <!-- utc = a mapping of the first frame to clock time; 00130 specifications of utc time offsets into the document 00131 as in a URI will be taken relative to this --> 00132 <!ELEMENT stream (import*)> 00133 <!ATTLIST stream 00134 id ID #IMPLIED 00135 basetime %Playbacktime; "0" 00136 timebase %Playbacktime; "0" 00137 utc %UTCtime; #IMPLIED 00138 > 00139 00140 <!-- IMPORT tag giving descriptions on an input bitstream 00141 (empty content) --> 00142 <!-- ============================================================ --> 00143 <!-- i18n = the language of the import tag's and the contained 00144 param tags' attribute values --> 00145 <!-- title = human readable comment on the import bitstream --> 00146 <!-- granulerate = the base temporal resolution of the bitstream 00147 (e.g. its framerate for video or samplerate for 00148 audio) --> 00149 <!-- contenttype = encoding format of the input document (a MIME type 00150 and a character encoding separated by semicolon) 00151 --> 00152 <!-- src = URI to the media document --> 00153 <!-- start = the start time of the media bitstream specified 00154 in src --> 00155 <!-- end = the end time of the media bitstream specified 00156 in src --> 00157 <!ELEMENT import (param*)> 00158 <!ATTLIST import 00159 %i18n; 00160 id ID #IMPLIED 00161 title %Text; #IMPLIED 00162 granulerate CDATA #IMPLIED 00163 contenttype %ContentType; #IMPLIED 00164 src %URI; #REQUIRED 00165 start %Timestamp; "0" 00166 end %Timestamp; #IMPLIED 00167 > 00168 00169 <!-- PARAM description tags of an input bitstream (empty content) --> 00170 <!-- (name-value pairs e.g. comments on recording quality or so) --> 00171 <!-- ============================================================ --> 00172 <!-- (internationalisation inherited from the parent import tag) --> 00173 <!-- name = identifies a property name; does not list legal values 00174 for this attribute --> 00175 <!-- value = specifies a property's value; does not list legal values 00176 for this attribute --> 00177 <!ELEMENT param EMPTY> 00178 <!ATTLIST param 00179 id ID #IMPLIED 00180 name CDATA #REQUIRED 00181 value CDATA #REQUIRED 00182 > 00183 00184 00185 <!-- **************************** --> 00186 <!-- Definition of document head --> 00187 <!-- **************************** --> 00188 00189 <!-- head tag containing description of a specific media stream --> 00190 <!-- ========================================================== --> 00191 <!-- i18n = the base language of the head's attribute values 00192 and text content --> 00193 <!-- profile = space-separated list of URIs to locate meta tag 00194 schemes --> 00195 00196 <!-- content model is %head.misc; combined with a single 00197 title and an optional base element in any order --> 00198 <!ENTITY % head.misc "(meta|link)*"> 00199 <!ELEMENT head (%head.misc;, 00200 ((title, %head.misc;, (base, %head.misc;)?) | 00201 (base, %head.misc;, (title, %head.misc;))))> 00202 <!ATTLIST head 00203 %i18n; 00204 id ID #IMPLIED 00205 profile %URI; #IMPLIED 00206 > 00207 00208 <!-- TITLE tag giving descriptive title of the media document --> 00209 <!-- ========================================================= --> 00210 <!-- i18n = the language of the title text --> 00211 <!ELEMENT title (#PCDATA)> 00212 <!ATTLIST title 00213 %i18n; 00214 id ID #IMPLIED 00215 > 00216 00217 00218 <!-- BASE URI of the document (empty content) --> 00219 <!-- ======================================== --> 00220 <!-- (internationalisation inherited from the parent head tag) --> 00221 <!-- href = URI associated with the document; all relative URI 00222 references get interpreted relative to this base --> 00223 <!ELEMENT base EMPTY> 00224 <!ATTLIST base 00225 id ID #IMPLIED 00226 href %URI; #REQUIRED 00227 > 00228 00229 <!-- META description tags of the document (empty content) --> 00230 <!-- ===================================================== --> 00231 <!-- i18n = the language of the meta attributes --> 00232 <!-- name = identifies a property name; does not list legal 00233 values for this attribute --> 00234 <!-- content = specifies a property's value; does not list legal 00235 values for this attribute --> 00236 <!-- scheme = names a scheme to be used to interpret the property's 00237 value (see the profiles tag in the head element for 00238 locating these) --> 00239 <!ELEMENT meta EMPTY> 00240 <!ATTLIST meta 00241 %i18n; 00242 id ID #IMPLIED 00243 name NMTOKEN #IMPLIED 00244 content CDATA #REQUIRED 00245 scheme CDATA #IMPLIED 00246 > 00247 00248 <!-- LINK tag to specify relationship values (empty content) --> 00249 <!-- ======================================================= --> 00250 <!-- Relationship values can be used in principle: 00251 a) for document specific toolbars/menus when used 00252 with the link element in document head e.g. 00253 start, contents, previous, next, index, end, help 00254 b) to link to a separate style sheet (rel="stylesheet") 00255 As charsets are given in the xml directive of cmml documents, 00256 this attribute of html is not required for cmml. 00257 --> 00258 <!-- attrs = the language of the title text; a short description of 00259 the relationship through title, and the stylesheet class 00260 --> 00261 <!-- href = reference to a related document --> 00262 <!-- type = type of the document referenced, e.g. "text/css" --> 00263 <!-- rel = type of relationship to forward linked document --> 00264 <!-- rev = type of relationship to reverse linked document --> 00265 <!-- media = type or medium/media to be rendered on, default "screen" 00266 --> 00267 00268 <!ELEMENT link EMPTY> 00269 <!ATTLIST link 00270 %attrs; 00271 href %URI; #IMPLIED 00272 type %ContentType; #IMPLIED 00273 rel %LinkTypes; #IMPLIED 00274 rev %LinkTypes; #IMPLIED 00275 media %MediaDesc; #IMPLIED 00276 > 00277 00278 00279 <!-- ************************** --> 00280 <!-- Definition of clip tags --> 00281 <!-- ************************** --> 00282 00283 <!-- Clip tag containing information for a specific fragment --> 00284 <!-- ======================================================= --> 00285 <!-- through meta, a, img and desc are given in specific order 00286 here, their order is acutally random --> 00287 <!-- attrs = the base language of the clip's attribute values and 00288 of its content elements; a short title representing 00289 the anchor (e.g. in tooltips) --> 00290 <!-- track = defines different sets of clip tags; clip tags of 00291 same type cannot overlap temporally --> 00292 <!-- start = specifies the start time of the clip; specified in 00293 time relative to the basetime of the header 00294 [NOT INCLUDED IN ANNODEXED DOCUMENT] --> 00295 <!-- end = specifies the end time of the clip; specified in 00296 time relative to the basetime of the header 00297 [NOT INCLUDED IN ANNODEXED DOCUMENT] --> 00298 00299 <!ELEMENT clip (meta*, a?, img?, desc?)> 00300 <!ATTLIST clip 00301 %attrs; 00302 track CDATA "default" 00303 start %Timestamp; #REQUIRED 00304 end %Timestamp; #IMPLIED 00305 > 00306 00307 <!-- A tag containing information for a specific clip --> 00308 <!-- ================================================ --> 00309 <!-- a tag contains anchor text being a textual description of the 00310 link between the current element (the source anchor) and the 00311 destination anchor given by the href attribute --> 00312 <!-- attrs = the base language of the clip's attribute values 00313 and of its content elements; the stylesheet class 00314 attribute; a short title representing the anchor 00315 (e.g. in tooltips) --> 00316 <!-- href = specifies the location of a Web resource, thus 00317 defining a link between the current element (the 00318 source anchor) and the destination anchor given by 00319 this attribute --> 00320 <!ELEMENT a (#PCDATA)> 00321 <!ATTLIST a 00322 %attrs; 00323 href %URI; #REQUIRED 00324 > 00325 00326 <!-- IMG tag to include a representative image for the clip --> 00327 <!-- ====================================================== --> 00328 <!-- attrs = the language of the image's attribute values; 00329 the stylesheet class attribute; a short title 00330 representing the image (e.g. in tooltips) --> 00331 <!-- src = reference to the image --> 00332 <!-- alt = alternative text for the image (accessibility) --> 00333 <!ELEMENT img EMPTY> 00334 <!ATTLIST img 00335 %attrs; 00336 src %URI; #REQUIRED 00337 alt CDATA #IMPLIED 00338 > 00339 00340 <!-- DESC human-readable, textual description of the clip 00341 (annotation) --> 00342 <!-- ======================================================= --> 00343 <!-- attrs = the base language of the data in the 00344 description; the class & style attributes; 00345 a short title representing the desc (e.g. in 00346 tooltips) --> 00347 <!ELEMENT desc (#PCDATA)> 00348 <!ATTLIST desc 00349 %attrs; 00350 >