[cddlm] CDL q: what does this resolve to (cdl-2005-02-15.xml)
Jun Tatemura
tatemura at sv.nec-labs.com
Mon Jan 30 13:14:47 CST 2006
Hello,
The CDL processor's purpose is to resolve cdl:system, that is, individual
prototypes (templates) does not have to be fully resolved unless it is
required so
to resolve cdl:system. In my implementation, the value reference
resolution happens
on demand. During resolution of cdl:system, node itself does not have to
be resolved.
Of course, if you try to access node direclty,
<cdl:system >
<app>
<user cdl:ref="value" cdl:refroot="node"/>
</app>
</cdl:system>
the resolution will fail.
If you want every prototype (template) resolvable, node should be
<node>
<newvalue/>
<value cdl:ref="newvalue"/>
</node>
If you add @lazy, the reference in cdl:system becomes unresolvable
until deployment (which I guess is different from what you meant).
Thanks,
Jun
Steve Loughran wrote:
>
> This is the test #cdl-2005-02-15, and it is failing on my system
>
> <cdl:cdl >
> <cdl:configuration >
> <node>
> <value cdl:ref="newvalue" />
> </node>
> <toplevel cdl:extends="node">
> <newvalue>newvalue</newvalue>
> </toplevel>
> </cdl:configuration>
> <cdl:system >
> <app>
> <user cdl:ref="value" cdl:refroot="toplevel"/>
> </app>
> </cdl:system>
> </cdl:cdl>
>
>
> The reason it is failing is that the reference under <node> only
> resolves once the thing has been extended; that is,
> cdl:configuration/node is itself unresolvable. , though
> cdl:configuration/toplevel is resolveable.
>
> My implementation tries to resolve everything under cdl:configuration,
> and fails because it is not possible here. It would work, if I marked
> the ref as lazy
>
> <node>
> <value cdl:ref="newvalue" cdl:lazy="true" />
> </node>
>
> because then the deref would not take place.
>
> What do other people's implementations do with this test?
> -steve
More information about the cddlm-wg
mailing list