From: Wolfgang M. <me...@if...> - 2003-05-02 12:14:06
|
Hi, I'm happy to announce that the CVS version does now implement most of the= =20 XUpdate spec. All commands are supported (append, remove, rename, update,= =20 insert-after, insert-before).=20 Indexes are now correctly maintained. A partial document re-index is=20 automatically triggered if required. Basically, there are two different k= inds=20 of re-index runs: 1) update, insert and remove operations trigger a re-index of the current= node=20 and its descendant nodes. 2) furthermore, if a append, update or insert operation changes the overa= ll=20 structure of the document tree (i.e. it changes the order of the tree at = some=20 level), all levels of the document tree located below the level where the= =20 modification occurred have to be reindexed. This sounds complicated, but it seems to work even better than I had expe= cted.=20 In particular, the second type of re-index run should not occur too often= =2E=20 Since many documents tend to have a rather irregular structure, there wil= l=20 usually be some spare identifiers between nodes, which can be used for th= e=20 update. A document re-index is thus not needed. Todo: variables work only if declared at the start of the xupdate doc (I = have=20 no idea why), comments and processing-instructions are not correctly hand= led.=20 I also plan to add a configuration option to insert additional spare ids=20 between nodes when storing the document, thus reducing the frequency of=20 document re-index runs. With the CVS version, you can try xupdate using the client: first, insert= the=20 document samples/xupdate/address.xml into collection /db/test. Then do bin/client.sh -l -c /db/test -X samples/xupdate/xupdate.xml which will apply a number of different modifications to the document. Ple= ase=20 note that the xupdate is applied to the entire collection specified with = -c. Best regards, Wolfgang |