Ok, I see the problem, unfortunately I still can't replicate the
issue with our current repository version. I started with a
document like this:

*<a> <b/> </a>*

and used the following insert statements:

*insert node <c xmlns='newns'/> into /a*

and afterwards ...

*insert node <d/> into /a*
*
*
*
*
Still, there's no namespace linked to <d/>. Can you replicate
the issue with this example or change it in a way that it
replicates it?

Regards,
Lukas




On Mon, Apr 2, 2012 at 5:10 PM, Mike Hawkes <mikehaw...@me.com> wrote:

> Yep - this definitely causes problems. Insert a node that includes a
> namespace and all subsequent nodes end up with a namespace inserted. So ...
> I think this presents a bug:
>
> <root>
>     <nodes without namespace/>
>     <new nodes work well/>
> </root>
>
> vs.
>
> <root>
>     <nodes without namespace/>
>     <node with namespace/>
>     <new nodes automatically get spurious namespace/>
> </root>
>
>
> Hope that helps - not sure how best to fix or work around this at the
> moment though.
>
> Cheers
> Mike
>
> On 2 Apr 2012, at 15:23, Mike Hawkes wrote:
>
> Hi Lukas/Christian
>
> It's the built-in one as far as I'm aware - I haven't done anything
> special to add or remove any parsers. But that's sent me down a path where
> I can get it reliably.
>
> It appears that it's coming from another query that I run to check the
> state of a web-site. As soon as I run the following query, BaseX inserts
> the namespace for every inserted node thereafter:
>
> insert node
>     <webpage url="http://internet.org.uk"; name="primaryDomain">{
>         http:send-request(
>             <http:request
>                 method='get'
>                 status-only='false'/>,
>         "http://internet.org.uk"; )}
>     </webpage>
> into doc($DB)/root/webpages
>
> As soon as I have any node after the above query has run, BaseX inserts
> the namespace. Otherwise it doesn't. If I delete all the nodes within the
> <webpage> tags, things return to normal again.
>
> Is there an easy way to do the above without adding any namesakes (I don't
> actually want to include them from the web query either)? This should solve
> the problem.
>
> Cheers
> Mike
>
> On 2 Apr 2012, at 15:02, Lukas Kircher wrote:
>
> Hi Mike,
>
> Leo just came up with another idea: Which kind of parser are
> you using in BaseX?
>
> If you use the HTML parser for parsing XML, the strange behaviour
> you came across might indeed be expected ... If you're not sure
> which parser you are using, just take a look at our documentation [1].
>
> Regards,
> Lukas
>
> [1] http://docs.basex.org/wiki/Parser#XML_Parsers
>
>
>
> On Mon, Apr 2, 2012 at 3:58 PM, Mike Hawkes <mikehaw...@me.com> wrote:
>
>> It's mad - I don't add a namespace, the source document is a text file
>> without a namespace - and the log shows that I don't add it ... but it
>> appears. No idea why.
>>
>> MIke
>>
>> On 2 Apr 2012, at 14:52, Christian Grün wrote:
>>
>> > 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
>>
>
>
> _______________________________________________
> 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