SlideML 1.0, 25 February 2003
This version:
http://www.slideml.org/specification/slideml_1.0
Previous versions:
http://bitflux.ch/slideml/slideml.html
http://bitflux.ch/slideml/slideml2002-08-20.html
Editor:
Roger Fischer, roger.fischer@kaywa.com
Authors:
Robin Berjon, robin@knowscape.com
Lon Boonen, lon@q42.nl
Paul Everitt, paul@eurozope.org
Roger Fischer, roger.fischer@kaywa.com
Gregor J. Rothfuss, rothfuss@abstrakt.ch
Christian Stocker, christian.stocker@bitflux.ch
Eric Vitiello Jr., eric@perceive.net
Michael Wechner, michael.wechner@wyona.org
Please report all possible problems with this specification to roger.fischer@oscom.org. Suggestions are also very welcome.
AbstractThis specification defines the features and syntax for SlideML, a language for describing presentations/slideshows in XML.
SlideML is the common OSCOM presentation format, not tied to any other existing format. SlideML can be easily translated via XSLT to some of the other formats like Docbook slides as well as directly to HTML, PDF, SVG or it can be styled with CSS.
If you want to add another translation/transformation, please send a mail to roger.fischer@oscom.org.
The Slideml.org site provides not only a definition of SlideML, but also the necessary XSLT's and CSS to transform SlideML into other XML-based presentation languages or into a final presentation.
SlideML Overview: s:slideset, s:metadata, s:slideSlideML is a XML based Markup Language to make slide presentations. Its root element is: s:slideset.
s:slideset (mandatory) has the following parts: s:metadata (mandatory) and one or more elements called s:slide (optional).
The element s:metadata has several children:
-
s:title (mandatory)
-
s:subtitle (optional)
-
s:author (mandatory) or s:authorgroup and s:author
-
s:confgroup (optional)
-
dc:date (mandatory)
-
dc:rights (optional)
-
dc:subject (mandatory)
-
s:abstract (optional)
-
s:begin (optional)
-
s:end (optional)
-
s:alternativemedia (optional)
The element s:slide has five children:
-
s:title (mandatory)
-
s:content (optional)
-
s:notes (optional)
-
s:begin (optional)
-
s:end (optional)
SlideML NamespacesIn SlideML we use several namespaces. The three most important ones are:
-
The SlideML namespace with the s-prefix - s:elementname (example: s:slideset)
-
The XHTML 1.0 namespace - the default namespace, so just use the above mentioned XHTML elements without any prefix (example: p)
-
The Dublin Core namespace with the dc-prefix - dc:elementname (example: dc:subject)
You will use them quite often, as you can see in the examples.
Furthermore three more namespaces are mentioned (even though for most use cases you will not need them):
-
The Dublin Core Terms namespace with the dcterms-prefix - dcterms:termname (example: xsi:type="dcterms:URI"), which you will only use, if you change the type of an element (see XML Schema Instance below)
-
The XInclude namespace with the xi-prefix - xi:include, which you will only use when you want to include a slide from another presentation.
-
The XML Schema Instance namespace with the xsi-prefix - xsi:type, which you will only use when you change the type of an element (example: from Simple Literal to URI)
It is important to note that the prefix can always be changed, but the namespace-URI must remain the same. See the namespace reference in the appendices.
Metadata in Details:title and s:subtitle of the whole presentation.
s:author and s:authorgroup: If there is only one author/creator of the presentation, you will use the element s:author. If there are several authors, you use s:authorgroup and inside authorgroup, you use s:author as a child element.
Inside s:author it is required to use the elements:
-
s:givenname (given name of the author),
-
s:familyname (family name of the author),
Inside s:author it is optional to use the elements:
-
s:email (email address of the author),
-
s:jobtitle (jobtitle of the author),
-
s:authorblurb (see next paragraph)
-
s:orgname (name of the organization the author represents). s:orgname has an optional s:href attribute which points to the URI of the organization, company.
-
s:orglogo (logo of the organization the author represents). s:orglogo has an optional s:href attribute pointing to the logo. (The s:alt attribute is no longer used, as you can use the s:orgname for a possible alt attribute in an HTML version.)
You can use an optional attribute s:href on s:orgname for the URI of the organization.
All children elements of s:authorblurb (a bio, a short description or note about an author) are in the XHTML namespace which you don't have to declare. You find a list with all XHTML elements below.
s:confgroup (optional) is a wrapper for meta-information about a conference. It has several possible elements:
-
s:confdates, the dates of a conference
-
s:conftitle, the title of a conference
-
s:address, a real-world address, generally a postal address. Here the address where the conference takes place.
s:confdates has as:begin and a s:end tag. In s:confdates, s:begin and s:end represent dates (YYYY-MM-DD), and not a frame or second. Example:
<s:confdates>
<s:begin>2002-09-25</s:begin>
<s:end>2002-09-27</s:end>
</s:confdates> 
.
dc:date. The date of creation of a presentation. Use the YYYY-MM-DD format. (BTW dc means Dublin Core).
dc:rights. Copyright information about a presentation. IMPORTANT: Just write the name/s of the copyright holders and don't use the words "rights" or "copyright" as they will be duplicated otherwise.
dc:subject. A set of comma-delimited keywords describing the content of a presentation.
s:abstract. A summary of the presentation. This element is somewhat special, as it is something between metadata and displayed text. Take the example of an OSCOM page with all presentations abstracts. You probably want to display the title, subtitle, the author/s and the abstract. In such a setting the abstract has then a value in itself, because some people will only read the abstract.
All children of the element s:abstract are in the XHTML namespace. You find a list with all possible XHTML elements below. Paragraphs will probably be the element you will need most.
NEW in 1.0: s:begin. s:begin of the slideset is normally zero. This element makes especially sense, if you have an additional audio or video file and you want to time your slides according to this file. For possible timeformats, see the MediaClipping Attributes of the SMIL 2.0 specification. Mostly you want to use either smpte=HH:MM:SS:FF or HH:MM:SS.FF otherwise said Hours:Minutes:Seconds:Frames.
NEW in 1.0: s:end. s:end gives the endtime of a presentation. As with s:begin this makes especially sense, if you have an additional audio or video file and you want to time your slides according to this file. For possible timeformats, see the MediaClipping Attributes of the SMIL 2.0 specification. Mostly you want to use either smpte=HH:MM:SS:FF or HH:MM:SS.FF otherwise said Hours:Minutes:Seconds:Frames.
NEW in 1.0: s:alternativemedia.
-
s:video element, the s:href attribute points to the URI of the video-file
-
s:audio element, the s:href attribute points to the URI of the audio-file
-
s:transcript element, the s:href attribute points to the URI of a text transcript of the presentation. This transcript could also be in another language than the presentation itself.
Slides = s:slide
The element s:slide (a single slide in a presentation) has an s:id attribute (optional), one obligatory child element s:title (mandatory) and four optional child elements:
-
s:content (optional)
-
s:notes (optional)
-
s:begin (optional)
-
s:end (optional)
All children elements of s:content and s:notes are in the XHTML namespace which you don't have to declare. You find a list with all XHTML elements below.
NEW in 1.0: s:begin. Begin of the slide according to the timeline of a video or audio file. For possible timeformats, see the MediaClipping Attributes of the SMIL 2.0 specification. Mostly you want to use either smpte=HH:MM:SS:FF or HH:MM:SS.FF otherwise said Hours:Minutes:Seconds:Frames.
NEW in 1.0: s:end. End of the slide according to the timeline of a video or audio file. For possible timeformats, see the MediaClipping Attributes of the SMIL 2.0 specification. Mostly you want to use either smpte=HH:MM:SS:FF or HH:MM:SS.FF otherwise said Hours:Minutes:Seconds:Frames.
XHTML ElementsXHTML is the default namespace of SlideML. XHTML resp. HTML was chosen because it is probably the best know Markup Language in the world.
Please note that we use XHTML like XML and not like HTML. The difference between the two is simple, where HTML mixes content and presentation, we only want to structure content. The presentation is done only in a second step via CSS or XSLT.
All XHTML rules like wellformedness, use of small letters, attribute values with quotation marks, etc. apply in SlideML as well.
A full list of all accepted XHTML elements in SlideML. See XHTML 1.0 and HTML 4.01 for reference.
-
From the Textmodule
-
code, the code element contains a fragment of computer code. Use CDATA around the code. Example: <![CDATA[...some code ere... ] ]>
-
blockquote, the blockquote element is used for long quotations.
-
pre, the pre element tells visual user agents that the enclosed text is "preformatted".
-
em, the em element indicates emphasis for its contents.
-
p, the p element represents a paragraph.
-
strong, the strong element indicates strong emphasis for its contents.
-
br, The br element forcibly breaks (ends) the current line of text. The br element is depreceated.
-
NEW in 1.0: sub, the sub element stands for subscript.
-
NEW in 1.0: sup, the sup element stands for superscript.
-
From the Hypertext Module
-
a. Each a element defines an anchor.
1. The a element's content defines the position of the anchor.
2. The href attribute makes this anchor the source anchor of exactly one link.
-
From the List Module
-
ul, an unordered list element.
-
ol, an ordered list element.
-
li, ul and ol both use li. The li element represents a list element.
-
NEW (2002-09-07): From the Object module
The Object Module provides elements for general-purpose object inclusion; this includes any media other than image (where we use img for the time being), as well as executable content.
-
object. Use the object element for elements any media other than image.
An example:
<object data="TheEarth.swf" type="application/x-shockwave-flash">
-
From the Image module
-
img. The IMG element embeds an image in the current document at the location of the element's definition. The IMG element has no content; it is usually replaced inline by the image designated by the src attribute, the exception being for left or right-aligned images that are "floated" out of line.
An example: <img src="/images/TheEarth.gif" alt="The Earth">
-
From the Table module
-
table . The table element contains all other elements that specify caption, rows, content, and formatting for a table.
-
tr . The tr elements acts as a container for a row of table cells. The end tag may be omitted.
-
td . The td element defines a cell that contains data.
Dublin CoreSlideML uses the following metadata elements from Dublin Core:
-
dc:date for the creation date of a presentation
-
dc:rights for copyright information about a presentation.
-
dc:subject for related keywords.
Furthermore we use the dcterm URI. You find all dcterms defined at http://purl.org/dc/terms/. URI is defined as a Uniform Resource Identifier at
http://purl.org/dc/terms/URI.
See the Dublin Core Site and DC Current Schemes.
XInclude and XPointerIt is not necessary to use XInclude in SlideML, but the moment you see the benefit of XInclude, you probably don't wanna miss it;)
With XInclude you can include content from other XML Documents. This can be very cool, if you want to reuse some of your own slides for some older presentation. Another use case: You want to make a list of all OSCOM speakers presentations (titles and abstracts). So you just create a new document and you xinclude what you need from the other presentations.
You can either include a full document or only parts of it. In the second case you will also need xpointer to point to the part you want to include.
|