So it seems that the once added namespace is propagated to other
documents? I believe there must be at least one document with the
mentioned namespace in your database; otherwise I can't explain where
it should come from (afaik, the string "http://www.w3.org/1999/xhtml";
isn't hard-coded anywhere in the project)...

Christian
___________________________________

On Mon, Apr 2, 2012 at 3:40 PM, Mike Hawkes <mikehaw...@me.com> wrote:
> The database contains
>
> <root>
>    <auditlog>
>
> ... elements should end up in here ...
>
>    </auditlog>
> </root>
>
>
> The initial XML file contains the initial nodes with which to populate the 
> XML database (root plus numerous other nodes). The PHP code inserts 
> additional nodes as it runs. For every node I add, I create an audit entry to 
> allow me to determine who and how the database built over time.
>
> initialdb.xml contains, therefore:
> <root>
>    <auditlog/>
> </root>
>
> You're right - ignore 'test'  - I meant WYP in the database - as in
>
> drop database WYP
> create database WYP test/initialdb.xml
>
> Apologies for any confusion caused.
>
> It's really weird - I can't get this to fail consistently - but when it 
> starts inserting the namespace attribute, it then continues to do so.
>
> Cheers
> Mike
>
> On 2 Apr 2012, at 14:30, Christian Grün wrote:
>
>> Sorry, I still got some questions..
>>
>>> drop database test
>>> create database test /initialdb.xml
>>
>> The database you're creating seems to be called "test"; what's 
>> "initialdb.xml"?
>>
>>> 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
>>
>> The log info implies you're having "root" and "auditlog" nodes, and
>> the addressed database is called "WYP", is that right? Could you pass
>> us on the missing snippets?
>>
>> Christian
>>
>>
>>
>>> 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