Ich bin neu in Exis-DB und XQuery.exist-db Kardinalität für Parameter
In exist-db habe ich diese Sitemap: Der Katalog "registranten" enthält den Katalog "data" (mit xml-Dateien) und die zwei Dateien "regBasic.xql" und "regSearch.xql".
Ich versuche, in den XML-Dateien zu suchen, um das Skript regSearch.xql mit:
xquery version "3.0";
declare option exist:serialize "method=xhtml media-type=text/html";
declare variable $pageTitle := "Resultat";
declare variable $searchphrase := request:get-parameter("searchphrase",());
<html>
<head>
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8"/>
<title>{$pageTitle}</title>
</head>
<body>
<h1>{$pageTitle}</h1>
<p>Søgestreng eller søgeord: "{$searchphrase}"</p>
<ul>
{
for $p in collection("/db/registranten/data")//grundtvig/indholdsregest/p[ft:query(., $searchphrase)]
return
<li>
from: {string(root($p)/grundtvig/filnavn)}<br/>
<i>$p</i>
</li>
}
</ul>
</body>
</html>
Als ich das Drehbuch zu bewerten bekomme ich diesen Fehler: „EXERR: ERROR XPTY0004: Die tatsächliche Mächtigkeit für Parameter 2 stimmt nicht mit der in der Signatur der Funktion deklarierten Kardinalität überein: ft: query ($ nodes as node() , $ query as item()) node() Erwartete Kardinalität: genau eins, 0. [in Zeile 17, Spalte 100, source: /db/apps/registranten/regSearch.xql] "
Was bedeutet das und was ist mit dem Skript falsch?