On Apr 11, 2007, at 6:04 AM, Sam Ruby wrote:
Anne van Kesteren wrote:
I think I'd rather have something simple such as prefix_name for
extensions made by ECMAScript libraries, etc. (As opposed to an in
scope xmlns:prefix="http://..." with prefix:name extensions which
work differently in XML.) That would also work better for element
extensions. Not any of this should be allowed, but there seems to
be some desire to have an ability to introduce "conforming"
extension elements / attributes which are implemented using a
script library.
This leads into lots of tangents.
1) re: "prefix_name" - how are prefixes registered? Henri is free
to correct me if I am wrong, but I gathered that the requirement
was for a bit of decentralized extensibility, i.e., the notion that
anybody for any reason could defined an extension for holding
private data; and furthermore could do so without undo fear of
collision.
If these are meant for script-private data, I think the same ad-hoc
collision avoidance that works for the script libraries themselves
might work.
2) I assert that the existing DOM standard already defines a
mechanism for decentralized extensibility. Most relevant to the
discussion at hand is the getAttributeNS method. It may not be
defined as clearly as it could be, but there does seem to be some
clues which suggest what the original intent was, and the
beginnings of an agreement that if more browsers were to conform to
that intent, that would be a GOOD THING(TM).
getAttributeNS is definitely not a good choice for HTML, because no
current HTML implementation will recognize namespace declarations in
HTML and allow use of the relevant namespace URI with getAttributeNS.
Passing a QName to getAttribute might be workable but would require a
change to at least some XHTML implementations so that scripts can
work the same in HTML and XHTML. However, this ends up giving
semantic weight to the namespace prefix, not the namespace URI, and
so has no better collision avoidance in practice than an ad-hoc
prefixing mechanism.
I will also add that the details XML namespaces can be quite
difficult to understand, even for experts, so I would be hesitant to
spread their use to HTML.
Regards,
Maciej