XML-tools

Peter Murray-Rust (peter@ursus.demon.co.uk)
Thu, 19 Mar 1998 12:03:06


A common question is 'where can I get an XML browser?' - which normally
means 'I have received an XML document composed mainly of human-readable
text. Where can I get something to process it so that I, as a human, can
make sense of it'. The common approach - rightly - is that most cases are
well served by combining:
- an XML parser
- a stylesheet
- appropriate software for processing and rendering XML documents
accompanied by stylesheets (e.g. Jade, XSLJ, etc.)
At present this is not always combined into a monolithic application, but
we can expect many of these in both the commercial and public arenas.

However, XML is also, for many of us, a wonderful opportunity to do
non-textual operations. Many people will want to work closely with the
'raw' XML, mainly - but not always - in tree-structured form. XML can be
used for transporting generic things such as:
- relational tables
- call graphs and semantic networks
- graphics primitives
- declarative programs

I believe there is a role for a set of interoperable tools or APIs to avoid
us all reinventing the wheel. (They might also lead to some de facto
'standards' for some of these.)

>From my experience with JUMBO (essentially a prototype tool for XML
applications) I have felt a need for the following (and implemented many of
them):
- tree display/editing, with/out DTD/schema information
- attribute display/editing, with/out DTD/schema information
- addition of semantics through hyperlinking - e.g to glossaries.
- addition of behaviour through linking to code (e.g. Java classes)
- a generic entity/element/attribute/content navigation system for a document
- a search mechanism based on Xptrs but extended (e.g. case insensitivity,
regexp, FOREIGN methods, etc.)
- sorting, filtering, etc.
- implementation of XLL (yes, it's still in draft but it will fly :-)
- DTD/schema-specific customisation of the environment (e.g. menus)
- addition of interactive objects (e.g. buttons)
- graphical display/editing of hyperlinks

and perhaps more domain-specific:
- an element-based spreadsheet/table
- display/entry widgets for 'data', possibly with validation
- 2D graphics primitives (where is CGM at?)

The great success of SAX suggests that it may possible to approach *some*
of these in modular form - either through APIs or implementation of
components. As I have already stated, I'd be happy to make JUMBO available
for dissection by anyone who shares this sort of vision and I'm not proud -
I'd be delighted if it were essentially built from components created by
others. (That would leave me free to actually build the applications which
is what my real motivation is :-)

P.


Peter Murray-Rust, Director Virtual School of Molecular Sciences, domestic
net connection
VSMS http://www.nottingham.ac.uk/vsms, Virtual Hyperglossary
http://www.venus.co.uk/vhg