Re: [closed] Re: (still few) troubles with p:namespaces

Norm,

Do you mean the spec at http://www.w3.org/XML/XProc/docs/langspec.html
has changed ?

It is still dated from August 21

Regards,

Mohamed

On Wed, Sep 17, 2008 at 1:15 PM, Norman Walsh <ndw@nwalsh.com> wrote:

> "Innovimax SARL" <innovimax@gmail.com> writes:
>
> > I have still trouble to fully understand the code fragment provided as
> > sample in the spec
> >
> > Especially this one
> >
> > [[
> > <p:pipeline type="ex:delete-in-div"
> >             xmlns:p="http://www.w3.org/ns/xproc"
> >             xmlns:ex="http://example.org/ns/ex"
> >             xmlns:h="http://www.w3.org/1999/xhtml">
> > <p:option name="divchild" required="true"/>
> >
> > <p:delete>
> >   <p:with-option name="match" select="concat('h:div/',$divchild)">
> >     <p:namespaces xmlns:h="http://www.w3.org/1999/xhtml"
> >                   xmlns:html="http://www.w3.org/1999/xhtml"/>
> >   </p:with-option>
> > </p:delete>
> >
> > </p:pipeline>
> > ]]
> >
> > In my understanding, the binding of the prefix "h" has been done on
> > p:pipeline element, so we don't need to recall the binding on
> > p:namespaces element, do we ?
>
> No, I suppose not, since it's already in-scope. But it's not wrong
> to put it there and it does make the intent explicit. Still, it might
> mislead someone into thinking that p:namespaces uses only the *declared*
> namespaces not the in-scope ones, so I'll remove xmlns:h.
>
> > Furthermore again by the same rule ("Otherwise, the in-scope
> > namespaces from the element providing the value are used."), we can
> > completely get rid of p:namespaces in this case
> >
> > <p:delete>
> >   <p:with-option name="match" select="concat('h:div/',$divchild)"
> > xmlns:html="http://www.w3.org/1999/xhtml"/>
> > </p:delete>
> >
> > Am I right ?
>
> Yes, you could do that. This example is really just a setup ("here's
> how you *could* do it") for the next example ("here's how you *should*
> do it").
>
> On further reflection, I'm happy with these examples as they stand.
> However, I'll add a note to point out that it's not strictly
> necessary.
>
> > Hence we got also
> > [[
> > <?xml version='1.0'?>
> > <p:pipeline type="ex:delete-in-div"
> > xmlns:p="http://www.w3.org/ns/xproc"
> > xmlns:ex="http://example.org/ns/ex"
> > xmlns:h="http://www.w3.org/1999/xhtml">
> > <p:option name="divchild" required="true"/>
> >
> > <p:delete>
> >   <p:with-option name="match" select="concat('h:div/',$divchild)">
> >     <p:namespaces binding="divchild"/><!-- this one makes full sense for
> me -->
>
> Here you *do* need the second p:namespaces element with the xmlns:h
> binding.
> Otherwise you won't have one because:
>
>   If a p:variable, p:with-option or p:with-param includes one or more
>   p:namespaces elements, then the union of all the namespaces
>   specified on those elements are used as the bindings for the
>   variable, option or parameter value. In this case, the in-scope
>   namespaces on the p:variable, p:with-option or p:with-param are
>   ignored.
>
> and
>
>   If the binding attribute is specified, it must contain the name of a
>   single in-scope binding. The namespace bindings associated with that
>   binding are used.
>
> Since divchild is specified in a context where xmlns:h isn't bound, it
> wouldn't
> otherwise be bound.
>
> >   </p:with-option>
> > </p:delete>
> >
> > </p:pipeline>
> > ]]
>
> I've made a few editorial corrections, please let us know if you're
> unsatisfied with the result.
>
>                                        Be seeing you,
>                                          norm
>
> --
> Norman Walsh <ndw@nwalsh.com> | The richness of life lies in memories
> http://nwalsh.com/            | we have forgotten.--Cesare Pavese
>



-- 
Innovimax SARL
Consulting, Training & XML Development
9, impasse des Orteaux
75020 Paris
Tel : +33 9 52 475787
Fax : +33 1 4356 1746
http://www.innovimax.fr
RCS Paris 488.018.631
SARL au capital de 10.000 €

Received on Friday, 19 September 2008 07:24:56 UTC