Hi Ingo,

> the problem also exists with DBNode, isn't it?

A DBNode contains a reference to the Data instance, which can be used
to retrieve the id value of a node ( DBNode.id(pre) ).

> My question is, is there a possible solution that allows me to use DOM 
> interface (We need DOM, because we want to use BaseX to replace an old DOM 
> based parser class without reimplementing everything) and updating 
> expressions?

This sounds like an audacious venture, because our DOM wrapper was
never built to be applied as a serious replacement for the internal
node representation… Which is why I would personally avoid pursuing
such an approach. A classical DOM implementation is based on a
main-memory structure without transaction semantics, whereas BaseX
database nodes refer to disk structures, which require an open
database, may be modified by other concurrent processes, etc. However,
I agree that the existing DOM implementation of BaseX may have the
potential to be successfully applied to specific use cases. I just
doubt it can be made water-proof for all kinds of scenarios (which is
the reason why we already thought about completely removing it from
the core package, and instead build new DOM nodes from serialized
BaseX results).

I hope this helps,
Christian



> Best regards,
> Ingo
>
>> Hi Ingo,
>>
>> as you correctly observed, we are using 'pre' values to organize nodes
>> in our database, which will change after updates (see [1] for further
>> details on pre and id values and the id/pre mapping). It is generally
>> possible to use our DOM interface, but I’m inclined to recommend you
>> the database functions db:open-pre() and db:node-pre(). If you perform
>> updates, db:open-id() and db:node-id() and the UPDINDEX option will
>> help you [2]. You could also work with the DBNode instances, which are
>> returned by the query processor, as this will be much faster than
>> using the DOM wrapper, but it may take more time to get acquainted
>> with the internal node interface.
>>
>> Regards,
>> Christian
>>
>> [1] http://docs.basex.org/wiki/Node_Storage#PRE_Value
>> [2] 
>> http://docs.basex.org/wiki/Database_Module#db:open-pre[http://docs.basex.org/wiki/Database_Module#db:open-pre]
> _______________________________________________
> BaseX-Talk mailing list
> [email protected]
> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
_______________________________________________
BaseX-Talk mailing list
[email protected]
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

Reply via email to