[cddlm] Reference testing

Steve Loughran steve_loughran at hpl.hp.com
Wed Jan 4 10:39:20 CST 2006



I've just checked in

-more valid (non-lazy) reference tests
-new invalid non-lazy reference tests
-the first refroot tests.

These tests are encoding my (mis?)-understanding of the ref and 
especially refroot bits of the spec. Please check and advise me of any 
errors.

The fun ones are refroot related. I believe the following is valid 
(cddlm-cdl-2005-02-0010)

         <cdl:cdl >
           <cdl:configuration xmlns:test1="http://cddlm.org/test1.cdl" >
             <test1:toplevel>
               <test1:value>username</test1:value>
             </test1:toplevel>
           </cdl:configuration>
           <cdl:system xmlns:t1="http://cddlm.org/test1.cdl">
             <app>
               <user cdl:ref="t1:value" cdl:refroot="t1:toplevel"/>
             </app>
           </cdl:system>
         </cdl:cdl>

This uses qnames and resolves against something in cdl:configuration

I also believe the following should resolve (cddlm-cdl-2005-02-0006)

         <cdl:cdl>
           <cdl:system>
             <app>
               <user cdl:ref="." cdl:refroot="toplevel"/>
             </app>
             <toplevel>username</toplevel>
           </cdl:system>
         </cdl:cdl>

Here the refroot is the name of something in the local namespace in the 
system, and we are extracting the "." node from it. This is important: 
it means that you can have as a refroot more property lists than you can 
use cdl:extends= with, as that only let you refer to stuff in 
cdl:configuration.

II believe that duplicate refroots should fail, such as in 
cddlm-cdl-2005-02-invalid-0008

           <cdl:configuration>
             <toplevel>username</toplevel>
           </cdl:configuration>
           <cdl:system>
             <app>
               <user cdl:ref="." cdl:refroot="toplevel"/>
             </app>
             <toplevel>clash</toplevel>
           </cdl:system>
         </cdl:cdl>

All the spec says is that refroot "is the name of a top level property 
list". It does not say that this root must be the name of a unique 
property list.

Finally, is it an error to have cdl:refroot on a node without a cdl:ref 
attribute?


If these and the other new tests fail either we have different 
interpretation of p17-19 of the CDL specification, which needs to be 
resolved now.

-steve





More information about the cddlm-wg mailing list