[Dev] Parcel namespaces and the schema API

Phillip J. Eby pje at telecommunity.com
Wed May 11 11:13:17 PDT 2005


At 10:11 AM 5/11/2005 -0700, Katie Capps Parlante wrote:
>Phillip J. Eby wrote:
>>At 08:37 AM 5/11/2005 -0700, Lisa Dusseault wrote:
>>
>>>If the namespace doesn't matter -- and I tend to agree -- then why not 
>>>make the namespace we define our elements in be simply 
>>>"http://osafoundation.org/namespace" and let 3rd parties use their own 
>>>namespace?
>>
>>1. I'm not proposing changing the existing OSAF namespaces for anything 
>>but Zaobao; why needlessly churn the existing parcel.xml files?  So, 
>>'/parcels' should remain our root namespace.
>
>Perhaps "thirdparty" is not the right way to describe Zaobao. It is not a 
>core parcel but it was created and will continue to be maintained by OSAF, 
>as an example, at least for 0.6. (Of course we still need to address the 
>issue for 3rd party parcels).

Let me clarify: Zaobao was and is using an osafoundation.org namespace.  I 
only changed it so that it follows the '/parcels' convention rather than 
its idiosyncratic use of '/examples'.  So, the old Zaobao namespace root was:

     http://osafoundation.org/examples/zaobao

And I have changed this in CVS to:

     http://osafoundation.org/parcels/osaf/examples/zaobao

So that the portion following '/parcels' translates directly to 
'osaf.examples.zaobao', which is its Python package name.  This means that 
when the Schema API is integrated with the parcel loader, any 
Python-defined schema for Zaobao will be automatically loaded *before* a 
parcel.xml file attempts to create instances.  (All of the other parcels 
were already using this naming convention, but some parcels lacked an 
__init__.py to make them an importable package.)

This is why the issue is important; in order to integrate the schema API 
with the parcel loader, there needs to be a common -- or at least mutually 
translatable -- addressing mechanism.  With the Zaobao namespace change, 
and the checkin of empty '__init__.py' files for various parcels, the 
current CVS version of Chandler has a consistent 1:1 mapping between parcel 
namespaces and Python package names, so I can implement the schema 
API/parcel manager integration.  The integration will assume that all 
parcels with non-standard namespaces (i.e., those not beginning with
'osafoundation.org/parcels') do not contain any Python schema and will 
therefore not attempt to import the corresponding package.



More information about the Dev mailing list