"Database path [...] yields more than one document" with static file
Monday, 14 May 2018 · 2 messages
AM
Andreas Mixich14 May 2018 21:08 #
Hi,
during development I sometimes use the static file, that contains my database:
declare variable $app:db :=
doc('file:/S:/Users/dev/Eigene%20Projekte/codingcookbook/src/data/dbsample.xml');So far, it went without problems, but today something very strange happened:
[basex:doc] Database path 'file:/S:/Users/dev/Eigene%20Projekte /codingcookbook/src/data/dbsample.xml' yields more than one document.
Now I checked the file in question. It is well formed and has a single document-root.
One thing may be interesting to note: When I imported that file into a BaseX database, a few days ago, it resulted in that document being in the database twice. Once as it was on disk and once it contained only a single comment, that I had in the file after the <?xml ...> prolog. I moved the comment to another place, even removed it, just to make sure, but the error persists, when trying to load the file from disk via
doc()
Error:
Stopped at S:/Users/dev/Eigene
Projekte/xquery-appframework/src/lib/app.xqm, 37/32:
[basex:doc] Database path
'file:/S:/Users/dev/Eigene%20Projekte/codingcookbook/src/data/dbsample.xml' yields more than one document.
Optimized Query: declare variable $app:db as item()* :=
doc("file:/S:/Users/dev/Eigene%20Projekte/codingcookbook/src/data/dbsample.xml");
declare function local:autoComplete($search_489 as xs:string,
$record-name_490 as xs:string, $places_491 as element()*, $title_492,
$categories_493) as element(container)* { for $var_494 in
$app:db/descendant-or-self::node()/node()[({http://www.w3.org/1999/xhtml}name
= $record-name_490)]/$places_491 where $var_494/text()[. contains text {
$search_489 } using fuzzy using stemming using language 'English']
return element Q{dev:intermediatexml:unstable}container { (element
Q{dev:intermediatexml:unstable}item { ($var_494/text()) }, element
Q{dev:intermediatexml:unstable}title {
($var_494/preceding::node()[1]/node()[(name() = $title_492)]/text()) },
element Q{dev:intermediatexml:unstable}categories {
($var_494/preceding::node()[1]/node()[(name() =
$categories_493)]/text()) }, element Q{dev:intermediatexml:unstable}id {
(($var_494/parent::{http://www.w3.org/1999/xhtml}entry/@xml:id !
string())) }) } };
local:autoComplete("nested", "cb:entry", ((dc:subject union dc:title
union {http://www.w3.org/1999/xhtml}question)), "dc:title", "cb:categories") Query:
declare base-uri
"file:///S:/Users/dev/Eigene%20Projekte/xquery-appframework/src/";
import module namespace app = "dev:app:unstable" at "lib/app.xqm";
declare default element namespace "http://www.w3.org/1999/xhtml";
declare namespace cb = "http://codeblocker.org/ns/codingcookbook/1.0/";
declare namespace dc = "http://purl.org/dc/elements/1.1/"; declare
namespace itx = "dev:intermediatexml:unstable"; declare function
local:autoComplete( $search as xs:string, $record-name as xs:string,
$places as element()*, $title, $categories ) as
element(Q{dev:intermediatexml:unstable}container)* { for $var in
$app:db//node()[name=$record-name]/$places where $var/text()[. contains
text {$search} using stemming using fuzzy] return <itx:container>
<itx:item>{$var/text()}</itx:item>
<itx:title>{$var/preceding::node()[1]/node()[name()=$title]/text()}</itx:title>
<itx:categories>{$var/preceding::node()[1]/node()[name()=$categories]/text()}</itx:categories>
<itx:id>{$var/parent::entry/@xml:id/string()}</itx:id> </itx:container>
};
local:autoComplete("nested","cb:entry",(dc:subject|dc:title|question),"dc:title","cb:categories")--
Goody Bye, Minden jót, Mit freundlichen Grüßen,
Andreas Mixich
CG
Christian Grün14 May 2018 21:19 #
Quoted text · Andreas Mixich · 3 lines
> One thing may be interesting to note: When I imported that file into a > BaseX database, a few days ago, it resulted in that document being in > the database twice.
The duplicate occurrence of this file could be the reason for the error message (in BaseX,
fn:doc may refer to documents in a database and to documents in the local file system). How did you proceed? Does this also happen if you add the document to an empty database?Written for BaseX 9.0. BaseX may have changed since: please check the current documentation.
⚡Generated with XQuery