> Graham Fawcett wrote: >> * but the interface is the truer decoupling point, since an >> implementation that cannot be derived from the schema could be >> substituted if necessary (as I suspect in the RDBMS/LDAP case, for >> example). Shalabh Chaturvedi wrote: > > I would say the schema is the truer decoupling point. And a schema that > cannot be built from configuring an existing data provider may need a new > provider implementation. > Hmm.. I read your points again and this time it sounded more like your and my understanding is similar :) Let me say that the interface is indeed the *physical* decoupling point. After all, in code, only the interface can be a decoupling point. All data providers have the same interface - this interface is fixed and does not change with the schema. Well, on second thought, the attribute names would change but not any method names. Depends on what exactly the definition of interface covers. The schema is the structure of data required, so to achieve true decoupling, an application says "I require this standard interface *and* this specific schema". Any provider that provides the schema-specific version of the interface can be connected to the application. Whew! Hopefully code will express this more clearly :) -- Shalabh