This Section defines the SMIL structure module. The Structure Module provides the base elements for structuring SMIL content. These elements act as the root in the content model of SMIL-family document types. The Structure Module is a mandatory module in a profile building a member of the SMIL profile family. The Structure Module is isomorphic with the XHTML Structure Module [XMOD].
@@ The term "profile family" needs definition. This can be done in Section B. In this document a link to that definition is to be inserted.
The SMIL Structure Module is composed out of the smil
,
head
and body
element, and is compatible with
SMIL 1.0 [SMIL10]. The corresponding SMIL 1.0 elements form a
subset of the Structure Module, both in syntax and semantics, as their attributes
and content model is also exposed by the Structure Module. Thus, the Structure
Module is backwards compatible with SMIL 1.0.
smil, head
and
body
elements
This section is Informative.
The attributes and content model of the Structure Module elements is summarized in the following table:
Elements | Attributes | Minimal Content Model |
---|---|---|
smil | Core, Accessibility, xmlns | head?, body? |
head | Core, Accessibility, profile | meta*, ( switch | layout )? |
body | Core, Accessibility, Events | ( Schedule | MediaContent | MediaControl | LinkAnchor )* |
The Attribute collections in this table are defined as follows
The Events collection is only defined when the Event Module (Section E) is selected in the profile.
@@ The enumeration of Events needs extension, e.g. with onRepeat, onClick, onMouseover, etc., or a reference to another specification is required.
@@ references to Section E need be checked in final version, plus an addition of a hyperlink to that section.
The collections in the table from the Content Model of the body
element are defined as follows
@@ references to other sections need be checked in final version, plus an addition of a hyperlink to those sections.
@@ Do we allow area as child of body?
The smil
element acts as the root element for all SMIL Family
Document Types.
The body
element associates with the root
in the
Media Object Model [Section I]. Its default schedule semantics equals that
of the seq
element.
@@ references to Section I need be checked in final version, plus an addition of a hyperlink to that section.
@@ The following is a proposal
Whereas the <smil> element represents the document (DOM) root, the <body> element represents the schedule/media root. This has the consequence that upon nesting of SMIL documents the tree downwards from the <body> of the nested document is included in the schedule of the parent SMIL document. Navigation calls as performed by <area>, XPointer, and the XML-DOM and SMIL-DOM, smoothly extend along this tree.
This section is Normative.
This section specifies the DTD of the SMIL Structure Module.
@@ Check for harmonizing with [XMOD] when that receives REC status.
<!-- ================================================================= --> <!-- SMIL Structure Module ========================================== --> <!-- file: SMIL-struct.mod This is Smil-Boston. Copyright 1999 W3C (MIT, INRIA, Keio), All Rights Reserved. This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS SMIL-Boston Document Structure//EN" SYSTEM "SMIL-struct.mod" ================================================================= --> <!-- ================== General entities ========================== --> <!ENTITY % URI "CDATA" > <!ENTITY % SMIL.ns "SMIL-Boston.dtd" > <!ENTITY % SMIL.profile "SMIL-Boston.dtd" > <!ENTITY % core "id ID #IMPLIED class NMTOKEN #IMPLIED" > <!ENTITY % accessibility "xml:lang NMTOKEN #IMPLIED title CDATA #IMPLIED" > <!ENTITY % xml-dom.events "onMouseover CDATA #IMPLIED onClick CDATA #IMPLIED onEtc CDATA #IMPLIED" > <!ENTITY % smil-dom.events "onBegin CDATA #IMPLIED onEnd CDATA #IMPLIED onEtc CDATA #IMPLIED" > <!ENTITY % dom.events "%smil-dom.events; %xml-dom.events;" > <!-- ================== Profiling Entities ======================== --> <!ENTITY % XSmil.attr "" > <!ENTITY % XBody.attr "" > <!ENTITY % XBody.content "" > <!ENTITY % XHead.attr "" > <!ENTITY % XHead.content "" > <!-- ================== SMIL Document Root ======================== --> <!ELEMENT smil (head?,body?)> <!ATTLIST smil %core; %accessibility; xmlns %URI; #FIXED "%SMIL.ns;" %XSmil.attr; > <!-- ================== The Document Head ========================= --> <!ENTITY % layout-section "layout|switch"> <!ENTITY % Head.content "(meta*,(%layout-section;),meta*)?"> <!ENTITY % Head.content "(meta*,(%layout-section;),meta*,(%XHead.content;),meta*)?"> <!ELEMENT head %Head.content;> <!ATTLIST head %core; %accessibility; profile %URI; #FIXED "%SMIL.profile;" %XHead.attr; > <!--=================== The Document Body - Schedule Root ========= --> <!ENTITY % schedule "par|seq|excl"> <!ENTITY % media-object "audio|video|text|img|animation|textstream|ref"> <!ENTITY % content-control "switch"> <!ENTITY % link "a|area"> <!ENTITY % Body.content "%schedule;|%media-object;|%content-control;|%link;"> <!ELEMENT body (%Body.content;|%XBody.content;)*> <!ATTLIST body %core; %accessibility; %dom.events; %XBody.attr; > <!-- end of SMIL-struct.mod -->