XML-Schema Requirements for SMIL

Dear XML Schema folks:

It has recently been brought to my attention that the current draft of
XML-Schemas does not provide a mechanism for incrementally building up an
attribute set on an element, perhaps from several separate modules
containing attributes, and also for adding attributes to elements already
declared.

This is essential for modularizing SMIL with XML Schemas, and is something
that can (and has) already be done with DTD's. Maybe my information is
incorrect, or my understanding is faulty, so I am sending this to make you
aware of our needs, and asking for guidance in applying XML Schemas in this
manner. If my information and understanding are correct, then please
consider this a requirement for the SMIL modules to have associated XML
Schemas. I am under the impression that XHTML has very similar needs, and my
impression is based in part on my exchanges with some of the XHTML folks.

A concrete example will probably make our needs clear. So I'll discuss our
modularization needs in the context of a vastly simplified view of SMIL.

SMIL timing is a set of reusable modules that can be used to incorporate
timing relationships into XML languages. This language could be "SMIL", or
"XHTML", or something else. We provide time containers, which are grouping
elements that contain other elements and provide semantics for the timing
relationships between the grouped elements. We also provide attributes that
are added to elements to allow authors to specify explicit timing
relationships.

For example, SMIL includes the parallel time container, <par>, which allows
for several things to be played at once. To play an audio and video clip and
the same time (assuming that the language, like SMIL 1.0,  includes elements
to express playing each of these):

<par>
<video .../>
<audio .../>
</par>

Note that the elements could be from some other language, such as XHTML.
Here's how two paragraphs of text might be displayed at the same time:
<par>
<p>First Paragraph.</p>
<p>Second Paragraph.</p>
</par>

This becomes much more powerful when the elements that are timed can have
their own timing-specific attributes. For this discussion, we'll only have
two. 'begin' tells when to start displaying something, and 'dur' specifies
the duration, or how long to display it. Building off the XHTML example:
<par>
<p begin="0s" dur="1s">First Paragraph.</p>
<p begin="2s" dur="1s">Second Paragraph.</p>
</par>

This displays the first paragraph immediately for 1 second, then there is
one second where nothing is displayed, and then at time=2s, the second
paragraph is displayed for 1 second.

This admittedly very simple example gets to the root of what we need to be
able to accomplish with XML Schemas. The <p> element is already defined in a
module by XHTML. For a language designer to be able to incorporate or
combine timing with elements already defined, we need to be able to extend
the attribute set of an element defined in a different module. For this
particular example, the language designer needs an XML Schema method of
adding the begin and dur attributes defined in a SMIL XML Schema module to
the <p> element defined in an XHTML Schema module. It is not sufficient to
just be able to declare the members of an attribute set from several places
when the element is initially defined.

The same thing goes for the content model of the elements. It may be
necessary to extend the permissible child element set of a module beyond how
it was initially defined. SMIL Boston is planning on using "levels" of
modules. As the functionality goes up in higher levels, we add some elements
to the set of allowed children. As above, we'll also add new attributes to
existing elements in order to make them more powerful in the higher level
modules.

Furthermore, we will use the above process to define our next version of the
SMIL Language, and also to define a language/profile that combines XHTML and
SMIL timing structure (as well as some other aspects of SMIL), and to define
a baseline "SMIL-Basic". So you can see that the use case that we are asking
for is a key element in SMIL being a successful and reusable technology. The
DTD experts in the group are comfortable that we can produce DTD's that
reflect this structure, and we would also like to have a set XML Schemas
before SMIL becomes a Recommendation. To this end, we need confirmation that
it can be done with XML Schemas, and guidance in how to proceed. I've been
told to expect a note on modularization using XML Schemas. Will our use
cases be covered in that note?

Please feel free to contact me with any questions you may have about
anything that I have said here.

Thank you,
Aaron Cohen, Intel
Chair of the SYMM Working Group

Received on Monday, 3 April 2000 17:06:13 UTC