[cddlm] XML Namespaces and references.
Steve Loughran
steve_loughran at hpl.hp.com
Tue Jan 31 04:59:34 CST 2006
Jun Tatemura wrote:
> HI
>
> XML namespace is a source of headache, when we need to import a fragment
> of XML from
> a document to document..
> My interpretation is that, when we say @cdl:refroot has a QName value,
> it should be so
> in description time, not in resolution time. That is, the prefix must
> be interpreted where it is
> written.
I agree. I am starting to make an implementation notes doc in the
documents/cdl directory on sourceforge where we can add clarifications.
> An implementation headache is that we must carry over the namespace
> context from the original
> template.
Yes, that is what I do. when I create a reference path to resolve at run
time, I cache the namespace declarations in scope at parse time for
later use during resolution. The XML library I use (Xom) doesnt make
this very public; its an O(depth*namespaces) operation for every node,
so O(depth*namespaces*lazy nodes) for a full system.
>
> <cdl:cdl >
> <cdl:configuration >
> <p1:local xmlns:p1="http://cddlm.org/prefix1">
> <newvalue>prefix1</newvalue>
> </p1:local>
> <p1:local xmlns:p1="http://cddlm.org/prefix2">
> <newvalue>prefix2</newvalue>
> </p1:local>
> <node xmlns:p1="http://cddlm.org/prefix1">
> <value cdl:ref="/newvalue" cdl:refroot="p1:local" />
> </node>
> <toplevel cdl:extends="node"
> xmlns:p1="http://cddlm.org/prefix2">
> </toplevel>
> </cdl:configuration>
> <cdl:system >
> <app>
> <user cdl:ref="value" cdl:refroot="toplevel"/>
> </app>
> </cdl:system>
> </cdl:cdl>
>
> cdl:extends at toplevel should be resolved to something equivalent to:
> <toplevel xmlns:p1="http://cddlm.org/prefix2">
> <value cdl:ref="/newvalue" cdl:refroot="p1:local"
> xmlns:p1="http://cddlm.org/prefix1"/>
> </toplevel>
>
>
OK
More information about the cddlm-wg
mailing list