[xiph-commits] r3399 - standards

silvia at svn.annodex.net silvia at svn.annodex.net
Fri Feb 1 23:44:37 PST 2008


Author: silvia
Date: 2008-02-01 23:44:36 -0800 (Fri, 01 Feb 2008)
New Revision: 3399

Added:
   standards/cmml_4_0.xsd
Log:
Created new XML schema specification of CMML, which pulls in a lot from the XHTML specification at http://www.w3.org/TR/xhtml1-schema/ .
This is a first draft and includes much of the discussion had at FOMS as noted at http://trac.annodex.net/wiki/CmmlChanges .
Therefore, it is specified as CMML 4.0.
Also note that CMML is now not an authoring format for Annodex any more, but a timed text codec - a metadata format that is sequential and will easily map into a logical Ogg bitstream.



Added: standards/cmml_4_0.xsd
===================================================================
--- standards/cmml_4_0.xsd	                        (rev 0)
+++ standards/cmml_4_0.xsd	2008-02-02 07:44:36 UTC (rev 3399)
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema version="1.0" xml:lang="en" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           targetNamespace="http://www.annodex.org/cmml"
+           xmlns="http://www.annodex.org/cmml"
+           xmlns:html="http://www.w3.org/1999/xhtml"
+           elementFormDefault="qualified">
+
+  <xs:annotation>
+    <xs:documentation>
+      Continuous Media Markup Language CMML version 4.0 in XML Schema
+ 
+      CMML is a language to describe a timed text track, i.e. a timed text codec.
+
+      Namespace = http://www.annodex.net/cmml
+
+	  For further information, see: http://www.annodex.net/
+
+      Copyright (c) 2008- Annodex Association, Xiph.Org.
+      All Rights Reserved. 
+
+      $Revision: 4.0 $
+      $Date$
+      $Id: cmml_4_0.xsd 2008/02/01 13:00:00 ginger $
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:import namespace="http://www.w3.org/1999/xhtml"
+      schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd"/>
+
+  <xs:annotation>
+    <xs:documentation>
+      ================== Imported Names ====================================
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+    Simple Types in use in this XML schema and inherited from xhtml:
+    html:ContentType
+    html:LinkTypes
+    html:MediaDesc
+    html:Text
+    html:URI
+    html:LanguageCode
+    html:FrameTarget
+    html:Length
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:simpleType name="TTextType">
+    <xs:annotation>
+      <xs:documentation>
+      timed text types, e.g. closed-caption, annotation, subtitle, transcript, ticker
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <xs:simpleType name="Timestamp">
+    <xs:annotation>
+      <xs:documentation>
+      timestamps similar to [RFC2326] 
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="smpte-24:"/>
+      <xs:enumeration value="smpte-24-drop:"/>
+      <xs:enumeration value="smpte-25:"/>
+      <xs:enumeration value="smpte-30:"/>
+      <xs:enumeration value="smpte-30-drop:"/>
+      <xs:enumeration value="smpte-50:"/>
+      <xs:enumeration value="smpte-60:"/>
+      <xs:enumeration value="smpte-60-drop:"/>
+      <xs:enumeration value="npt:"/>
+      <xs:enumeration value="clock:"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="Playbacktime">
+    <xs:annotation>
+      <xs:documentation>
+      timestamps similar to [RFC2326] 
+      "smpte-24:" SMPTE time with a 24 fps basis
+      "smpte-24-drop:" SMPTE time with a 24/1.001 fps basis
+      "smpte-25:" SMPTE time with a 25 fps basis
+      "smpte-30:" SMPTE time with a 30 fps basis
+      "smpte-30-drop:" SMPTE time with a 30/1.001 fps basis
+      "smpte-50:" SMPTE time with a 50 fps basis
+      "smpte-60:" SMPTE time with a 60 fps basis
+      "smpte-60-drop:" SMPTE time with a 60/1.001 fps basis
+      "npt:" npt-time
+      no clock time
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="smpte-24:"/>
+      <xs:enumeration value="smpte-24-drop:"/>
+      <xs:enumeration value="smpte-25:"/>
+      <xs:enumeration value="smpte-30:"/>
+      <xs:enumeration value="smpte-30-drop:"/>
+      <xs:enumeration value="smpte-50:"/>
+      <xs:enumeration value="smpte-60:"/>
+      <xs:enumeration value="smpte-60-drop:"/>
+      <xs:enumeration value="npt:"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="UTCtime">
+    <xs:annotation>
+      <xs:documentation>
+      UTCtime is specified as in [RFC2326], but without the "clock" identifier
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Generic Attributes ===============================
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+    attribute groups in use in this XML schema and inherited from xhtml:
+    html:coreattrs
+    html:i18n
+    html:attrs
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Document Structure ===============================
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Root Element ===============================
+    cmml tag containing sequence of one head and n clip tags
+    i18n        = the default language for the whole document including
+                  the id tag of the cmml element
+    xmlns       = namespace of the cmml tags
+    role        = describes what type of text track this CMML file represents,
+                  such as e.g. closed-caption, annotation, subtitle, transcript,
+                  ticker
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="cmml">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="head"/>
+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="clip"/>
+      </xs:sequence>
+      <xs:attributeGroup ref="html:i18n"/>
+      <xs:attribute name="role" type="TTextType"/>
+      <xs:attribute name="id" type="xs:ID"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Document Head ===============================
+    head tag containing description of a specific timed text track
+    i18n    = the base language of the head's attribute values and text 
+               content
+    profile = space-separated list of URIs to locate meta tag schemes
+    </xs:documentation>
+  </xs:annotation>
+
+  <!-- content model is not quite right yet -->
+  <xs:element name="head">
+    <xs:annotation>
+      <xs:documentation>
+      Title is the title of the media file
+      Img is an optional representative image for the full media file
+      Base is an optional base URL for the full media file
+      Style is style sheet for the document
+      Meta is a collection of meta tags for the document
+      Link points to related documents
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:all>
+        <xs:element ref="title" minOccurs="0" maxOccurs="1"/>
+        <xs:element ref="img" minOccurs="0" maxOccurs="1"/>
+        <xs:element ref="base" minOccurs="0" maxOccurs="1"/>          
+      </xs:all>
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="style"/>
+        <xs:element ref="meta"/>
+        <xs:element ref="link"/>
+      </xs:choice>
+      <xs:attributeGroup ref="html:i18n"/>
+      <xs:attribute name="id" type="xs:ID"/>
+      <xs:attribute name="profile" type="html:URI"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Title ===============================
+    title tag giving descriptive title of the media document
+    i18n    = the language of the title text
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="title">
+    <xs:annotation>
+      <xs:documentation>
+      The title element is not considered part of the presentation.
+      It should be displayed, for example as the page header or
+      window title. Exactly one title is required per document.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType mixed="true">
+      <xs:attributeGroup ref="html:i18n"/>
+      <xs:attribute name="id" type="xs:ID"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Img ===========================================
+    To avoid accessibility problems for people who aren't
+    able to see the image, you should provide a text
+    description using the alt and longdesc attributes.
+    attrs = the language of the image's attribute values;
+            the stylesheet class attribute; a short title
+            representing the image (e.g. in tooltips)
+    src   = reference to the image
+    alt   = alternative text for the image (accessibility)
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="img">
+    <xs:complexType>
+      <xs:attributeGroup ref="attrs"/>
+      <xs:attribute name="src" use="required" type="URI"/>
+      <xs:attribute name="alt" use="required" type="Text"/>
+      <xs:attribute name="longdesc" type="html:URI"/>
+      <xs:attribute name="height" type="html:Length"/>
+      <xs:attribute name="width" type="html:Length"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Base URI ===============================
+    base URI of the document (empty content)
+    i18n    = the language of the title text
+    href    = URI associated with the document; all relative URI references
+              get interpreted relative to this base -->
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="base">
+    <xs:annotation>
+      <xs:documentation>
+      (internationalisation inherited from the parent head tag)
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="id" type="xs:ID"/>
+      <xs:attribute name="href" type="html:URI"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Meta ===============================
+    description tags of the document (empty content)
+    i18n    = the language of the meta attributes
+    name    = identifies a property name; does not list legal values for this 
+	          attribute
+    content = specifies a property's value; does not list legal values for 
+	          this attribute
+    scheme  = names a scheme to be used to interpret the property's value 
+	          (see the profiles tag in the head element for locating these)
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="meta">
+    <xs:complexType>
+      <xs:attributeGroup ref="i18n"/>
+      <xs:attribute name="id" type="xs:ID"/>
+      <xs:attribute name="http-equiv"/>
+      <xs:attribute name="name"/>
+      <xs:attribute name="content" use="required"/>
+      <xs:attribute name="scheme"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Link ===============================
+    LINK tag to specify relationship values (empty content)
+    attrs = the language of the title text; a short description of the
+            relationship through title, and the stylesheet class
+    href  = reference to a related document
+    type  = type of the document referenced, e.g. "text/css"
+    rel   = type of relationship to forward linked document
+    rev   = type of relationship to reverse linked document
+    media = type or medium/media to be rendered on, default "screen"
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="link">
+    <xs:complexType>
+      <xs:attributeGroup ref="attrs"/>
+      <xs:attribute name="href" type="URI"/>
+      <xs:attribute name="type" type="html:ContentType"/>
+      <xs:attribute name="rel" type="html:LinkTypes"/>
+      <xs:attribute name="rev" type="html:LinkTypes"/>
+      <xs:attribute name="media" type="html:MediaDesc"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Style ===============================
+    STYLE tag to specify presentation styles
+    i18n  = the language of the style's title attribute
+    title = short description of the style
+    type  = type of the document referenced, e.g. "text/css"
+    media = type or medium/media to be rendered on, default "screen"
+    xml:space = fixed to preserve whitespace characters in content
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="style">
+    <xs:annotation>
+      <xs:documentation>
+      The content of the "style" element is a style sheet.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType mixed="true">
+      <xs:attributeGroup ref="i18n"/>
+      <xs:attribute name="id" type="xs:ID"/>
+      <xs:attribute name="title" type="html:Text"/>
+      <xs:attribute name="type" use="required" type="html:ContentType"/>
+      <xs:attribute name="media" type="html:MediaDesc"/>
+      <xs:attribute ref="xml:space" fixed="preserve"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:annotation>
+    <xs:documentation>
+    =================== Clip Elements ===============================
+    Clip tag containing information for a specific fragment
+    attrs    = the base language of the clip's attribute values and 
+               of its content elements; the stylesheet class attribute;
+               a short title representing the clip (e.g. in tooltips)
+    track    = defines different sets of clip tags; clip tags of same 
+               type cannot overlap temporally
+    start    = specifies the start time of the clip; specified in 
+               time relative to the basetime of the header 
+               [NOT INCLUDED IN OGG DOCUMENT]
+    end      = specifies the end time of the clip; specified in 
+               time relative to the basetime of the header 
+               [NOT INCLUDED IN OGG DOCUMENT]
+    </xs:documentation>
+  </xs:annotation>
+
+  <!-- content model is not quite right yet -->
+  <xs:element name="clip">
+    <xs:complexType>
+      <xs:all>
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="meta"/>
+          <xs:element ref="style"/>
+        </xs:choice>          
+        <xs:element ref="a" minOccurs="0" maxOccurs="1"/>
+        <xs:element ref="img" minOccurs="0" maxOccurs="1"/>
+        <xs:element ref="html:body" minOccurs="0" maxOccurs="1"/>
+      </xs:all>
+      <xs:attributeGroup ref="html:attrs"/>
+      <xs:attribute name="start" type="Timestamp"/>
+      <xs:attribute name="end" type="Timestamp"/>
+    </xs:complexType>
+  </xs:element>
+
+
+  <xs:annotation>
+    <xs:documentation>
+    ================== The Anchor Element ================================
+    A tag containing information for a specific clip 
+    attrs    = the base language of the clip's attribute values and 
+               of its content elements; the stylesheet class attribute;
+               a short title representing the anchor (e.g. in tooltips)
+    href     = specifies the location of a Web resource, thus defining a 
+               link between the current element (the source anchor) and the 
+               destination anchor given by this attribute
+    rel      = Specifies the relationship between the current document and
+               the target URL
+    rev      = Specifies the relationship between the target URL and the
+               current document
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:element name="a">
+    <xs:annotation>
+      <xs:documentation>
+      a tag contains anchor text being a textual description of the link
+      between the current element (the source anchor) and the destination
+      anchor given by the href attribute
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType mixed="true">
+      <xs:complexContent>
+        <xs:attributeGroup ref="attrs"/>
+        <xs:attribute name="href" type="html:URI"/>
+        <xs:attribute name="hreflang" type="html:LanguageCode"/>
+        <xs:attribute name="rel" type="html:LinkTypes"/>
+        <xs:attribute name="rev" type="html:LinkTypes"/>
+        <xs:attribute name="target" type="html:FrameTarget"/> 
+        <xs:attribute name="type" type="html:ContentType"/>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+
+</schema>
\ No newline at end of file



More information about the commits mailing list