Do we need link-catalogs for schemas?

Bill la Forge b.laforge at jxml.com
Mon Oct 12 00:18:50 BST 1998


From: Peter Murray-Rust <peter at ursus.demon.co.uk>
>It stands for Generic Identifier and for practical purposes is (I think)
>synonymous with Element Type Name in XML, i.e. <FOO> has a GI of "FOO".


That's what I first thought. But then I began to wonder...

>Question in return, what exactly is delegation and can you give an example.
>[It's been mentioned both in the context of Java classes and link-catalogs].


I think it has to do with aggregation. A client of the aggregate requests a
delegate of the aggregate which supports a particular interface. At least, this
is what I've been assuming...

This is the heart of COM and was to be a part of JavaBeans. It is also the
key to advanced Coin applications, as the CoinsDocument class is part of
an aggregate.

It is important in Java, to get arround single-inheritence. I believe the problem
with the JavaSoft aggregation was that the client specified a Class object,
requiring that the tree of classes ('cause you must include interfaces) had
to be searched for each object in the aggregate collection of objects.

Coins uses a filter object to select the appropriate delegate. This means that
(1) you can simply use the instanceof operator in the filter match method instead
of having to do the class tree search and (2) you can select based on any 
criteria, allowing for selection based on role.

(I need to make this package accessable again on the Coins web page. Its freeware.)

Now since there is no standard api (for Java), its kinda hard to give a 
simple example, code wise. But lets say that we have a Juggler with two listener
registration interfaces, one for start and one for stop. If the Juggler were a single class, 
you would simply cast the Juggler object to the appropriate interface. Unfortunately, that 
means that the two interfaces can not have any common methods.

If the registration interfaces for start and stop were seperate objects, but were different
interface types, then you could ask the Juggler aggregate object for, say, an instance of 
the startListenerRegistration object.

If role were supported, then the objects supporting the ActionListenerRegistration
interface could be requested as the "start" object or the "stop" object.

Bill



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