
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