On Mon, 2019-10-21 at 13:40 +0200, Martin Bjorklund wrote:
> Hi,
> 
> Ladislav Lhotka <lho...@nic.cz> wrote:
> > Hi,
> > 
> > consider the following situation:
> > 
> > module A {
> >   ...
> >   prefix a
> >   identity X;
> >   leaf foo {
> >     type identityref {
> >       base X;
> >     }
> >   }
> > }
> > 
> > module B {
> >   ...
> >   import A {
> >     prefix a;
> >   }
> >   leaf fooref {
> >     type leafref {
> >       path "/a:foo";
> >     }
> >   }
> > }
> > 
> > What is now a correct lexical form of fooref's value? Could it be just
> > 'X', or is the prefix required, i.e. 'a:X'?
> > 
> > This is not very clear from RFC 7950 (sections 9.9.4 and 9.10.3). I am
> > inclined to require the prefix.
> 
> 9.10.3 says:
> 
>    If the prefix is not
>    present, the namespace of the identityref is the default namespace
>    in effect on the element that contains the identityref value.
> 
> 
> so the interpretation of a missing prefix in "fooref" is that the
> identity is defined in module B.
> 
> (a missing prefix in "foo" means that the identity is defined in
> module A)

To be more specific, here is an example instance:

<foo xmlns="...namespace of A...">X</foo>
<fooref xmlns="...namespace of B...">X</fooref>

It can be argued that this is correct because (sec. 9.9.4):

   A leafref value is lexically represented the same way as the leaf it
   references represents its value.

That is, the same lexical representation is assumed, which is exactly what we
have in the example.

It seems that we agree that it is incorrect, but then sec. 9.9.4 should be
clarified.

Lada
 

-- 
Ladislav Lhotka
Head, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67

_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to