RE: substring: explanation of negative or zero $startingLoc behaviour

> -----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