Hi,

This sounds familiar - was it you or Fede who said we would never need 
Namespace info last time ? ;)

On Fri, 21 Sep 2001 04:00, Berin Loritsch wrote:
> The delimna is that we need to provide a solution that is:
> * Easy to use
> * Provides minimal impact on the current API
> * Satisfies a need
> * Easily extendable

works for me.

> The Configuration object's use can be further helped by the
> following additional information: Namespace and Qualified name.
> The Configuration object specifies the method getLocation().
> It's use is not well documented, so it can be purposed to record
> the namespace. 

*cough* - I use it in a lot of my proggies to specify where an error occured 
as do some of the exception reporting in core Avalon. It allows us to give 
meaningful error messages (ie "Missing attribute foo at myconfig.xml:20").

> The name of the component would be bound to
> the local name in the XML.  The last remaining issue is the
> prefix or qName.  Because the prefix is not as important as
> the local name or the namespace, a new accessor method can be
> provided called "getExtendedName()".  It would work like this:

If we were to go down this path I would possibly prefer something like

getNamespace()
class Namespace
{
  String prefix;
  String uri;
}

> This does not interfere with the current API, and only provides
> one additional method.  What it does allow is the ability to use
> industry standards for configuration (WSDL, WSDD, etc.) and to
> take advantage of dynamic validation of our configuration schemas.
> XML parsers can read the configuration information and validate
> the file based on the various schemas, throwing exceptions when
> the configuration is invalid.

They can still do that at the moment without any support from Configuration 
object. So Schema/DTD is good but doesn't madate changes in Configuration 
object.

The argument goes that all configuration for a single object will always be 
in one namespace. Thus it is up to the container to do validation et al. The 
reason I wanted Namespace recorded in Configuration was when we had 
hierarchial Configurations. ie Component A contains B which contains C. If 
config for A also contains config for B (and then C) then we would namespace 
separation.

However as it stands that was identified as a bad pattern because you could 
never fully validate C (or B) without initializing A. And considering 
initialization of A comes after validation of As configuration we had a 
problem.

So what do you think of that ?

> Each persistence mechanism must follow its own rules.  However, it is
> conceivable to convert your persisted data into XML which is then able
> to be handled in the expected manner.  This reduces the amount of learning
> curve, hides the details of the persistence mechanism, and allows you
> to focus on the task at hand.

Thats what I was planning on doing (when I got around to it). ie DB/LDAP/XML 
to SAX, SAX to Configuration object (and vice versa).

> It also allows for new tools to be developed.  Tools are used to augment
> the development process, the configuration process, or the deployment
> process.  Tools are not used directly in the run-time system--so they
> should not be part of any of our existing projects.

Agreed. As a sidenote has anyone looked at Merlot (opensource XML editor). It 
looked good last time I looked at it however it only allowed structure 
specified through a DTD (not XSchema). I was wondering if there is any 
alternatives out there?

-- 
Cheers,

Pete

--------------------------------------------
 Beer is proof that God loves us and wants 
 us to be happy. -- Benjamin Franklin
--------------------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to