Paul Hammant wrote:

>> [...]  The API is not defined by the DTD.  Please - let's focus on 
>> one layer at a time and keep the discussion cleanly focussed on the 
>> issues at hand.
>>
>> The objective  is one DTD that address all of the requirements - not 
>> just yours.
>
>
> With respect, if the DTD allows elements and attributes that Phoenix 
> cannot use, then there is a possibility that the block developer might 
> avail of those features and thus, yes it is part of the API. 
> - Paul 


Correction.

If you go back over the Phoenix sources (CVS history) - you will find 
examples of code that enables the creation of a BlockInfo class for 
multiple DTD. The same thing exists inside Merlin - Merlin can read in a 
blockinfo, containerkit or type DTD and generate its own internal Type 
meta-info instance.  The DTD is simply an external form - it does not 
define the API - it defines data elements.

Consider the following three DTDs:


                            type       blockinfo     containerkit

  name                      yes        yes           yes
  version                   yes        yes           yes
  component attributes      yes        no            yes
  services                  yes        yes           yes
  service attributes        yes        no            yes
  depedencies               yes        yes           yes
  dependecy attributes      yes        no            yes
  context criteria          yes        no            yes
  context attributes        yes        no            yes
  stage depedenciers        yes        no            no
  stage attributes          yes        no            no
  extension declarations    yes        no            no
  extension attributes      yes        no            no


Using the Type DTD you can define a component what can be validated by 
any container.  You can deploy that component in any container in the 
knowlege that you will get a validation failure if you try to load 
something that a container does not support.  Support is a container 
issue - interoperability is a subject of the DTD.  The DTD is not bound 
to the API.

Merlin and Fortress componets use extensions. These extensions need to 
be declare either programatically or through a .xinfo descriptor.  

   * should a componet be defined relative to a specific container ?

     - NO

   * should a component be defined relative to a common componet defintion

     - YES

   * should that defintion support required versus optional elements

     - YES

   * should a container be aware of and deal with optional elements

     - YES

   * should the development of service and compoent management be 
restricted to
     a single container model such as Merlin

     - NO

   * should the development of service and compoent management be 
restricted to
     a single container model such as Phoenix

     - NO

   * should the development of service and compoent management be 
restricted to
     a single container model such as Fortress

     - NO

   * should the development of service and compoent management attempt 
to aggregate
     established and vaidated features across the set of Avalon containers

     - YES





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

Reply via email to