- From: james anderson <james.anderson@setf.de>
- Date: Thu, 23 Oct 2003 18:31:33 +0200
- To: www-ql@w3.org
On Thursday, Oct 23, 2003, at 15:23 Europe/Berlin, Kay, Michael wrote: > > if saxon is using the name representation described in the earlier > > message, the apparent namespaces at the time when the parent > > was parsed > > cannot affect the correctness of the model produced by this > > operation. > > neither the bindings apparent when the expressions were parsed nor > > those when the expressions were compiled. > > I'm sorry, I simply do not understand this sentence (or one-and-a-half > sentences). ok. i'll try again. > > Firstly, I don't see why the way I represent names internally should > prevent me from producing the correct output. i have not suggested that any given name representation would preclude correct output. i have observed that particular models for names require auxiliary data structures in order to produce correct output in the presence of certain modeling operations, because care must be taken to ensure that the operations not only produce the "intended" result, but also to ensure that they even close over the model. whereby it is not intuitively obvious what those auxiliary data structures are and how they are to be used. i have suggested that alternative models for names render the auxiliary data structures superfluous. it was noted, that saxon represents names with a tuple which comprises a prefix, a local part string, and a uri (string). this is sufficient to implement operations which produce correct results without auxiliary data structures to represent in-scope namespaces. further more it does not matter whether the name is resolved from a qualified name to a (prefix x localpart x uri) tuple when the expression was parsed to produce an abstract syntax, or when the abstract syntax was compiled into a sequence of operations. if the names are interned when the expression was parsed, they use the prefix-namespace bindings which appeared in the document at a particular position in the text. these are the "lexically apparent bindings".[0] if the names are interned by the compiler, they use a description of what xml literature calls the "in-scope namespaces." because there is necessarily correspondence between the values which these sets take on i an xslt/xquery compiler's dynamic contexts and the bindings which appeared in the text, they can also be called the "lexically apparent bindings". in any case, onec the names are interned, those bindings are no longer pertinent, so my question was why they matter to saxon's implementation. (that is, exclusive of deprecated name operations) > > Secondly, I don't understand the distinction you are making between > "when the expressions were parsed" and "when the expressions were > compiled". > > And I'm not sure I understand what you mean by "apparent namespaces". > the rest was clear? > > > > > Right, and that's the problem I'm concerned about (assuming we're > > > talking about the same thing). Given: > > > > > > let $a := <a xmlns:ns1="NS1"><b ns1:x="X"/></a> > > > let $c := <c xmlsns:ns2="NS2">{$a/b}</c> > > > > > > what is the result of get-in-scope-namespaces($c/b)? It could be: > > > > it does not matter what get-in-scope-naemspaces returns. > > > > ? (defparameter $a (root (parse-document "<a xmlns:ns1='NS1'><b > > ns1:x='X'/></a>"))) > > $A > > ? (defParameter $c (root (parse-document "<c > > xmlns:ns2='NS2'></c>"))) $C ? (setf (children $c) (children > > $a)) (#<ELEM-NODE ||::\b 2 #x1693E16>) ? (write-node $c > > *trace-output*) <c xmlns:ns2='NS2'><b ns1:x='X' > > xmlns:ns1='NS1' /></c> #<ELEM-NODE ||::\c 1 #x169979E> ? > > > > with the appropriate model for names, it is possible to produce a > > correct result document without any "in-scope namespaces." > > [0] http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-10.html#%25_idx_620 http://www.ida.liu.se/imported/cltl/clm/ node43.html#SECTION00700000000000000000 http://lists.w3.org/Archives/Public/www-xml-infoset-comments/ 1999AprJun/0008.html http://www.flownet.com/gat/specials.pdf
Received on Thursday, 23 October 2003 12:33:19 UTC