- From: Simon Pieters <zcorpan@hotmail.com>
- Date: Tue, 12 Sep 2006 17:13:47 +0000
- To: public-appformats@w3.org
Hi, I was thinking about namespace prefixes in Selectors in XBL. In XBL namespace prefixes in Selectors are declared with the xmlns:foo="" notation[1]: >In XBL attributes that take selectors, the namespace prefixes that may be >used >are the prefixes that are in scope using the xmlns:* syntax. I feel uncomfortable about this. The XML namespace prefix is just syntactic sugar to bind a namespace name to an element or an attribute. The application might not even know about the prefixes, if it is using another model than the DOM. Also, XML documents might be namespace prefix rewritten, which shouldn't change the semantics of the document. If we instead had the namespace declarations for Selectors in some attribute value or in content, then they would survive namespace prefix rewritings, and apps that don't know about XML prefixes are able to implement XBL. On the other hand, I realize that it might be more convenient for authors to just use the xmlns:* syntax, and perhaps apps already know about prefixes, and namespace rewriting perhaps isn't an issue, but I think this deserves some discussion. Now, if we ignore the above for a bit and look at how it's currently defined, I have a separate question: does the implied "xml" namespace prefix apply to Selectors? As in: <xbl xmlns="http://www.w3.org/ns/xbl"> <binding element="*[xml|base]">... ...or does it have to be declared explicitly? How does *[xmlns|foo] work? (The "xmlns" prefix has a namespace, but it can't be declared explicitly.) Namespace prefixes in Selectors in CSS are case insensitive. All attribute values are case-sensitive in XBL. Perhaps it would be good to add a note in [1] that explains why this is different between CSS and XBL. [1] http://www.w3.org/TR/xbl/#attributes Regards, Simon Pieters
Received on Tuesday, 12 September 2006 17:14:15 UTC