- From: Bas de Bakker <bas@x-hive.com>
- Date: Mon, 29 Oct 2001 11:19:41 +0100
- To: <www-xml-query-comments@w3.org>
Dear WG, As a followup to my previous message http://lists.w3.org/Archives/Public/www-xml-query-comments/2001Aug/0030. html here are some more comments on the F&O draft. The use of static type anyURI for collations is inconvenient for users, who have to keep typing constructors. Why not simply allow a string as name for a collation? 3.2 There should be a way to put special characters in string literals, as in XML or C++/Java. 3.5.7 substring() should specify what happens if various arguments are out of range (e.g. $startingLoc larger than length of string). Similarly for sublist() in 11.4.14 3.5.14 I think that the existence of the normalize-unicode function is in conflict with the "Character Model" WD, which requires early NFC normalization. If NFD strings cannot be produced, this function cannot return them. 3.5.15/16 upper-case and lower-case should allow some form of locale argument to allow for locale dependent case mappings. See unicode TR 21 http://www.unicode.org/unicode/reports/tr21/ for details. 5.7.1.4 The return value should have 2 days instead of 3. 5.7.2 A name for this function with "add" in it seems much more intuitive. Similarly with "subtract" for get-start(). 5.7.6.4 uses an incorrect function name. 10.1 I suggest making the rhs of the => operator a nametest instead of a nodetest. $foo=>text() etc. make no sense. 10.2.5 Is the collation also used to compare the names of the elements and attributes or only their values? I suggest the latter as using collations for equality of element names creates all kinds of strange effects. 11.4.2 last() is just count() with a different return type. A function that returns the last item seems much more useful. 11.4.14 Why does sublist take decimal arguments instead of integers? Why does it then use floor(), while casting a decimal to an integer rounds? This is inconsistent. Then sequence-pad-beginning and -end also (quite uselessly) cast the result to an unsignedInt, while this function does not. This is also inconsistent. Similarly for substring() in 3.5.7. 11.5.1, 11.5.2 The sequence-*-equal functions return () for two empty sequences. I think this is absurd. Two empty sequences are equal. 11.4.12.3 1st paragraph says nodes are compared by identity, then 3rd paragraph mentions nodes compared according to string values. (Same in 11.4.13.3) 11.6.3.3 Unless you define comparison on nodes, the text about which specific item is returned is meaningless. Similarly for 11.6.4.3 11.7.3 The filter function is hugely underspecified. The signature mentions a single node. The semantics mention the argument as an "expression", whatever that may be in this context. What is the return sequence? All the copies of the original nodes (the text in 11.7.3.3 suggest this)? Just the roots of the trees that are constructed (use case 1.2.4.1 suggest this)? In what order? The order of the argument sequence? Document order? 12.1.1 When casting a QName to a string, it says "TV is SV". This is impossible. 12.4 Why can a NOTATION not be cast to itself? Regards, Bas de Bakker X-Hive Corporation
Received on Monday, 29 October 2001 05:20:21 UTC