[Bug 29933] New: [XSLT30] Discrepancy between serialization spec and XSLT spec on undeclare-prefixes

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

            Bug ID: 29933
           Summary: [XSLT30] Discrepancy between serialization spec and
                    XSLT spec on undeclare-prefixes
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 3.0
          Assignee: mike@saxonica.com
          Reporter: abel.braaksma@xs4all.nl
        QA Contact: public-qt-comments@w3.org
  Target Milestone: ---

(probably only editorial, not sure)

About undeclare-prefixes we say:

<quote>
The undeclare-prefixes attribute is relevant only when producing output with
method="xml" and version="1.1" (or later). It defines whether namespace
undeclarations (of the form xmlns:foo="") SHOULD be output when a child element
has no namespace node with the same name (that is, namespace prefix) as a
namespace node of its parent element. The default value is no: this means that
namespace undeclarations are not output, which has the effect that when the
resulting XML is reparsed, the new tree may contain namespace nodes on the
child element that were not there in the original tree before serialization.
</quote>

In Serialization 3.1 we say:

<quote>
...if the undeclare-prefixes parameter has the value yes, the output method is
XML or XHTML, and the version parameter value is greater than 1.0, the
serializer MUST undeclare its namespace. If the undeclare-prefixes parameter
has the value no and the output method is XML or XHTML, then the undeclaration
of prefixes MUST NOT occur.
</quote>

In other words, we write SHOULD were Ser 3.1 writes MUST and MUST NOT.

Also, we say "is relevant only", where the Ser 3.1 writes that it MUST signal
an error SEPM0010 if this attribute is used with version="1.0" (and *if* method
is XML or XHTML).

And we say it applies to "XML", where it also applies to "XHTML".

I propose therefore a slightly different wording, something along those lines:

<proposal>
The undeclare-prefixes attribute is relevant only when producing output with
method="xml" or method="xhtml" and version="1.1" (or later), it raises an error
(err:SEPM0010) when used with the value "yes" with these methods and
version="1.0". It defines whether namespace undeclarations (of the form
xmlns:foo="") MUST or MUST NOT be output when a child element has no namespace
node with the same name (that is, namespace prefix) as a namespace node of its
parent element. The default value is no: this means that namespace
undeclarations are not output, which has the effect that when the resulting XML
is reparsed, the new tree may contain namespace nodes on the child element that
were not there in the original tree before serialization.
</proposal>

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

Received on Tuesday, 11 October 2016 19:18:23 UTC