Extensible browser and editor - specification
Last update: 2001-01-29
My vision is the following: a multi-everything browser will mainly be an
empty shell able to call the appropriate processors whenever it sees certain
XML namespaces and/or Processing Instructions.
It will enable multi-domain documents.
It will manage drag'n drop and clipboard with an XML data model.
It will include an editor with the same multi-domain capabilities.
Its responsability will of course also be to manage the display space
between processors (tiling, resize, ...).
One important responsability can also be to manage the mapping between
the data XML and the displayed XML (HTML or plain XML with CSS).
Generic display skills are also desirable:
It must leverage on the most important general-purpose standards: XPath
and XSLT, XML Schema, XLink and RDF, XUpdate.
collapsable tree/graph views for the document tree, the inheritance graph,
the ID/IDREF graph
So I expect a general and modular tool for manipulating data, of the
3 main kinds: document-oriented (HTML & word processor), structure-oriented
(database type) and knowledge-oriented (semantic network, RDF, etc)
The next killer-app ...
A role for Mozilla ?
The are many good free software projects, but API's are lacking,
so that we can take the best of each. For data edited and displayed by
the editor, XML and DOM provide the backbone. Indeed any 2 objects can
communicate anything provided they have a function:
w3c.DOM.Document message(w3c.DOM.Document doc);
Plus some functions giving access to the couples Schema+root element
understood by the object:
There are good XML commercial editors, BUT they are not so far ahead of
a combination of free products like XED, XSV, VIM, Amaya and others. Here
I concentrate on features nowhere or rarely available (as far as
I now). It's desirable to mention also more basic features. We could
have a list of keywords (thesaurus) to classify the features, and a matrix
of features versus editors.
What really miss are functionalities like:
selecting, cut-copy-paste, and advance cursor to node lists selected by
edit through an XPath selection: hide all the rest not selected by the
XPath (of course remember those XPath associated to the Schema)
highlight ALL non-valid items (with respect to Schema or DTD) and have
a way to advance the cursor to next non-valid item, with hint and error
instant enforcing (just after typing) of simple type and key constraints,
instead of batch enforcing
round-trip from instance to schema and back; adapt an existing schema to
edit through a XSLT stylesheet: see the transformed document, but modify
the underlying source document (just like an HTML editor does for HTML)
manage XSLT transforms : several transforms, save or copy-paste or reuse
multi-view (MVC design pattern) like Amaya
scriptable by scripts (XML vocabulary for scripting or language of choice:
all GUI menus can be accessible by script, and conversely new GUI menus
can be created by script,
callbacks available for editing events like focus etc,
session saved in language of choice as DOM, XPath, XSLT actions
un-do of all actions
pluggable editor : editor available as a Java Bean with a setDocument()
compose composite documents by droping parts
selects at once the WHOLE element when mousing over beginning of element
multiple source : files, URL, Webdav, RMI, sockets, etc