[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