XML structure



Hi!

Definitely, the XML structure described by Vivien will be the way to go.
Here are my comments:

> * it can be easily extended to non DBMS providers.
> * it can be easily expanded in the future for some other type of
sources (LDAP,...)
Yes! the LDAP server will make use of this for all the commands. The
struct you described will allow us to send complex queries to the LDAP
server in one step.

> * it does not require some changes in the IDL since the query is sent
as an XML string
Maybe just adding a execQuery (or sendQuery) to the GDA_Connection
interface, because I've first thought of creating a new interface
(Query), but this will mean adding lots of ORBit stuff. What do you
think? The first solution implies a new method in each server which will
do the conversion (if needed) from the XML string to SQL or whatever,
and we could have the full-featured Query object (mainly to follow the
object-oriented design of the library) in the XML module.

> * its use is not required and clients can still send SQL (or whatever)
commands
>  directly
Yes, just the "specialized" parts will use this (the XML client module
for retrieving data for the exported objects...). Also, the import part

> * each server need to implement an engine to recognize the XML string,

>  convert the XML string to a tree, and that tree to an SQL query which

>  is quite a lot of work (for all the SQL like servers, the different
>  emplementations can be easily adapted from one SQL server)
We should have all this common code implemented once only, as the
servers contain enough repeated code all over (the ORBit part is always
the same. As soon as we've got the gda-buildserver script, we should
modify all the providers to use this common code generator, but this
needs a deep thought).

Of course, this XML structure has to fit in the XML files generated by
the client lib to be able to save, restore ..., so a <QUERY> (is query
the correct name to use?) tag will be understable by the client lib.
Also, a new GDA_Connection_FEATURE_XML_QUERIES will be added.

Great idea Vivien!





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]