- From: Michael Kay <mike@saxonica.com>
- Date: Fri, 15 Mar 2024 17:59:23 +0000
- To: Norm Tovey-Walsh <norm@saxonica.com>
- Cc: Dimitre Novatchev <dnovatchev@gmail.com>, Christian Grün <cg@basex.org>, public-xslt-40@w3.org
> > Doesn’t blindly subtracting the code point for 0x110000 run the risk of producing a non-Unicode character? I think the original code point would have to be in…checks notes…plane 16, so fairly unlikely, but still… > > I think it's producing a binary value rather than a string, so that would be OK. Interestingly in the XSLT compiler for SaxonJS we use a similar technique for sorting stylesheet modules into order of import precedence. If I recall correctly we allocate each import a letter starting with a notional Z (actually the last letter in a very large alphabet) and working downwards, so for the example in §3.11.3 of the spec where • stylesheet module A imports stylesheet modules B and C in that order; • stylesheet module B imports stylesheet module D; • stylesheet module C imports stylesheet module E. The keys we allocate are A = Z B = ZZ C = ZY D = ZZZ E = ZYZ so when you sort these ascending as strings, you get the order of precedence, highest first: A, C, E, B, D. Michael Kay Saxonica
Received on Friday, 15 March 2024 17:59:39 UTC