[Bug 25149] Normative references to unstable documents must be removed before publication

https://www.w3.org/Bugs/Public/show_bug.cgi?id=25149

Michael Kay <mike@saxonica.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mike@saxonica.com

--- Comment #2 from Michael Kay <mike@saxonica.com> ---
I think your rewrite is correct, but can be simplified: the
copy-namespace=nodes template can be written

  <xsl:template name="copy-namespace-nodes">
    <xsl:copy-of select="namespace::*
      [not(. = ('http://www.w3.org/1999/xhtml',
                'http://www.w3.org/2000/svg', 
                'http://www.w3.org/1998/Math/MathML'))]"/>
  </xsl:template>

My only other reservation is whether the existing code is precisely equivalent
to the prose. The prose says:

Any namespace node for any of those three namespaces that was previously
present on any element node in the instance of the data model is also removed,
unless the prefix that that namespace node declared is used as the prefix on
the name of an attribute on that element or an ancestor of that element.

Firstly, the prose is ambiguous: does the last phrase mean "the name of an
ancestor of that element" or "the name of an attribute on an ancestor of that
element". I think it must be the latter.

Secondly, there seems to be no code to implement this final provision. Given

<a svg:x="1" xmlns:svg="http://www.w3....">
  <b>
</a>

the prose says that <b> will have a namespace node for the svg namespace, but
the code says that it will not. This only makes a difference, of course, if the
resulting tree is serialized with xml-version="1.1", where if we believe the
code, there will be a namespace undeclaration on <b>, but if we believe the
prose, there will not.

So I'm sympathetic to the idea of making the code non-normative, especially if
the above-mentioned ambiguity in the prose is corrected.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Wednesday, 26 March 2014 22:24:06 UTC