TWO Change proposals for ISSUE-41 : Distributed Extensibility

As promised, I have created a change proposal for ISSUE-41, Distributed Extensibility.

In fact, I've created two. One proposal is basically my original proposal that I promised to write up as a proposal. This is designed with the aim of preserving compatibility with XML namespaces while taming their worst effects. The other proposal is one I now think I prefer, and is designed with the aim of minimizing the possible risks from extensions to HTML, and making things as simple as possible to users, at the cost of making it more awkward to use existing XML specifications in HTML documents.

They are here:

Proposal X: compatible with XML namespaces:
http://www.w3.org/html/wg/wiki/ChangeProposals/fixedprefixlikexml

Proposal Y: tries to give a better fallback and backwards-compat story:
http://www.w3.org/html/wg/wiki/ChangeProposals/fixedprefixsimple


The main differences between the two are:

*         X uses ":" as the prefix separator, while Y uses "-"

*         X puts a prefixed node into the namespace defined by XMLNS, or null if there is no XMLNS, while Y has no namespace. X's behavior is incompatible with current HTML5 behavior, but compatible with XMLs. The alternative is to follow current HTML5 behavior, but that means that XML and HTML parses of the same document have different DOM trees, which is arguably even worse.

*         X allows an HTML document to mix in existing XML specs. Y requires existing XML specs to be reformulated as an attribute-based "-" prefixed extension in order to be mixed into HTML documents - but the resulting document has a better fall-back story.

*         X allows an extension spec to define new element types while Y doesn't (authors should write <tag prefix-foo> instead, where "tag" is whatever tag is most appropriate in the current version of HTML)

The ideas in common are:

*         A prefix has a fixed meaning.

*         A prefix should be registered in a wiki (or something else similar) to avoid clashes.

*         An experimental prefix starting with "x-" can be used without registering.

*         A document will parse the same in XML and HTML.

*         A document that uses extensions is not valid HTML, but is valid "extended HTML".

I initially liked X, but after thinking about it for a while, decided that the compatibility issues with ":" and the potential fallback problems from extensions defining their own element types outweighed the advantage of being able to mix in existing XML specs unmodified - resulting in Y.


Thoughts?

-Rob

Received on Tuesday, 16 March 2010 03:29:49 UTC