More comments on F&O document

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