XML as a programming tool

Peter Murray-Rust peter at ursus.demon.co.uk
Mon Dec 22 15:53:58 GMT 1997

	I found your analysis fascinating - though I didn't understand all of it.
A few points.

At 16:05 22/12/97 +0100, walter.kriha at systor.com wrote:
>I'd like to give some examples for the use of SGML/XML in software
>development (sorry, I never did any
>publishing with SGML/XML and used it for software development only).

Don't apologise. There is nothing to say that XML should only be used for
"documents". My original posting was to suggest that *if* XML were widely
used to support s/w development, then additional tools would start to
become available, to all our benefit.

>Force:  flexible and adaptive software needs meta-information:

Yes. My configuration for JUMBO now consists almost entirely of XML files.
This means that:
	(a) I can use standard XML tools for them
	(b) WF meta-information is trivially easy to insert. So most of the
components of the files have <HELP> or some other documentation, often
written in WF HTML. There can also be RDF and other things (e.g. like

>It takes about 2-3 weeks to integrate e.g. the SP parser/entity manager kit
>into a framework. Most of the work goes into wrapping SP native classes
>from the parser API into apropriate framework classes and interfaces (This
>should get much better with a standard parser API). If you got a generic
>composite object machine built in, just map the parser events into your
>tree classes (nodes) and you have a representation of the configuration
>information in memory.
>The next step is to add some wrappers for convenience, e.g. implementing a
>tiny query interface (findElementByName() etc. and your clients can avoid

My query interface uses XLL TEIpointers, something like:

Node node = tree.TEISearchFirstNode("DESCENDANT(1,MOL)");

Since XLL systems are required to provide TEIaddressing, it's trivial to
use it as a search query as well.


>Force:   Share information without coupling objects tightly.
>Let's say you are doing some workflow. The workflow objects are part of a
>tree (built from SGML/XML information) and child and parent nodes can
>communicate with each other, using some fixed interfaces and some dynamic
>ones(semantic data streams using DOM). But every once in a while some
>information is created in a node that is useful for some other node that is
>NOT directly connected to the first node. How can this node get the
>information without linking both nodes?
>Solution: Turn some information tree into a blackboard.


I suspect that XLL XML-LINK="EXTENDED" can be used here. This can be used
to capture the non-hierarchical relations. How *generic* it can be, is
something which I think we have not resolved.


>For all these uses of SGML/XML basically the same software components were
>used over and over again. And the real hard ones were written by James
>Clark anyway(:-). This is reusable software and has the nice side effect

I agree :-)


>The bad news:
>Past (bad) experience shows that the real problem with using SGML/XML in
>software development is not a technical one. Using SGML/XML makes only
>sense if the everybody is willing to make information and assumptions
>EXPLICIT so they can go into DTDs and instances. This seems to be a sore
>point for many programmers that rather see this hidden in code (just look
>at the slow progress of pre/postcondition specification or semantic
>interface definitions). And no, I don't have a solution for this one.

I am optimistic about this, because of the success of XML in other fields.
If people start writing small configurations files in XML to support
"conventional documents", then gradually these will grow into larger scale
resources. (This seems inevitable - people end up writing systems based on
awk, or VB, which started out as 10 lines). Because XML scales well (I take
this on faith :-) it becomes attractive to start building programs round an
XML core. 


>Merry Christmas and a Happy New Year,
>xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
>Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
>To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
>(un)subscribe xml-dev
>To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
>subscribe xml-dev-digest
>List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

More information about the Xml-dev mailing list