Subject: RE: [xsl] Content constructors and sequences From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Wed, 9 Jan 2002 14:43:48 -0000 |
> Mike, could you expand on this comment: > If a variable $v references such a node, > then when the node is added to a document, the value of > count($v/ancestor::*) is going to change. > > > .... My worries may be misplaced (the data model suggests > that when a > node is added to a tree, > > ah maybe you already answered my question, but I'd still be interested > to know what adding a node to a tree would mean (is this > perhaps related > to the xquery update question? Yes, it is defined in the data model to work in terms of copying. So conceptually, you create a sequence of child nodes, then you add these nodes to a new parent element or document, which is done by creating copies of the child nodes. So in principle, mutability shouldn't be a problem if you follow this model: any variables are left pointing to the child node as it was before you made the copy, and the value of count($v/ancestor::*) doesn't change. So another way of expressing my worries is, that if you actually have to make a physical copy, and give each node a new identity, then it's going to be horribly expensive. Perhaps there's an implementation solution based on reference counting - you only need to actually copy a node if there are variables that reference it - but I'd like to be convinced. There are other problems with rootless nodes, for example what are the in-scope namespaces for a parentless attribute node? I'm not saying it doesn't work - just that the complexities haven't been fully explored yet. Mike Kay XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Content constructors and , David Carlisle | Thread | Re: [xsl] Content constructors and , Jeni Tennison |
RE: [xsl] xsl architecture issue, Michael Kay | Date | RE: Regular expression functions (W, Michael Kay |
Month |