- From: Jonathan Robie <jonathan.robie@datadirect.com>
- Date: Tue, 04 Nov 2003 13:33:11 -0500
- To: "Kay, Michael" <Michael.Kay@softwareag.com>, james anderson <james.anderson@setf.de>, public-qt-comments@w3.org
At 06:55 AM 10/27/2003, Kay, Michael wrote: > > i note that the comments period for this document is long > > over. i note > > also, however, that it has not yet been supplanted. should > > the occasion > > arise to release another version, it would be appropriate for it to > > address the following: > > > > [note please, except for citations, the following discussion uses > > "universal name" to describe data of the type (namespace-uri X > > local-part) and "qualified name" to denote data of the type (prefix X > > local-part). please do try to retain that terminology in your > > replies - > > the term "QName" which appears in the document does little to further > > careful reasoning, as it is meaningless unless qualified.] > >The terminology we are trying to use is "lexical QName" for the (prefix, >local-name) pair, and "expanded QName" for the (uri, local-name) pair. I >agree that we need to be very careful about the distinction and this isn't >always true of the current drafts. The term 'lexical QName' makes sense here, because it means quite literally something which matches the production for a QName: [6] QName ::= (Prefix ':')? LocalPart When we find one of these names in a query, we can expand the name using the URI that is bound to the prefix. The result of this is an 'expanded name'. These terms seem sensible to me. > > 17.14 casting to xs:Qname > > > > what is the use case for casting from a string to a universal name. > >We have decided to remove this functionality, it will disappear in the >next draft. Actually, this is not true. We decided to remove the inverse operation, that casts an arbitrary QName to a string, and I think it likely that we will need to add this functionality back because we need it to define some of our internal operations. Here's a use case for casting to xs:QName. Suppose I write a function that creates an element with a given name: declare function make-empty-element($n as xs:QName) as element() { element { $n } { } } Now I want to be able to call this function. Sensibly, my function requires a QName for the element name, so it can only be called with this type of parameter. Now I want to call this function to create an element named "james". To do this, I need to cast a string to a QName: let $n := xs:QName("james") return make-empty-element( $n ) Hope this helps, Jonathan
Received on Thursday, 6 November 2003 10:47:40 UTC