- From: L. David Baron <dbaron@dbaron.org>
- Date: Tue, 17 Apr 2007 18:22:26 -0700
- To: public-html@w3.org
- Message-ID: <20070418012226.GA11106@ridley.dbaron.org>
On Tuesday 2007-04-17 20:57 -0400, Murray Maloney wrote:
> Seems to me that a namespace declaration on the root element would do the
> trick.
> That would be in keeping with Web Architecture and available tools.
> Why not a namespace?
To quote from something I wrote last year [6] about importing
vocabularies into new namespaces (whether to use one technology
within another or import elements from a previous version into a new
version):
This creates problems for both authors and implementors when multiple
namespaces import the same vocabulary:
1. When authors or implementors building on W3C technologies want to
search for, select, or match a certain type of element, having that
same element appear in multiple namespaces makes the necessary code
more complicated. For example, use of DOM's
Document::getElementsByTagNameNS [1], CSS element type selectors [2],
or XPath's name test [3] all become more complicated when searching
for the same element name within a set of namespaces, such as
searching for an XForms input element [4] within the XForms an XHTML2
namespaces.
2. Implementors are likely to face the same cost within their
implementations: when they support multiple imports of the same
vocabulary, the question of determining whether an element is a
certain element type in that vocabulary becomes more complex to
write. Furthermore, because it is more complex to write, it will
be done incorrectly more often, leading to bugs that appear only when
the vocabulary is used within some of the namespaces into which it is
imported.
3. Implementations are likely to face extra complexity and users of W3C
technologies are likely to deal with extra confusion because of
ambiguity over what DOM interfaces are implemented by imported
elements. Implementing SMIL Animation elements such that they
implement the SVGElement interface only some of the time can be hard
for implementors; authors likewise might come to expect that SMIL
Animation elements implement SVGElement when this is only true when
those elements are imported into the SVG vocabulary [5]. (This issue
is slightly less general than the others; it only applies when
specialized DOM APIs are involved, and it only applies for importing
of another technology rather than importing as a versioning
mechanism.)
-David
[1] http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-getElBTNNS
[2] http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#type-selectors
[3] http://www.w3.org/TR/1999/REC-xpath-19991116.html#NT-NameTest
[4] http://www.w3.org/TR/2003/REC-xforms-20031014/slice8.html#ui-input
[5] http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#RelationshipToSMILAnimation
http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#InterfaceSVGAnimationElement
[6] http://lists.w3.org/Archives/Member/member-cdf/2006Feb/0009
--
L. David Baron <URL: http://dbaron.org/ >
Technical Lead, Layout & CSS, Mozilla Corporation
Received on Wednesday, 18 April 2007 01:22:38 UTC