On 17.Aug.2003 -- 07:00 PM, Stefano Mazzocchi wrote:
>
> Issues that were still unsolved
>
>
>
> 1) block identification
>
> All blocks (behaviors and implementations) are identified by a URI. the
> format of the URI is as follows:
>
> cob:organization/name/x.y(.z)
If we would identify a block by an XML document instead of a URI, we
could list features of a block. Version numbers are a very poor tool
to match requirements and capabilities. Then we could solve
> 2) dependency ranges
>
> When a block implementation depends on another block (either
> implementation or behavior), it should be able to have an 'elastic'
> dependency which doesn't connect it to the versioned identifier, but to
> a range of those versions.
by using another XML document that lists required features. This way
it would be easy to decide if two blocks a compatible.
Those two documents, let's call them requires.xml and provides.xml,
could reside in the meta data subtree of the archive. The requires.xml
would need to declare a URI for every block it depends on which is
used to refer to it.
Example
=======
(This example is probably poor but should still illustrate the idea)
block "really cool skin"
<provides-features>
<feature name="html-skin"/>
<feature name="wml-skin"/>
</provides-features>
<dependencies>
<block name="core" uri="core">
<feature name="html-serializer"/>
</block>
</dependencies>
<map:sitemap>
<!-- ... -->
<map:transform src="cob:core/html-skin"/>
<!-- ... -->
<map:sitemap>
Now, the block manager would select the block with the highest version
number that provides all required features and would map the
"cob:core" prefix to that particular block.
Chris.
--
C h r i s t i a n H a u l
[EMAIL PROTECTED]
fingerprint: 99B0 1D9D 7919 644A 4837 7D73 FEF9 6856 335A 9E08