问题标签 [exist-db]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
orbeon - 将 Orbeon Xform 连接到外部 Exist 数据库
我正在尝试将新的 Orbeon XForm 连接到现有的现有数据库。我的代码应该提交一个 xml 文档以存储在该数据库中。
尝试提交我的 xml 文件时,我的日志显示身份验证错误:
如何验证此连接?
xml - 如何将 xpath 传递给 xquery 函数声明
我使用 Apache Tomcat 的 Exist DB 作为 XML 数据库,并尝试通过传递以下 xpath 来构造序列,该 xpath 在 FLWOR 的“let”子句中定义:
到本地定义的函数声明中,如下所示:
当然,当在现有 xquery 沙箱中输入时,我得到 Type: xs:anyAtomicType is not defined。我应该用什么来代替它,或者我应该以不同的方式来做这件事?
在此先感谢您的任何建议。
php - 如何使用 PHP 解析 eXist XQuery 响应?
我试图找到一种简单的方法来使用 php 解析eXist 响应,而无需安装第三方类。
这是我想解析的响应类型:
我正在尝试使用simplexml_load_string php 函数,但我得到了一个没有错误的空 SimpleXMLElement 对象。
我想摆脱这个响应的 XML 文件列表。
谢谢
xml - 使用 XQuery 查询存储在 eXist-db 中的文件
我使用了一个 XML 数据库 eXist-db 来进行一些 XQuery 测试。我有一个名为“media_data_101109.xml”的 xml 集合,我把它放在了目录中
/db/wb/portfolio/media_data_101109.xml
然后我去了 eXist Sandbox,它是一个用于执行 XQuery 的 GUI,并输入以下 XQuery:
但它未能检索到任何结果。
但是,如果我在 URI 字符串前面添加服务器名称,例如:
然后它工作得很好(虽然有点慢)。
我记得,过去第一个 XQuery 工作得非常好,但从昨天开始,除非我在 URI 字符串中指定服务器名称,否则它无法检索任何内容。
谁能给我一些关于这里可能出了什么问题的想法?我认为我的端口设置可能有问题?所以 eXist-db 可能无法正常运行?在此先感谢。
java - 使用 eXist-db 进行不区分大小写的搜索
我正在经历客户发布的最终改进,这需要我进行不区分大小写的查询。我将基本上介绍这个简单的程序是如何工作的。
首先,在我的 Java 类中,我做了一个相当简单的网页解析:
该 Java 语句引用了存储在 localhost 上的 XQuery 文件“media_lookup.xql”,我们传递的唯一参数是字符串“title”。
其次,让我们看看那个 XQuery 文件:
然后它将评估该查询。这个 XQuery 将获取从我们的 Java 类传递的“title”参数,并查询存储在数据库中的“media_data”xml 文件,该文件包含一堆带有“title”元素节点的媒体节点。如您所料,这个简单的查询将只匹配那些“title”元素包含字符串“title”值的子字符串的媒体节点。因此,如果我们的“标题”是“Chi”,它将返回标题可能是“Chicago”或“Chicken”的媒体节点。
客户发布的细化请求是不应该区分大小写。非常直观的方法是通过在其中使用小写函数来修改 XQuery 语句,例如:
但是,问题来了:这个修改后的查询会使我的机器内存溢出。由于我的“media_data.xml”非常庞大并且包含数以百万计的媒体节点,我假设 lower-case() 函数将在每个条目上运行,从而导致机器崩溃。
我与一些有经验的 XQuery 程序员交谈过,他们认为我应该使用索引来解决这个问题,我一定会对此进行研究。但在此之前,我只是在这里发布这个问题以获得其他想法或任何建议,您认为任何其他方式可能会有所帮助吗?例如,我可以调整 Java 解析语句以实现不区分大小写吗?因为我想我看到有些人使用“包含”进行了一些字符串连接。在将其传递给服务器之前在 Java 中。
欢迎任何想法或帮助。
xforms - 允许对可选 XML 元素进行 XForm 控件
在设计 XML 数据库的 XForm 接口(使用 eXist 和 XSLTForms)时,我想为可选元素包含一个输入控件。XML 数据记录已经存在,有些包含可选元素,有些则不包含。为了更新记录,我使用现有的 XML 记录作为模型实例。问题是当可选元素不存在时表单控件不显示,这是合乎逻辑的,但是当用户想要向可选元素添加数据时出现问题。
更明确地说,这里有一个示例数据记录 data.xml:
使用 RNC 架构:
XForms 模型:
和控制:
问题是“注释”输入控件根本不显示。
一个明显的解决方案是添加一个触发按钮以允许用户在需要时插入元素,但最好只显示输入控件,并且为空。
我的问题是:是否有一些鲜为人知的属性/绑定/多个实例/xpath 表达式的微妙组合会导致控件始终显示?
xquery-update - Xquery 更新错误 (eXistdb)
当我试图将数据更新到数据库中时,我发现以下错误'XQuery 更新表达式不能应用于内存节点。'...如何解决这个问题任何人都可以帮助我...。
module - eXist:是否可以将 XQuery 模块存储在 XML 文件中?
您可以将模块存储在 eXist 中,如下所示,例如/modules/my.xqm
:
然后将其导入到查询中,例如:
除了将 XQuery 存储在“文本文件”中之外,是否可以将其存储在 XML 文件中,这只是 XQuery 的包装器?我正在考虑一个类似于我们在向 eXist ( <exist:query><exist:text>
) 发布查询时使用的包装器。这将使使用期望存储在数据库中的 XML 数据的工具更容易操作 XQuery 模块。
xquery - XQuery 更新:插入或替换取决于节点是否存在不可能?
我正在尝试构建简单的 XML 数据库(在 BaseX 或 eXist-db 中),但我无法弄清楚如何修改文档中的值:
测试的内容很简单:
我正在尝试构建类似函数的东西,<pl>
如果该元素不存在,它将插入元素,如果存在则替换它。但是 XQuery 给我带来了麻烦:
当我用 if-then-else 逻辑正面尝试时:
我得到错误Error: [XUDY0027] Replace target must not be empty
。显然我很困惑,为什么在这两种情况下都会评估 else 部分,从而导致错误。当我清空其他部分时:
然后我得到Error: [XUST0001] If expression: no updating expression allowed
.
当我尝试通过声明更新功能时,即使这样它也会报告错误:
Error: [XUST0001] If expression: no updating expression allowed.
我从 BaseX 6.5.1 包中得到了这些错误。
那么如果可能的话,我怎样才能以一种简单的方式修改值呢?如果我直接调用插入,则可能有多个相同值的元素。如果我调用replace它会在节点不存在时失败。如果我在插入/替换之前删除节点,那么我可以销毁我不想要的子节点。
在大多数 SQL 数据库中,这些都是非常简单的任务(如 MYSQL 的“替换”命令)。
database - 使用 file:serialize 使用 eXist db 写入文件
我正在尝试使用 file:serialize 函数将一些内容写入使用 eXist-db 的文件。
这是我正在使用的代码,它只是一个登录和序列化函数的调用。someFunction 只是返回一个包含一些内容的节点。
让 $null := xdb:login("/db", " * ", " * "), $someBool := file:serialize(local:someFunction(),"test.txt","")
我得到的非常有用的错误是:
发现错误
消息:错误为空
我在 Ubuntu 上使用 1.4.0 版本,并且启用了文件模块(并构建了它)。我在这里想念什么?
谢谢!