Re: towards consensus on fixup, part 2

On 9/7/07, Henry S. Thompson <ht@inf.ed.ac.uk> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Alex Milowski writes:
>
> > So what is the advisory going to say:
>
> Something such as "The output of this step may require (one or more
> of) [namespace fixup, xml:base fixup, xml:lang fixup] before
> serialization, see section 2.6."
>
> > That list would have to  include:
> >
> >    p:add-attribute
> >    p:insert
> >    p:replace
> >    p:rename
> >    p:wrap
> >    p:unwrap
> >    p:set-attributes
> >    p:xslt
> >    p:pack
>
>      p:viewport
>
> > which is a third of our required steps.  To me, that's an admission that
> > we have a problem that we don't want to solve.
>
> The fact that we haven't spelled out the fixes in detail is not, in my
> view, a bug.  Rather, it's an acknowledgement that we don't want to
> adjudicate between all the methods that e.g. XSLT1.0 processors and
> XInclude processors have developed for doing fixup.

XInclude doesn't require namespace fixup unless you use the xpointer
scheme (which is effectively dead) or a fragement identifier.  In that case,
it is exactly like p:insert.  p:insert doesn't require any fixup if
you just copy
the in-scope namespaces.

I believe we have several steps line p:insert where we need to specify
what the correct behavior is with regards to in-scope namespaces.

For example, p:insert or p:replace take whole element subtrees
and put the into another document.  If those elements have dependencies
on in-scope namespaces, you'd break the content if the in-scope namespaces
aren't copied.  If you rely upon namespace fixup, you'd only get
namespace declarations for the elements and attributes of that subtree and
not extra ones that exist for the content (as they weren't copied).

So we have two kinds of issues with regards to namespaces:

   * fixup related issues
   * step semantics with regards to in-scope namespaces

p:insert, p:replace have "semantics" issues and the rest all have fixup issues.

You could include p:xinclude as the xpointer/fragement identifier case is
just like p:insert.

In the end, most of our "fixup" rules for our steps are trivial.  For
example, if you
add an attribute, you need to make sure the namespace name for that attribute
has a declaration.  That's trivial as there are plenty of algorithms
for generating
a unique prefix if necessary.  As such, why wouldn't be specify a consistent
behavior?

-- 
--Alex Milowski
"The excellence of grammar as a guide is proportional to the paucity of the
inflexions, i.e. to the degree of analysis effected by the language
considered."

Bertrand Russell in a footnote of Principles of Mathematics

Received on Friday, 7 September 2007 16:00:26 UTC