Compound Documents and Web Applications
W3C Workshop
San Jose, CA, 1-2 June 2004
Steve Zilles, Independent Consultant
My Background
- I am a document guy
rather than a Web App guy
- 20 years of working with documents
- Most recently as co-chair for XSL 1.0
- But also worked on HTML and CSS
Facilitating Compound Documents
Means
Facilitating Interacting Applications
- Compounding means having many types
- text, graphics, math, chemical formulae, ...
- Typically no one product supports them all
- Authors need different subsets
- Vendors support yet different subsets
- Implication:
- Find way to support a mix of components
Requirements
for Mixing Components
- Property Propagation
- Event Propagation
- Formatting/LineBreaking Model
- Timing and Animation Propagation
- Spell Check
- Search
- Accessibility
An example: Property Propagation
An interface that, Given a property, provides:
- an API
to ask for the computed value for that property
- an API
to ask whether that property is inherited.
- an API that allows the embedded processor to indicate what properties the embedded processor may be interested in.
A Question:
What/Who is in Charge?
Which "document"?
- SMIL - because of timing considerations
- XHTML - because that is the document
- SVG - because it has more for layout
- XForms - because it has interaction
Which capability provider?
- The Operating System
- The Browser
- A Platform Independent Virtual Machine
What Then Should Happen?
A two pronged approach
- a practical combination
- a practical virtual machine
The Practical Combination
A combination of
XHTML, SVG, SMIL, ...
Reasons
- has immediate utility
- works out
- the problems of interaction for a fixed set of components
- what should be specified; what should not (e.g. Save/Restore)
Should have no assumption that any one component is in charge
Experience here and elsewhere leads to
The Practical Virtual Machine
- Not the answer to all the worlds problems
- But, does allow combination of arbitrary components
- Benefit from the experience of application builders
- Time to abstract from what has been learned
What then should be provided?