[Bug 10692] Fix coercion to Infoset for HTML5 to correctly preserve xmlns attributes

http://www.w3.org/Bugs/Public/show_bug.cgi?id=10692

Manu Sporny <msporny@digitalbazaar.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|WONTFIX                     |

--- Comment #8 from Manu Sporny <msporny@digitalbazaar.com> 2010-10-04 02:19:47 UTC ---
(In reply to comment #4)
> EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are
> satisfied with this response, please change the state of this bug to CLOSED. If
> you have additional information and would like the editor to reconsider, please
> reopen this bug.

Re-opening the bug as I'd like the editor to reconsider based on the response
to his comments, as well as those sent to others in this bug thread.

> Rationale: The infoset mapping is intended to be the minimum required to make
> the output of the HTML parser usable in an XML pipeline. The HTML parser
> doesn't support "xmlns", and therefore it would be inappropriate to have the
> infoset map "xmlns" attributes to something namespace-related in this way.

While the HTML parser does not support XML namespaces, the intent of the
Infoset mapping is to perform a reasonable translation of an HTML5 DOM into an
Infoset so that it may be used in an XML pipeline. The preservation of the
semantic meaning of the xmlns attributes should be considered when performing
this translation.

It is true that it would be wrong to assert that the duty of translation to an
Infoset is the responsibility of the HTML parser layer of the Web stack.
However, I don't know where the HTML5 parser stops and the XML API begins in
the Web stack envisioned by HTML5. I'm mostly concerned with how a Javascript
application would access the attributes declared by the xmlns:xyz mechanism.

My understanding is that you would need two code paths in a Javascript
application to find attributes declared by xmlns: - one to deal with the HTML5 
DOM case and another to deal with the XHTML5 Infoset case. This proposal
attempts to unify the two code paths into one code path by translating the
HTML5 DOM attributes (with no namespace) into an XHTML5 Infoset (with
namespaced attributes).

While you state that it would be "inappropriate to have the infoset map "xmlns"
attributes to something namespace-related", you also state that "if the XML API
doesn't support attributes in no namespace that are named "xmlns", attributes
whose names start with "xmlns:", or attributes in the XMLNS namespace, then the
tool may drop such attributes." - this presumes that the code doing the
translation understands the difference between supporting attributes in no
namespace or attributes in the XMLNS namespace. 

You also state that "The tool may annotate the output with any namespace
declarations required for proper operation." - which seems to indicate that the
tool understands how to map non-namespaced items in the HTML5 DOM to namespaced
items in the Infoset.

I don't necessarily care how this is done as long as the Javascript that is
executed on the document, intended to find "xmlns:*" mappings, doesn't have to
have two code paths depending on if the document is in HTML5-mode or
XHTML5-mode.

> Fundamentally, using "xmlns" and "xmlns:*" attributes in text/html is bogus,
> anyway.

Yes, but people are doing it - even if it is bogus, developers expect the same
code to work between XHTML5 and HTML5.

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Monday, 4 October 2010 02:19:50 UTC