Thanks for the reply

... it's really weird. If I close the database and shut down the server, then 
restart/reopen, the problem starts. Do the following ...

drop database test
create database test /initialdb.xml

and then run the PHP, it all works as expected. 

Close the database, shut down the server, then run the PHP and BaseX inserts 
the namespace. In both cases BaseX audit log  shows:

14:00:00.710    [127.0.0.1:49788]       QUERY(4)        declare variable $DB 
external; insert node <audit QID='80C18E9A-46DD-4B3E-89E9-967DAFD79A0B' 
UID='i1' guid='0EEDDB47-726E-49F8-B1EF-0F73ED848969' 
sessionID='48090b7f0e3a62a42a0457a3e88301ca' mode='active' 
date='2012-04-02T13:00:00+00:00'/> into doc($DB)/root/auditlog     OK      0.09 
ms
14:00:00.710    [127.0.0.1:49788]       QUERY(4)        OK      0.05 ms
14:00:00.710    [127.0.0.1:49788]       BIND(4) DB      WYP             OK      
0.05 ms
14:00:00.711    [127.0.0.1:49788]       BIND(4) SYSDATA                 OK      
0.04 ms
14:00:00.713    [127.0.0.1:49788]       EXEC(4) OK      1.93 ms
14:00:00.713    [127.0.0.1:49788]       CLOSE(4)        OK      0.03 ms

So it also doesn't show a namespace.

The code is literally as below.

Cheers
Mike


On 2 Apr 2012, at 14:11, Christian Grün wrote:

> Hi Mike,
> 
> thanks for your report. It would be great if you could provide us with
> a small example that allows us to reproduce the issue (an export of
> your original database with the namespace (which is being added to the
> new node) may suffice).
> 
> Best,
> Christian
> ____________________________
> 
> On Mon, Apr 2, 2012 at 2:44 PM, Mike Hawkes <mikehaw...@me.com> wrote:
>> Hi
>> 
>> I have a weird problem ... I'm running a query via the PHP interface and run 
>> the following query:
>> 
>> declare variable $DB external;
>> 
>> insert node
>>    <audit QID='C54B14ED-C748-4DF0-87F2-91F505BE207B'
>>                UID='i1'
>>                guid='CC9D4D2B-B380-494B-B0F6-4D72471557B0'
>>                sessionID='48090b7f0e3a62a42a0457a3e88301ca'
>>                mode='active'
>>                date='2012-04-02T12:21:05+00:00'/>
>> into doc($DB)/root/auditlog
>> 
>> --
>> BaseX log shows that it gets the query as-is.
>> 
>> When I look at the data within the database by running the XQuery
>> 
>> /root/auditlog
>> 
>> I find that BaseX has inserted a namespace attribute as follows:
>> 
>> <audit xmlns="http://www.w3.org/1999/xhtml";
>>    QID="C54B14ED-C748-4DF0-87F2-91F505BE207B"
>>    UID="i1" guid="CC9D4D2B-B380-494B-B0F6-4D72471557B0" 
>> sessionID="48090b7f0e3a62a42a0457a3e88301ca" mode="active" 
>> date="2012-04-02T12:21:05+00:00"/>
>> 
>> How do I stop this occurring? It only does it on the audit components, not 
>> on anything else inserted by the PHP script. So, if I run two insert node 
>> queries, the first will run normally, the audit update causes the xmlns 
>> attribute to appear, effectively putting it in a different namespace to the 
>> other data inserted  by the PHP.
>> 
>> The PHP script is as follows:
>> 
>> $audit = "declare variable \$DB external; " .
>>        "insert node <audit QID='$queryID' UID='$userID' " .
>>        "guid='$guid' sessionID='" . session_id() . "' " .
>>        "mode='active' " .
>>        "date='$dateTime'/> into doc(\$DB)/root/auditlog";
>> 
>> $query = $session->query( $audit );
>> $query->bind( 'DB', $DB);
>> $query->bind( 'SYSDATA', $SYSDATA );
>> $query->execute();
>> $query->close();
>> 
>> 
>> Thanks in advance for any suggestions.
>> 
>> Mike
>> _______________________________________________
>> BaseX-Talk mailing list
>> BaseX-Talk@mailman.uni-konstanz.de
>> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

_______________________________________________
BaseX-Talk mailing list
BaseX-Talk@mailman.uni-konstanz.de
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

Reply via email to