exist-db 相关问题

eXist-db是一个使用XML技术构建的开源数据库管理系统。它根据XML数据模型存储XML数据,并具有基于索引的高效XQuery处理功能。

let $id := request:get-parameter("id","") 什么可能导致 $id 无法从 get-parameter 获取值?我该如何解决它?

我正在完成一项基本练习,您可以在这里找到https://exist-db.org/exist/apps/doc/beginners-guide-to-xrx-v4)。 问题:我认为问题出在 get-parameter() 函数上。 它...

回答 1 投票 0

在 Docker 容器中安装期间,eXist-DB 索引设置失败

我创建了一个基于 eXist-DB 的应用程序。该应用程序应部署在 Docker 容器内。我的应用程序依赖于一些繁重的预计算,这应该将结果存储在数据库中-

回答 1 投票 0

storeResouce 使用远程接口太慢

eXistDB 6.2.0 与使用嵌入式数据库相比,通过远程接口保存到本地运行的数据库要慢几个数量级。我不知道问题出在哪里,...

回答 1 投票 0

eXist-db 如何将文件添加到多部分http请求(expath http请求)

我正在尝试使用 expath http 客户端在 eXist-db 6.2 中发送发布请求,以从我的数据库上传文件。该提供需要多部分。然而,提供商正在响应以下请求...

回答 1 投票 0

eXist-db cli 自动工作流程用于添加大量 zip 文件

我已经运行了一个本地exist-db 服务器,并且我有超过 100 万个 xml 文件想要添加到其中。服务器是无头的,我正在使用 cli 客户端。我的所有文件都集中在数百个...

回答 1 投票 0

尝试将existDB嵌入到我的Java项目中

我正在遵循部署指南,但卡在了第 6 步。我找不到任何 .jar 文件,甚至找不到列出的目录。我的安装是6.2.0。我错过了什么吗? 我期望找到...

回答 1 投票 0

Saxon XSLT 可以将 XML 保存到 eXist-db 吗?

Saxon XSLT 可以将 XML 保存到 eXist-db 吗?我搜索了文档和论坛,但找不到任何明确记录的内容。我可以使用 doc('http://localhost:8080/exist/rest...

回答 1 投票 0

为 MySQL 配置 Saxon

我在将 Saxon 配置为在 oXygen 和 eXist-db 中使用 MySQL 时遇到困难。这是我在 eXist-db xquery 中的尝试。没有错误,我确实得到了一个连接对象(因此字段扩展...

回答 1 投票 0

序列化节点集以打印标签时出现问题

我是一名数字档案管理员,最近被一家新组织聘用。结果他们的一个非常关键的数据库在 1.5/2 年前出现故障,我一直在帮助他们恢复并运行它。

回答 1 投票 0

登录/注销后强制所有页面访问刷新/清除缓存

我的网站完全由动态数据构建,其中一些数据会根据用户身份验证而发生变化。当用户“登录”该网站时,我会在页面中显示他们的新状态及其用户名

回答 4 投票 0

HTML 表单提交给出 400 错误请求

我正在使用 POST 方法向 REST(eXist db) Web 服务提交 HTML 表单。正常提交会给出 400 错误请求 这是我的 HTML 代码 ...</desc> <question vote="1"> <p>我正在使用 POST 方法向 REST(eXist db) Web 服务提交 HTML 表单。正常提交会给出 <strong>400 错误请求</strong></p> <p>这是我的 HTML 代码</p> <pre><code>&lt;html&gt; &lt;script type=&#34;text/javascript&#34;&gt; /* function createXMLHttpRequest() { if( typeof XMLHttpRequest == &#34;undefined&#34; ) XMLHttpRequest = function() { try { return new ActiveXObject(&#34;Msxml2.XMLHTTP.6.0&#34;) } catch(e) {} try { return new ActiveXObject(&#34;Msxml2.XMLHTTP.3.0&#34;) } catch(e) {} try { return new ActiveXObject(&#34;Msxml2.XMLHTTP&#34;) } catch(e) {} try { return new ActiveXObject(&#34;Microsoft.XMLHTTP&#34;) } catch(e) {} throw new Error( &#34;This browser does not support XMLHttpRequest.&#34; ) }; return new XMLHttpRequest(); } var AJAX = createXMLHttpRequest();*/ function submitForm() { //AJAX.open(&#34;POST&#34;,&#39;http://localhost:8899/exist/rest/db/xql/sample.xq&#39;); // AJAX.send(document.form.xmlData.value); document.form.submit(); }; &lt;/script&gt; &lt;head&gt; &lt;meta http-equiv=&#34;content-type&#34; content=&#34;text/html; charset=utf-8&#34; /&gt; &lt;/head&gt; &lt;body&gt; &lt;form name=&#39;form&#39; action=&#34;http://localhost:8899/exist/rest/db/xql/sample.xq&#34; enctype=&#34;text/plain&#34; method=&#34;post&#34;&gt; &lt;input type=&#34;text&#34; name=&#34;xmlData&#34;/&gt; &lt;input type=&#34;button&#34; value=&#34;Submit&#34; onclick=&#34;submitForm()&#34;;&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>注释的代码是使用AJAX发送POST请求。 我捕获了表单提交和 AJAX 提交的 http 标头请求和响应 这些是请求标头:</p> <p>HTML 表单提交标头:</p> <pre><code>(Request-Line) POST /exist/rest/db/xql/sample.xq HTTP/1.1 Host localhost:8899 User-Agent Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language en-us,en;q=0.5 Accept-Encoding gzip, deflate Connection keep-alive Content-Type text/plain Content-Length 26 </code></pre> <p>AJAX 请求标头:</p> <pre><code>(Request-Line) POST /exist/rest/db/xql/sample.xq HTTP/1.1 Host localhost:8899 User-Agent Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language en-us,en;q=0.5 Accept-Encoding gzip, deflate Connection keep-alive Content-Length 16 Content-Type text/plain; charset=UTF-8 Origin null Pragma no-cache Cache-Control no-cache </code></pre> <p>我没有明白我的代码有什么问题。 我为此工作了 2 天,但没有找到任何解决方案。 请调查此问题并提供解决方案。</p> <p>提前致谢。 </p> </question> <answer tick="false" vote="0"> <p>我很确定这是因为您只发送数据中的值。 </p> <p>您需要发送一个名称=值对。</p> </answer> <answer tick="false" vote="0"> <p>您的代码按应有的方式将数据提交到服务器。您的服务器端代码一定有问题。 </p> <p>引用 checkupdown.com 关于错误 400 的内容</p> <p>HTTP 周期中出现 400 个错误</p> <p>1.任何客户端(例如您的网络浏览器或我们的 CheckUpDown 机器人)都会经历以下周期:</p> <p>2.从站点的IP名称(不带前导“http://”的站点URL)获取IP地址。此查找(IP 名称到 IP 地址的转换)由域名服务器 (DNS) 提供。</p> <p>3.打开到该 IP 地址的 IP 套接字连接。</p> <p>4.通过该套接字写入HTTP数据流。</p> <p>5.接收从Web服务器返回的HTTP数据流作为响应。该数据流包含状态代码,其值由 HTTP 协议确定。解析此数据流以获取状态代码和其他有用信息。</p> <p><strong>当客户端收到它识别为“400”的 HTTP 状态代码时,会在上述最后一步中发生此错误。</strong></p> </answer> <answer tick="false" vote="-1"> <p>您的目标接受 POST 请求还是仅接受 GET?</p> </answer> <answer tick="false" vote="-1"> <p>但是您没有通过 Ajax POST 发送任何参数?</p> <p>Ajax 代码应如下所示:</p> <pre><code>var xmlData=encodeURIComponent(document.getElementById(&#34;xmlData&#34;).value); var parameters=&#34;xmlData=&#34;+xmlData; AJAX.open(&#34;POST&#34;, &#34;&#39;http://localhost:8899/exist/rest/db/xql/sample.xq&#34;, true) AJAX.setRequestHeader(&#34;Content-type&#34;, &#34;application/x-www-form-urlencoded&#34;) AJAX.send(parameters) </code></pre> </answer> </body></html>

回答 0 投票 0

通过 eXist-db 中的转换器属性设置 recoveryPolicyName

我试图在通过 eXist-db 运行时抑制 Saxon 中的歧义匹配警告。我可以使用 -warnings:silent 通过命令行抑制它们,并尝试通过 eXist-db conf 配置它...

回答 1 投票 0

如何将 request:get-parameter 的值传递给 Xquery 中的变量,以便在 XSLT 模板中使用以生成 HTML 输出

我有这个 xml 文件: 爸爸 我有这个 xml 文件: <A9-ArchaeologicalExcavation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <E53-Place> <Name>asdad</Name> <District/> <Parish/> <Gps> <Latitude/> <Longitude/> </Gps> <A2-StratigraphicVolumeUnit> <Timeline/> <Description/> <Gps> <Latitude/> <Longitude/> </Gps> <S19-EncounterEvent> <Date>2001-11-12</Date> <E24-PhysicalManThing Inventory_number="1"> <E36-VisualItem/> <Order_number>Triangular</Order_number> <Group> <Group-name>Reta</Group-name> <Sub_type>true</Sub_type> </Group> <E3-ConditionState> <E55-Type/> </E3-ConditionState> <E55-Type>Alongado</E55-Type> <Variant>Espessa</Variant> <Typometry Unit="mm"> <Lenght>23</Lenght> <Width>12</Width> <Thickness>5</Thickness> <Body_lenght>19</Body_lenght> <Base_lenght>4</Base_lenght> </Typometry> <Morphology> <Point>true</Point> <Body>false</Body> <Base>Triangular</Base> </Morphology> <Retouch> <Location/> <Mode/> <Amplitude/> <Direction/> <Delineation/> <Orientation/> <Shape/> </Retouch> <Raw_material/> <Observations/> </E24-PhysicalManThing> </S19-EncounterEvent> </A2-StratigraphicVolumeUnit> </E53-Place> </A9-ArchaeologicalExcavation> 我有一个网页,我想在其中搜索匹配的某些项目,假设 variant = 'Espessa' 并返回所有 @Inventory_number。 我使用 GET 传递插入到我的 html 表单中的值,然后我想创建一个 Xquery 代码来接收这些值,将这些值传递到 XSLT 代码中并返回一个包含找到的项目的 html 文件。 到目前为止,我的 Xquery 中有这个: xquery version "3.0" encoding "UTF-8"; declare variable $fi as xs:integer :=5; declare variable $fi2 as xs:string := "variant"; let $fi:= request:get-parameter("termo", 5) let $fi2 :=request:get-parameter("elementos", "variant") let $x := doc("/db/apps/MegaLOD/arrowheads/arrowheads.xml") let $filter := concat($fi2, " = ", $fi, "") for $arrowheads in $x/arrowheads let $arrowhead_list := (for $arrowhead in $arrowheads/arrowhead[$filter] return $arrowhead) return <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>Arrowheads</h2> <xsl:for-each select="A9-ArchaeologicalExcavation/E53-Place/A2-StratigraphicVolumeUnit/S19-EncounterEvent/E24-PhysicalManThing[Variant = 'Espessa']"> <p><xsl:value-of select="@Inventory_number"/></p> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet> 我决定首先尝试使用固定值,Variant = 'Espessa',但查询返回一个空页面。 我想在我的 XSLT 代码中使用变量 $fi 和 $fi2。 我的代码有什么问题? 如何在 xslt 代码中使用 $fi 和 $fi2 变量? 您需要实际评估来自 XQuery 的 XSLT,这可以通过调用 transform#1 函数来完成 - 请参阅:https://www.w3.org/TR/xpath-functions-31/#func-transform。从 XQuery 向 XSLT 传递参数有多种选择,但我将在此处仅包括一个这样的选项,我使用 xsl:param. 你的$filter谓词也有一些问题。恐怕XML不是由key=value对组成的,而是一棵树and,所以谓词需要查询树中正确的节点。 xquery version "3.1" encoding "UTF-8"; declare variable $default-elementos := "Variant"; declare variable $default-termo := "Espessa"; let $elementos :=request:get-parameter("elementos", $default-elementos) let $termo:= request:get-parameter("termo", $default-termo) let $matches := doc("/db/apps/MegaLOD/arrowheads/arrowheads.xml")//element()[local-name(.) = $elementos][. eq = $termo] let $things := $matches/parent::element() let $xslt := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0"> <xsl:param name="elementos" required="yes"/> <xsl:param name="termo" required="yes"/> <xsl:template match="results"> <html> <body> <div> <p><b>Elementos:</b> <xsl:copy-of select="$elementos"/></p> <p><b>Termo:</b> <xsl:copy-of select="$termo"/></p> </div> <h2>Arrowheads</h2> <xsl:apply-templates select="node() | @*"/> </body> </html> </xsl:template> <xsl:template match="E24-PhysicalManThing"> <p> <xsl:value-of select="@Inventory_number"/> </p> </xsl:template> <!-- Fall through to identity transform --> <xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="node() | @*"/> </xsl:copy> </xsl:template> </xsl:stylesheet> return transform(map { "stylesheet-node": $xslt, "source-node": <results>{$things}</results>, "stylesheet-params": map { "elementos": $elementos, "termo": $termo } }) 我已经对您要实现的目标做出了一些假设,但希望这对您来说是一个很好的例子。随时提出任何其他问题...

回答 1 投票 0

如何将HTML widget的值从HTML表单传递到eXist-db中的Xquery?

我的意思是,这个问题代表了之前请求中指出的一个具体问题的普遍性:请看相关问题(这就是为什么我敢发出第二个帮助请求)。我还是...

回答 1 投票 0


无法在XQuery输出中包装元素

长时间中断后返回XQuery。让$ root:= 用于范围内前缀中的$ prefixes($ root)[not(。=('xml','xsi'))]返回名称空间-...

回答 1 投票 1

Exist-DB从转换中排除文件

我目前正在为我的应用编制索引。在学习了教程之后,我走到了尽头:err:FORG0001无法将'/.../collection.xconf'转换为xs:integer [在第65行,第26列]我有点...

回答 1 投票 0

在Windows上静默安装eXist-DB

我正在尝试在Windows 10上静默安装eXist-DB,但是在尝试设置数据库密码时,该过程似乎失败。进行了一些谷歌搜索,结果找到了其他人。...

回答 1 投票 0

eXist-db-使用自动部署机制或替代方法重新部署库包

我已经使用现有的eXide接口创建了自己的类型库应用程序。使用exide ui下载了应用程序包(xar文件)。要将软件包部署到我们的构建服务器上...

回答 1 投票 0

用XHR的结果重新填充DataTables表

我正在使用Jquery DataTables显示一长串记录: &...]

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.