- From: Ashok Malhotra <ashokma@microsoft.com>
- Date: Thu, 9 Oct 2003 09:26:35 -0700
- To: <public-qt-comments@w3.org>, <noe_michejda@7thportal.pl>
- Message-ID: <EDB607C8AC991F40BE646533A1A673E84DE5FD@RED-MSG-42.redmond.corp.microsoft.com>
Noe: Thank you for your comment: http://lists.w3.org/Archives/Public/public-qt-comments/2003Jun/0217.html I'm sorry it has taken so long to respond to you but we have been working on the issues you raised and I believe you will be happy with the outcome. Comments inline. ===================== Original Message ================================ Most functions takes their first ('main') argument as 'zero-or-one' and returning empty sequence, when argument is empty. This is very useful when working with path and optional elements/attributes. But there are few functions which uses 'exactly one' indicator with no clear reason for me: fn:collection( $srcval as xs:string) as node* (I think it should be xs:string* as in very similar fn:doc) fn:escape-uri( $uri-part as string, $escape-reserved as xs:boolean) as xs:string fn:resolve-uri( $relative as xs:string, $base as anyURI) as xs:string fn:resolve-QName( $qname as xs:string, $element as element) as xs:QName fn:root($srcval as node) as node fn:string-to-codepoints($srcval as xs:string) as xs:integer* (escape-uri and resolve-uri has typo: missing 'xs' prefix (should be xs:string, xs:anyURI) ) [AM] All these functions now take xs:string? Also accesors uses 'exacly one', but maybe it is intended: fn:node-kind($srcval as node) as xs:string [AM} This function has been removed fn:node-name($srcval as node) as xs:QName? (vs fn:local-name($s as node?), fn:name($s as node?), fn:namespace-uri($s as node?) ) fn:base-uri($srcval as node) as xs:string? fn:document-uri($srcval as node) as xs:string? [AM] These still take node() and not node()?. But you do not feel very strongly about this. fn:lang($testlang as xs:string) as xs:boolean spec states: "The relevant xml:lang attribute is determined by the value of the XPath expression: (ancestor-or-self::*/@xml:lang)[last()] If this expression returns an empty sequence, the function returns false." I think it would be useful to allow 'xs:string?': for empty argument it will return true when above expression returns () (i.e. when there is no language specified) [AM] This is an interesting suggestion. We can consider it but fn:lang() is an XPath 1.0 function and there is reluctance to change it significantly. There is, however, some ongoing discussion on fn:lang() and we can factor in your request. Best regards All the best, Ashok
Received on Thursday, 9 October 2003 12:26:20 UTC