Bjoern Hoehrmann wrote:
* Anne van Kesteren wrote:
The latest version of the draft (1.14) assumes (in an example) that you take prefixes from left to right and requires (in prose) that you reuse the result for each unique (after lowercasing) prefix.

I think the draft should only define that implementations must not call
the resolver more than once for any prefix; whether the implementation
looks up a specific prefix at all or in which order it does so should be
up to the implementation. As an example,

  x|y:empty > a|b

would match no elements, the implementation might notice that before it
cares about the prefixes, and if it does not, it could reasonably start
evaluating the selector from either side. In short, defining this would
expose implementations details for no good reason.

I would say that the same holds true for "must not call the resolver more than once" though. Since the proposed solution doesn't give deterministic behavior for any given NSResolver anyway, why not simply say that behavior in this case too is undefined.

I.e. the behavior of the following NSResolver

var N = 0;
function resolver(prefix) {
  return ['http://myns1.org', 'http://myns2.org][N++];
}

is undefined for "x|y:empty > a|b", so why couldn't it be for
"x|y:empty > x|b".

I think we should say that the resolver should return the same value for a given prefix, and that it is not defined how many times or in which order the UA calls lookupNamespaceURI.

/ Jonas


Reply via email to