- From: Howard Katz <howardk@fatdog.com>
- Date: Fri, 12 Mar 2004 14:18:43 -0800
- To: "Michael Kay" <mhk@mhk.me.uk>, <public-qt-comments@w3.org>
> -----Original Message----- > From: Michael Kay [mailto:mhk@mhk.me.uk] > Sent: Friday, March 12, 2004 11:53 AM > To: 'Howard Katz'; public-qt-comments@w3.org > Subject: RE: substring: explanation of negative or zero $startingLoc > behaviour > > > The definition in terms of fn:round($startingLoc) <= $p < > fn:round($startingLoc) + fn:round($length) doesn't require a concept of > negative positions. All characters have positive positions; the > character is > included in the result if the position is greater than a number X, where X > may be negative. That makes it clearer to me. You're saying that a character in position $p satisfies the above relationship, given the additional constraint that $p be both non-negative and less than or equal to the length of the string. > As background, this definition is an example of the XPath 1.0 > philosophy of > avoiding run-time errors. This design principle was adopted, I think, > because XSLT was seen by many people at the time as something > that would run > in the browser, where run-time errors are really bad news. XPath > 2.0 is less > consistent in this regard: we have some things which return a > default value > rather than failing (such as effective Boolean value), and other things > which prefer to fail (such as getting the typed value of a complex-content > element). > > Michael Kay > > # -----Original Message----- > # From: Howard Katz [mailto:howardk@fatdog.com] > # Sent: 12 March 2004 18:40 > # To: Michael Kay; public-qt-comments@w3.org > # Subject: RE: substring: explanation of negative or zero $startingLoc > # behaviour > # > # What would help me I think is an explanation of what a negative position > # means. > # Howard > # > # > -----Original Message----- > # > From: Michael Kay [mailto:mhk@mhk.me.uk] > # > Sent: Friday, March 12, 2004 10:27 AM > # > To: 'Howard Katz'; public-qt-comments@w3.org > # > Subject: RE: substring: explanation of negative or zero $startingLoc > # > behaviour > # > > # > > # > The definitive statement in the spec is: > # > > # > More specifically, returns the characters in $sourceString whose > # > position $p > # > obeys: > # > > # > fn:round($startingLoc) <= $p < fn:round($startingLoc) + > # fn:round($length) > # > > # > The subsequent paragraphs are just trying to be helpful, and > # > apparently not > # > succeeding. > # > > # > Michael Kay > # > > # > # -----Original Message----- > # > # From: public-qt-comments-request@w3.org [mailto:public-qt-comments- > # > # request@w3.org] On Behalf Of Howard Katz > # > # Sent: 12 March 2004 18:08 > # > # To: public-qt-comments@w3.org > # > # Subject: fn:substring: explanation of negative or zero $startingLoc > # > # behaviour > # > # > # > # > # > # F and O: 7.4.3 fn:substring() > # > # > # > # The explanation of $startingLoc in 7.4.3 reads, "If $startingLoc is > # zero > # > # or > # > # negative, the substring includes characters from the > beginning of the > # > # $sourceString." I find the meaning of the phrase "from the beginning > # of > # > # the > # > # $sourceString" to be unclear and can't find any other > reference to the > # > # concept of negative character positions within a string. > # > # > # > # Out-of-band communication on the www-ql list seems to indicate that > # the > # > # concept of "imaginary character positions" preceding the > # > physical start of > # > # the string might be a useful way of explaining zero or negative > # > # $startingLoc > # > # behaviour. I'd suggest the addition of this or a similar explanation > # to > # > # 7.4.3. > # > # > # > # Howard > # > > # > > >
Received on Friday, 12 March 2004 17:18:20 UTC