OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: Do we need link-catalogs for schemas?

[ Lists Home | Date Index | Thread Index ]
  • From: "Bill la Forge" <b.laforge@jxml.com>
  • To: "Peter Murray-Rust" <peter@ursus.demon.co.uk>, <xml-dev@ic.ac.uk>
  • Date: Sun, 11 Oct 1998 18:14:56 -0400

From: Peter Murray-Rust <peter@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.


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


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS