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

Reply via email to